概述

 Android 开机画面由三部分组成,第一部分在bootloader启动时显示(uboot);第二部分在启动kernel 时显示(kernel);第三部分在系统启动时(bootanimation)显示(动画)。
uboot、kernel的LOGO(项目中一般这两张图片是一样的,即常说的开机LOGO)。


代码位置

mtk6739_q0_mp1/device/mediateksample/g2020eir_v1_ga_bf/ProjectConfig.mk{$LK} = vendor/mediatek/proprietary/bootable/bootloader/lk{$LK}/target/g2020eir_v1_ga_bf/include/target/cust_display.h
{$LK}/lib/libshowlogo/cust_display.h{$LK}/platform/mt6765/mt_logo.c
{$LK}/platform/mt6765/include/platform/mt_logo.h
{$LK}/platform/mt6765/platform.c

代码分析

  • 1.logo图片选择

 一般logo目录下会有很多格式的图片,例如hdplus、hvga、hd720,具体使用哪种格式的图片,取决于项目中的配置文件ProjectConfig.mk。例如在mt6765中使用的是Boot_LOGO=hdplus格式,如下代码所示:

mtk6739_q0_mp1/device/mediateksample/g2020eir_v1_ga_bf/ProjectConfig.mk
...
BOOT_LOGO = hdplus
...
  • 2.索引序列号:
{$LK}/target/g2020eir_v1_ga_bf/include/target/cust_display.h// Common LOGO index#define BOOT_LOGO_INDEX   0#define KERNEL_LOGO_INDEX   38
  • 3.则使用如下路径LOGO图片:
{$LK}/dev/logo/hdplusuboot和kernel对应图片如下:
uboot:hdplus_uboot.bmp
kernel:hdplus_kernel.bmp

代码流程

  • 1.{$LK}/platform/mt6765/platform.c
void platform_init(void)
{...//如果没接电池且是低电量模式,将显示低电量logo,否则正常显示logoif (kernel_charging_boot() == 1) {if ((g_boot_mode != LOW_POWER_OFF_CHARGING_BOOT) || ((CHR_Type_num != STANDARD_HOST) && (CHR_Type_num != NONSTANDARD_CHARGER))) {mt_disp_show_low_battery();}} else if (g_boot_mode != KERNEL_POWER_OFF_CHARGING_BOOT && g_boot_mode != LOW_POWER_OFF_CHARGING_BOOT) {//加载logomboot_common_load_logo((unsigned long)mt_get_logo_db_addr_pa(), "logo");//根据启动方式选择加载的logo,填充到fb中mt_disp_show_boot_logo();}
}
  • 2.{$LK}/platform/mt6765/mt_logo.c
