摘要:
嵌入式系统在开发过程中总是要用到更换LOGO的过程,该文档主要针对MT3561项目更换LOGO的过的讲解
涉及修改的文件:
device\atc\evb3561sv_w_no2\ProjectConfig.mk
vendor\mediatek\proprietary\bootable\bootloader\lk\project\evb3561sv_w_no2.mk
vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/cmcc_1024x600/cmcc_1024x600_uboot.bmp
vendor\mediatek\proprietary\custom\evb3561sv_w_no2\factory\res\images\default_bootlogo.bmp
vendor\mediatek\proprietary\bootable\bootloader\lk\dev\logo\rules.mk
frameworks\base\core\res\assets\images\android-logo-mask.png
frameworks\base\core\res\assets\images\android-logo-shine.png
1 项目全部配置
device\atc\evb3561sv_w_no2\ProjectConfig.mk
##BOOT_LOGO = cmcc_1280x720
BOOT_LOGO = cmcc_1024x600
2 boot Logo的修改
因为目前我们使用的是MTK手机平台,LK和内核使用一个BOOTLOGO,所以只需要修改LK即可,内核不需要进行配置
2.1 lk阶段项目配置
vendor\mediatek\proprietary\bootable\bootloader\lk\project\evb3561sv_w_no2.mk
#BOOT_LOGO := cmcc_1280x720
BOOT_LOGO := cmcc_1024x600
2.2 添加1024x600图片的LOGO文件
vendor\mediatek\proprietary\custom\evb3561sv_w_no2\factory\res\images\default_bootlogo.bmp
直接将我们修改的1024x600分辨率图片替换成
vendor\mediatek\proprietary\custom\evb3561sv_w_no2\factory\res\images\default_bootlogo.bmp即可,不需要在
vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/目录中添加cmcc_1024x600目录,并加图片添加到下面,同时命名为:
cmcc_1024x600_uboot.bmp
cmcc_1024x600_kernel.bmp
如果不将
vendor\mediatek\proprietary\custom\evb3561sv_w_no2\factory\res\images\default_bootlogo.bmp图片替换掉,修改将不启作用,原因如下:
在vendor\mediatek\proprietary\bootable\bootloader\lk\dev\logo\rules.mk文件中的
#rename it to $(BOOT_LOGO)_kernel.bmp and $(BOOT_LOGO)_uboot.bmp
$(shell cp -f $(ROOTDIR)/$(MTK_PATH_CUSTOM)/factory/res/images/default_bootlogo.bmp $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_kernel.bmp)
$(shell cp -f $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_kernel.bmp $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_uboot.bmp)
BOOT_LOGO_RESOURCE := $(BUILDDIR)/$(BOOT_LOGO_DIR)/$(BOOT_LOGO).raw
LOGO_IMAGE := $(BUILDDIR)/logo.bin
如果不更换
vendor\mediatek\proprietary\custom\evb3561sv_w_no2\factory\res\images\default_bootlogo.bmp文件图片,在
vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/cmcc_1024x600/cmcc_1024x600_uboot.bmp
vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/cmcc_1024x600/cmcc_1024x600_kernel.bmp添加,需要将
vendor\mediatek\proprietary\bootable\bootloader\lk\dev\logo\rules.mk文件中的
#rename it to $(BOOT_LOGO)_kernel.bmp and $(BOOT_LOGO)_uboot.bmp
##$(shell cp -f $(ROOTDIR)/$(MTK_PATH_CUSTOM)/factory/res/images/default_bootlogo.bmp ##$(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_kernel.bmp)
##$(shell cp -f $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_kernel.bmp ##$(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_uboot.bmp)
BOOT_LOGO_RESOURCE := $(BUILDDIR)/$(BOOT_LOGO_DIR)/$(BOOT_LOGO).raw
LOGO_IMAGE := $(BUILDDIR)/logo.bin
注释掉即可.
3 架构层部分动态LOGO的修改
frameworks\base\core\res\assets\images\android-logo-mask.png
frameworks\base\core\res\assets\images\android-logo-shine.png
架构层部分的动态LOGO修改的原理见
frameworks\base\cmds\bootanimation\BootAnimation.cpp文件中针对动态logo的代码说明
主要实现的原理就是将实体显示的logo镂空放到前面,后面用一个颜色逐继变化的logo在背面循环扫描,在人眼看到就是动态变化的logo