定制开机logo和开机动画
开机logo
MTK ASOP中lk阶段的logo是开机后的第一个界面,也被称为U-boot logo,其与Battery logo在编译后会统一生成logo.bin。
- 查看ASOP源码目录下的配置文件:
vendor\mediatek\proprietary\bootable\bootloader\lk\project\8pbsp.mk
-
找到选项:
BOOT_LOGO := wuxganl
-
可知开机启动的logo所在目录为: vendor\mediatek\proprietary\bootable\bootloader\lk\dev\logo\wuxganl
要替换成自己的logo,一定要是bmp图片,且为24位;bmp图片要使用原始图档,不能压缩!
- 如何确定bmp图片是否有压缩,可用二进制查看工具打开bmp图片,查看其第
0x1E
~0x21
字节的值,若非0x00000000
,则该bmp图片为压缩的bmp格式。
注意:
- logo.bin的大小限制在4M内
- lk logo和kernel logo图片格式为RGB888
- logo.bin中的图片压缩顺序可以查看lk/dev/logo/rules.mk文件
- 编译Android系统完成后会在 /out/target/product/8p1bsp/obj/BOOTLOADER_OBJ/build-8p1bsp/dev/logo 目录下会生成wuxganl.raw文件和wuxganl目录,这个wuxganl目录下有每张图片的
.raw
文件,用于lk阶段的程序解析加载。
开机动画
bootanimation.zip
压缩包中的图片构成了Android开机动画,里面存放的都是一帧一帧的png
格式图片。
- ASOP源码中所处的位置为:
frameworks/base/data/sounds
- 编译得到的系统中所处的位置为:
/system/media/
(工程源码编译输出路径中也有)
bootanimation.zip
其包含desc.txt、part0、part1三部分
- desc.txt文件,示例
650 300 5
p 1 2 part0
p 0 2 part1
- 650 300 5
代表显示的分辨率:宽度*高度,5表示一秒钟显示的帧数 - p 1 2 part0
代表这一阶段只播放1次,间隔时间为2秒,播放的图片所在文件夹为part0 - p 0 2 part1
代表循环播放,播放间隔时间为2秒,播放的图片所在文件夹为part1
frameworks/base/data/sounds 目录下有AllAudio.mk文件,文件中的语句:
$(LOCAL_PATH)/bootanimation.zip:system/media/bootanimation.zip
代表会将压缩包拷贝至out/target/product/8p1bsp/system/media/目录下
生成zip文件
不要在windows系统下压缩生成bootanimation.zip,因为如果浏览图片后,windows将会生成隐藏文件Thumbs.db,要在Linux系统下操作
zip -0qry -i \*.txt \*.png \*.wav @ ../bootanimation.zip *.txt part`
添加新的开机动画
如果只是替换开机动画,直接用新的bootanimation.zip
替换源码目录中旧的即可,但若需新增新的开机动画,还需修改源代码,相关的源码为:
frameworks/base/cmds/bootanimation/BootAnimation.cpp
- 将新的动画压缩包放至源码目录
frameworks/base/data/sounds
,BootAnimation.cpp源程序中添加一句:
static const char SYSTEM_BOOTANIMATION_NEW[] = "/system/media/bootanimation_new.zip";
- BootAnimation.cpp源程序中加载动画的语句修改为:
part.animation = loadAnimation(SYSTEM_BOOTANIMATION_NEW));
- frameworks/base/data/sounds/AllAudio.mk 工程文件中添加新添加的动画文件
$(LOCAL_PATH)/bootanimation_new.zip:system/media/bootanimation_new.zip \