/** Show first boot logo when phone boot up**/
void mt_disp_show_boot_logo(void) //显示uboot logo
{dprintf(INFO, "[lk logo: %s %d]\n",__FUNCTION__,__LINE__);mt_logo_get_custom_if();if (logo_cust_if->show_boot_logo) {logo_cust_if->show_boot_logo();} else {///show_logo(0);init_fb_screen();fill_animation_logo(BOOT_LOGO_INDEX, mt_get_fb_addr(), (void *)mt_get_tempfb_addr(), logo_addr, phical_screen);mt_disp_update(0, 0, CFG_DISPLAY_WIDTH, CFG_DISPLAY_HEIGHT);}return;
}/** Show low battery logo**/
void mt_disp_show_low_battery(void) // 显示低电量图片
{dprintf(INFO, "[lk logo: %s %d]\n",__FUNCTION__,__LINE__);mt_logo_get_custom_if();if (logo_cust_if->show_boot_logo) {logo_cust_if->show_boot_logo();} else {init_fb_screen();//show_logo(2);fill_animation_logo(LOW_BATTERY_INDEX, mt_get_fb_addr(), (void *)mt_get_tempfb_addr(), logo_addr, phical_screen);mt_disp_update(0, 0, CFG_DISPLAY_WIDTH, CFG_DISPLAY_HEIGHT);}return;
}void mt_disp_show_charging(int index) //显示正在充电图片
{dprintf(INFO, "[lk logo: %s %d]\n",__FUNCTION__,__LINE__);mt_logo_get_custom_if();if (logo_cust_if->show_boot_logo) {logo_cust_if->show_boot_logo();} else {init_fb_screen();//show_logo(2);fill_animation_logo(index + LOW_BATTERY01_INDEX, mt_get_fb_addr(), (void *)mt_get_tempfb_addr(), logo_addr, phical_screen);mt_disp_update(0, 0, CFG_DISPLAY_WIDTH, CFG_DISPLAY_HEIGHT);}return;
}void mt_disp_show_plug_charger(void)
{dprintf(INFO, "[lk logo: %s %d]\n",__FUNCTION__,__LINE__);mt_logo_get_custom_if();if (logo_cust_if->show_boot_logo) {logo_cust_if->show_boot_logo();} else {init_fb_screen();//show_logo(2);fill_animation_logo(LOW_BATTERY_REMIND_INDEX, mt_get_fb_addr(), (void *)mt_get_tempfb_addr(), logo_addr, phical_screen);mt_disp_update(0, 0, CFG_DISPLAY_WIDTH, CFG_DISPLAY_HEIGHT);}return;
}
  • 3.索引序号
{$LK}/lib/libshowlogo/cust_display.h83 // Common LOGO index84 #define BOOT_LOGO_INDEX   085 #define KERNEL_LOGO_INDEX   388687 #define ANIM_V0_BACKGROUND_INDEX   188 #define ANIM_V1_BACKGROUND_INDEX   358990 #define LOW_BATTERY_INDEX   291 #define LOW_BATTERY01_INDEX  3992 #define LOW_BATTERY02_INDEX  4093 #define LOW_BATTERY_REMIND_INDEX  4194 #define CHARGER_OV_INDEX   395 #define FULL_BATTERY_INDEX   379697 // version 1: show wave animation with  battery number9899 // NUMBER LOGO INDEX100 #define NUMBER_PIC_START_0   4101 #define NUMBER_PIC_PERCENT   14102103 // DYNAMIC ANIMATION LOGO INDEX104 #define BAT_ANIM_START_0   15105106 // LOW BATTERY(0~10%) ANIMATION LOGO107 #define LOW_BAT_ANIM_START_0    25108109 #define ANIM_LINE_INDEX   36110111112 // version 2: show wireless charging animation logo index113114 #define V2_NUM_START_0_INDEX  42115 #define V2_NUM_PERCENT_INDEX  52116117 #define V2_BAT_0_10_START_INDEX     53118 #define V2_BAT_10_40_START_INDEX    57119 #define V2_BAT_40_80_START_INDEX    61120 #define V2_BAT_80_100_START_NDEX   65121122 #define V2_BAT_0_INDEX   69123 #define V2_BAT_100_INDEX   70

logo.bin索引序号分析

  • dev/logo/rules.mk
LOCAL_DIR := $(GET_LOCAL_DIR)
BOOT_LOGO_DIR := $(LOCAL_DIR)#fix no boot_logo config
#LOCAL_CFLAGS += -DBOOT_LOGO=wvgaifeq ($(strip $(BOOT_LOGO)),)BOOT_LOGO = fwvga
endififeq ($(strip $(MTK_LK_CAMERA_SUPPORT)), yes)BOOT_LOGO = fhd
endif$(info BOOT_LOGO = $(BOOT_LOGO))
$(info lk/logo/dir=$(LOCAL_DIR),builddir=$(BUILDDIR))ifeq ($(HOST_OS),darwin)
BMP_TO_RAW := $(BOOT_LOGO_DIR)/tool/bmp_to_raw.darwin
ZPIPE := $(BOOT_LOGO_DIR)/tool/zpipe.darwin
MKIMG := $(LOCAL_DIR)/../../scripts/mkimage.darwin
else
BMP_TO_RAW := $(BOOT_LOGO_DIR)/tool/bmp_to_raw
ZPIPE := $(BOOT_LOGO_DIR)/tool/zpipe
MKIMG := $(LOCAL_DIR)/../../scripts/mkimage
endif
IMG_HDR_CFG := $(LOCAL_DIR)/img_hdr_logo.cfgEMPTY :=
UNDER_LINE := _
TEMP := $(strip $(subst $(UNDER_LINE), $(EMPTY), $(BOOT_LOGO)))
COUNT := $(words $(TEMP))
BASE_LOGO := $(word $(COUNT),$(TEMP))
EXIST := $(shell if [ -e $(BOOT_LOGO_DIR)/$(BASE_LOGO) ]; then echo "exist"; else echo "noexist"; fi;)
ifeq ($(EXIST), "noexist")BASE_LOGO := $(BOOT_LOGO)
endifSUPPORT_PUMP_EXPRESS = no
ifeq ($(strip $(MTK_PUMP_EXPRESS_SUPPORT)), yes)SUPPORT_PUMP_EXPRESS = yes
elseifeq ($(strip $(MTK_PUMP_EXPRESS_PLUS_SUPPORT)), yes)SUPPORT_PUMP_EXPRESS = yesendif
endifBOOT_LOGO_RESOURCE := $(BUILDDIR)/$(BOOT_LOGO_DIR)/$(BOOT_LOGO).raw
LOGO_IMAGE := $(BUILDDIR)/logo.binSUPPORT_PROTOCOL1_RAT_CONFIG = no
SUPPORT_CARRIEREXPRESS_PACK = no
ifdef MTK_CARRIEREXPRESS_PACK
ifneq ($(strip $(MTK_CARRIEREXPRESS_PACK)), no)SUPPORT_CARRIEREXPRESS_PACK = yesRAT_CONFIG = $(strip $(MTK_PROTOCOL1_RAT_CONFIG))ifneq (,$(RAT_CONFIG))ifneq (,$(findstring L,$(RAT_CONFIG)))SUPPORT_PROTOCOL1_RAT_CONFIG = yesendifendif
endif
endififeq ($(strip $(SUPPORT_CARRIEREXPRESS_PACK)),yes)
RESOLUTION := $(word $(COUNT),$(TEMP))
RESOURCE_OBJ_LIST :=   \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_uboot.raw //序号0
else
RESOURCE_OBJ_LIST :=   \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_uboot.raw
endififneq ($(strip $(MACH_TYPE)), 2701)
ifneq ($(strip $(MTK_ALPS_BOX_SUPPORT)), yes)
RESOURCE_OBJ_LIST +=   \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_battery.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_low_battery.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_charger_ov.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_0.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_1.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_2.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_3.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_4.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_5.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_6.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_7.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_8.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_9.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_percent.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_01.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_02.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_03.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_04.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_05.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_06.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_07.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_08.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_09.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_10.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_01.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_02.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_03.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_04.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_05.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_06.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_07.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_08.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_09.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_10.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_bg.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_img.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_100.raw
ifeq ($(strip $(SUPPORT_CARRIEREXPRESS_PACK)),yes)
RESOURCE_OBJ_LIST +=   \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_kernel.raw // 序号38
else
RESOURCE_OBJ_LIST +=   \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_kernel.raw
endif
RESOURCE_OBJ_LIST +=   \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_low_battery01.raw \ //序号39$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_low_battery02.raw \ //序号40$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_low_battery_remind.raw //序号41
endif
endififeq ($(strip $(SUPPORT_PUMP_EXPRESS)), yes)
RESOURCE_OBJ_LIST +=   \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_100.raw \ 序号42$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-01.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-02.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-03.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-04.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-05.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-06.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_00.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_01.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_02.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_03.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_04.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_05.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_06.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_07.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_08.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_09.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_percent.raw //序号59 一共60张
endififeq ($(strip $(MTK_WIRELESS_CHARGER_SUPPORT)), yes)
RESOURCE_OBJ_LIST +=   \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_00.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_01.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_02.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_03.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_04.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_05.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_06.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_07.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_08.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_09.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_percent.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_10_0.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_10_1.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_10_2.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_10_3.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_30_0.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_30_1.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_30_2.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_30_3.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_60_0.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_60_1.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_60_2.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_60_3.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_90_0.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_90_1.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_90_2.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_90_3.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_0.raw \$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_100.raw endififeq ($(strip $(SUPPORT_CARRIEREXPRESS_PACK)), yes)ifeq ($(filter OP01, $(subst _, $(space), $(MTK_REGIONAL_OP_PACK))), OP01)
ifeq ($(strip $(SUPPORT_PROTOCOL1_RAT_CONFIG)), yes)
RESOURCE_OBJ_LIST +=   \$(BOOT_LOGO_DIR)/cmcc_lte_$(RESOLUTION)/cmcc_lte_$(RESOLUTION)_uboot.raw \$(BOOT_LOGO_DIR)/cmcc_lte_$(RESOLUTION)/cmcc_lte_$(RESOLUTION)_kernel.raw
else
RESOURCE_OBJ_LIST +=   \$(BOOT_LOGO_DIR)/cmcc_$(RESOLUTION)/cmcc_$(RESOLUTION)_uboot.raw \$(BOOT_LOGO_DIR)/cmcc_$(RESOLUTION)/cmcc_$(RESOLUTION)_kernel.raw
endif
endififeq ($(filter OP02, $(subst _, $(space), $(MTK_REGIONAL_OP_PACK))), OP02)
ifeq ($(strip $(SUPPORT_PROTOCOL1_RAT_CONFIG)), yes)
RESOURCE_OBJ_LIST +=   \$(BOOT_LOGO_DIR)/cu_lte_$(RESOLUTION)/cu_lte_$(RESOLUTION)_uboot.raw \$(BOOT_LOGO_DIR)/cu_lte_$(RESOLUTION)/cu_lte_$(RESOLUTION)_kernel.raw
else
RESOURCE_OBJ_LIST +=   \$(BOOT_LOGO_DIR)/cu_$(RESOLUTION)/cu_$(RESOLUTION)_uboot.raw \$(BOOT_LOGO_DIR)/cu_$(RESOLUTION)/cu_$(RESOLUTION)_kernel.raw
endif
endififeq ($(filter OP09, $(subst _, $(space), $(MTK_REGIONAL_OP_PACK))), OP09)
ifeq ($(strip $(SUPPORT_PROTOCOL1_RAT_CONFIG)), yes)
RESOURCE_OBJ_LIST +=   \$(BOOT_LOGO_DIR)/ct_lte_$(RESOLUTION)/ct_lte_$(RESOLUTION)_uboot.raw \$(BOOT_LOGO_DIR)/ct_lte_$(RESOLUTION)/ct_lte_$(RESOLUTION)_kernel.raw
else
RESOURCE_OBJ_LIST +=   \$(BOOT_LOGO_DIR)/ct_$(RESOLUTION)/ct_$(RESOLUTION)_uboot.raw \$(BOOT_LOGO_DIR)/ct_$(RESOLUTION)/ct_$(RESOLUTION)_kernel.raw
endif
endifendifGENERATED += \$(BOOT_LOGO_RESOURCE) \$(LOGO_IMAGE) \$(addprefix $(BUILDDIR)/,$(RESOURCE_OBJ_LIST))all:: $(LOGO_IMAGE)$(LOGO_IMAGE):$(MKIMG) $(BOOT_LOGO_RESOURCE)@echo "MKING $(LOGO_IMAGE) start"@echo $(MKIMG)@echo $(BOOT_LOGO_RESOURCE)@echo $(LOGO_IMAGE)$(MKIMG) $(BOOT_LOGO_RESOURCE) $(IMG_HDR_CFG) > $(LOGO_IMAGE)$(BOOT_LOGO_RESOURCE): $(addprefix $(BUILDDIR)/,$(RESOURCE_OBJ_LIST)) $(ZPIPE)@$(MKDIR)@echo "zpiping "$(ZPIPE) -l 9 $@ $(addprefix $(BUILDDIR)/,$(RESOURCE_OBJ_LIST))$(BUILDDIR)/%.raw: %.bmp $(BMP_TO_RAW)@$(MKDIR)@echo "Compiling_BMP_TO_RAW $<"$(BMP_TO_RAW) $@ $<
  • 根据上述代码,可知RESOURCE_OBJ_LIST的序列号一共60张图片如下:
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_uboot.raw //序号0
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_battery.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_low_battery.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_charger_ov.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_0.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_1.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_2.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_3.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_4.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_5.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_6.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_7.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_8.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_9.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_percent.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_01.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_02.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_03.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_04.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_05.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_06.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_07.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_08.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_09.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_10.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_01.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_02.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_03.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_04.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_05.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_06.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_07.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_08.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_09.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_10.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_bg.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_img.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_100.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_kernel.raw \ // 序号38
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_low_battery01.raw \ //序号39
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_low_battery02.raw \ //序号40
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_low_battery_remind.raw //序号41
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_100.raw \ 序号42
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-01.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-02.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-03.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-04.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-05.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-06.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_00.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_01.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_02.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_03.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_04.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_05.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_06.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_07.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_08.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_09.raw \
$(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_percent.raw //序号59 一共60张

logo.bin生成过程

  • raw文件位置
out/target/product/g2020eir_v1_ga_bf/obj/BOOTLOADER_OBJ/build-g2020eir_v1_ga_bf/dev/logo/hdplushdplus_bat_10_01.raw         hdplus_fast_charging_05.raw
hdplus_bat_10_02.raw         hdplus_fast_charging_06.raw
hdplus_bat_10_03.raw         hdplus_fast_charging_07.raw
hdplus_bat_10_04.raw         hdplus_fast_charging_08.raw
hdplus_bat_10_05.raw         hdplus_fast_charging_09.raw
hdplus_bat_10_06.raw         hdplus_fast_charging_100.raw
hdplus_bat_10_07.raw         hdplus_fast_charging_ani-01.raw
hdplus_bat_10_08.raw         hdplus_fast_charging_ani-02.raw
hdplus_bat_10_09.raw         hdplus_fast_charging_ani-03.raw
hdplus_bat_100.raw           hdplus_fast_charging_ani-04.raw
hdplus_bat_10_10.raw         hdplus_fast_charging_ani-05.raw
hdplus_bat_animation_01.raw  hdplus_fast_charging_ani-06.raw
hdplus_bat_animation_02.raw  hdplus_fast_charging_percent.raw
hdplus_bat_animation_03.raw  hdplus_kernel.raw
hdplus_bat_animation_04.raw  hdplus_low_battery01.raw
hdplus_bat_animation_05.raw  hdplus_low_battery02.raw
hdplus_bat_animation_06.raw  hdplus_low_battery.raw
hdplus_bat_animation_07.raw  hdplus_low_battery_remind.raw
hdplus_bat_animation_08.raw  hdplus_num_0.raw
hdplus_bat_animation_09.raw  hdplus_num_1.raw
hdplus_bat_animation_10.raw  hdplus_num_2.raw
hdplus_bat_bg.raw            hdplus_num_3.raw
hdplus_bat_img.raw           hdplus_num_4.raw
hdplus_battery.raw           hdplus_num_5.raw
hdplus_charger_ov.raw        hdplus_num_6.raw
hdplus_fast_charging_00.raw  hdplus_num_7.raw
hdplus_fast_charging_01.raw  hdplus_num_8.raw
hdplus_fast_charging_02.raw  hdplus_num_9.raw
hdplus_fast_charging_03.raw  hdplus_num_percent.raw
hdplus_fast_charging_04.raw  hdplus_uboot.raw

MT6765开机LOGO图片的显示原理相关推荐

  1. MTK开机LOGO图片的显示原理

     MTK开机LOGO图片的显示原理 一.图片的定义 1 1.1.update脚本 1 1.2.rules.mk脚本 2 1.3.图片的宏定义cust_display.h(索引序列号) 3 二.LO ...

  2. 修改开机LOGO图片教程及注意事项/通过C++实现bmp图位深度从32位转换为8位

    修改开机LOGO图片教程及注意事项/通过C++实现bmp图位深度从32位转换为8位 文章目录 修改开机LOGO图片教程及注意事项/通过C++实现bmp图位深度从32位转换为8位 修改开机LOGO图片教 ...

  3. 修ecshop品牌筛选以LOGO图片形式显示

    如何实现商品列表页属性筛选区品牌筛选以LOGO形式展示,最模板总结ecshop/'>ecshop教程入下: 1.修改 category.php 文件,将(大概215行) $sql = " ...

  4. 制作Linux嵌入式系统开机LOGO(图片)

    内核:linux-2.6.22.6 ubuntu:Ubuntu 9.10 开发板: JZ2440(方法通用,不局限于JZ2440) 目的: JZ2440开机logo默认是一只可爱的小企鹅.我们把它替换 ...

  5. Exynos4412开发板更换开机logo图片

    我以linux3.5内核为列子. 首先linux内核默认的开机logo在:linux3.5/drivers/video/logo/ 目录下的   logo_linux_clut224.ppm. 所以我 ...

  6. [RK3568 Android11] 教程之制作和替换android开机logo图片

    目录 前言 一.Android logo说明 二.Android logo打包方法 三.测试方法 四.bootanimation.zip添加到SDK源码中

  7. 关于微信分享logo图片不显示,带有微信敏感文字

    做微信分享的时候,发现自己分享的链接带的logo自己能看到,但是好友是看不到的. 问题是因为描述语带有微信敏感关键字,就我所知的微信敏感关键字如下: 1.红包 2.现金 3.神圣 4.使命 5.一路同 ...

  8. 玩转mini2440开发板之【制作和修改linux启动logo图片】

    今天玩一玩linux启动logo图片的修改和制作. 对于我手头的mini2440开发板,其实厂家友善之臂原本是有配一个转换工具的,用起来会比较简单.但是,它那个工具仅针对32位的Fedora 9系统开 ...

  9. 定制LK阶段开机LOGO

    文档说明 本文档以SC806-CN-00-04为例(8909平台),描述如何定制LK阶段开机logo图片. LOGO图片要求 图片后缀为 .png,颜色位深8/24/32都可以. 图片分辨率和屏的实际 ...

最新文章

  1. 迭代是人,递归是神(迭代与递归的总结:比较)
  2. 程序员面试题精选100题(07)-翻转句子中单词的顺序[算法]
  3. es6之数据结构 set,WeakSet,mapWeakMap
  4. redhat系统双网卡绑定
  5. “男友家里存款只有20万,我该和他结婚么?”数据告诉你多少家庭才能有20万的存款...
  6. 从零开始刷Leetcode——数组(31.33)
  7. Xshell7,Xftp7免费版下载安装
  8. hp cp1025 linux 驱动,惠普HP LaserJet CP1025 打印机驱动
  9. android 平板 吃鸡,怎么用平板玩端游,怎么用平板玩端游吃鸡
  10. 步进电机、伺服电机、舵机的原理和区别?
  11. 构架高性能的InterBase/FireBird系统
  12. 计算机d盘可以格式化吗,能将电脑的D盘直接格式化了吗
  13. c语言打包游戏补丁,C语言实现的系统补丁自动安装工具.doc
  14. linux 查看当前状态_Linux视频编辑的当前状态2018
  15. 分布式技术与实战第一课 分布式理论与一致性算法
  16. 【Android -- 面试】常见面试技术要点
  17. jsp全是问号_JSP response,request中文乱码(出现问号)总结
  18. ajaxtoolkit
  19. 虚拟现实和增强现实技术_增强现实和虚拟现实在NBA中的作用
  20. php的安装步骤,PHP安装流程

热门文章

  1. 万门大学PPT课程(二)2.1、2.2
  2. 2022 CCF中国软件大会(CCF ChinaSoft)“软件工程教育”论坛成功召开
  3. GIEC2021第八届全球互联网经济大会9月在京举办
  4. 三星刷机工具Odin图文刷机教程
  5. 仅一成人不跳槽,工作十年跳三次薪资涨三倍
  6. go技术之gorm操作实战
  7. 在LINUX中怎样用FIDISK分区,fdisk分区命令详解与fdisk非交互式分区
  8. 计算机职称分是什么,职称计算机考试分模块吗戳进来有答案
  9. 计算机组装方案i5,极简逼格DIY装机 i5-6500/GTX1070组装电脑配置单 (全文)
  10. Django中间件介绍和使用