概述
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/hdplus
uboot和kernel對應圖片如下:
uboot:hdplus_uboot.bmp
kernel:hdplus_kernel.bmp
代碼流程
- 1.
{$LK}/platform/mt6765/platform.c
void platform_init(void)
{
...
//如果沒接電池且是低電量模式,將顯示低電量logo,否則正常顯示logo
if (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) {
//加載logo
mboot_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.h
83 // Common LOGO index
84 #define BOOT_LOGO_INDEX 0
85 #define KERNEL_LOGO_INDEX 38
86
87 #define ANIM_V0_BACKGROUND_INDEX 1
88 #define ANIM_V1_BACKGROUND_INDEX 35
89
90 #define LOW_BATTERY_INDEX 2
91 #define LOW_BATTERY01_INDEX 39
92 #define LOW_BATTERY02_INDEX 40
93 #define LOW_BATTERY_REMIND_INDEX 41
94 #define CHARGER_OV_INDEX 3
95 #define FULL_BATTERY_INDEX 37
96
97 // version 1: show wave animation with battery number
98
99 // NUMBER LOGO INDEX
100 #define NUMBER_PIC_START_0 4
101 #define NUMBER_PIC_PERCENT 14
102
103 // DYNAMIC ANIMATION LOGO INDEX
104 #define BAT_ANIM_START_0 15
105
106 // LOW BATTERY(0~10%) ANIMATION LOGO
107 #define LOW_BAT_ANIM_START_0 25
108
109 #define ANIM_LINE_INDEX 36
110
111
112 // version 2: show wireless charging animation logo index
113
114 #define V2_NUM_START_0_INDEX 42
115 #define V2_NUM_PERCENT_INDEX 52
116
117 #define V2_BAT_0_10_START_INDEX 53
118 #define V2_BAT_10_40_START_INDEX 57
119 #define V2_BAT_40_80_START_INDEX 61
120 #define V2_BAT_80_100_START_NDEX 65
121
122 #define V2_BAT_0_INDEX 69
123 #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=wvga
ifeq ($(strip $(BOOT_LOGO)),)
BOOT_LOGO = fwvga
endif
ifeq ($(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.cfg
EMPTY :=
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)
endif
SUPPORT_PUMP_EXPRESS = no
ifeq ($(strip $(MTK_PUMP_EXPRESS_SUPPORT)), yes)
SUPPORT_PUMP_EXPRESS = yes
else
ifeq ($(strip $(MTK_PUMP_EXPRESS_PLUS_SUPPORT)), yes)
SUPPORT_PUMP_EXPRESS = yes
endif
endif
BOOT_LOGO_RESOURCE := $(BUILDDIR)/$(BOOT_LOGO_DIR)/$(BOOT_LOGO).raw
LOGO_IMAGE := $(BUILDDIR)/logo.bin
SUPPORT_PROTOCOL1_RAT_CONFIG = no
SUPPORT_CARRIEREXPRESS_PACK = no
ifdef MTK_CARRIEREXPRESS_PACK
ifneq ($(strip $(MTK_CARRIEREXPRESS_PACK)), no)
SUPPORT_CARRIEREXPRESS_PACK = yes
RAT_CONFIG = $(strip $(MTK_PROTOCOL1_RAT_CONFIG))
ifneq (,$(RAT_CONFIG))
ifneq (,$(findstring L,$(RAT_CONFIG)))
SUPPORT_PROTOCOL1_RAT_CONFIG = yes
endif
endif
endif
endif
ifeq ($(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
endif
ifneq ($(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
endif
ifeq ($(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張
endif
ifeq ($(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
endif
ifeq ($(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
endif
ifeq ($(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
endif
ifeq ($(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
endif
endif
GENERATED += \
$(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/hdplus
hdplus_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