实现的效果
客户提供一张格式为 bmp 的开机logo,在 linux 环境下执行制作 logo.bin 脚本文件,
apk 拷贝 logo.bin 文件替换系统原有的bin,然后重启 logo 自动更新。
原理分析
MTK 平台的充电图片和开机logo都是打包到 logo.bin 中的
对应的资源路径在源码vendor\mediatek\proprietary\bootable\bootloader\lk\dev\logo
系统一般预制了很多分辨率文件夹,实际通过 BOOT_LOGO 来确定打包那一个
制作 logo.bin 文件的规则在 rules.mk 中写的很详细
vendor\mediatek\proprietary\bootable\bootloader\lk\dev\logo\rules.mk
1、将 BOOT_LOGO 文件夹中的 bmp 图片通过 bmp_to_raw 工具转化为 .raw
具体定义在vendor\mediatek\proprietary\bootable\bootloader\lk\dev\logo\update
2、将上一步转化后所有 raw 文件通过 zpipe 工具压缩成 boot_logo.raw 文件
3、最后调用 mkimage 指令将 boot_logo.raw 文件打包成 logo.bin
弄清楚流程了那就好办了,我们只需要将这几个工具和对应的指令集成到一个 .sh 脚本文件即可。
为什么不直接将这几个工具放到 android 系统里呢???
答案是,不支持,一开始我也是这么想的,那直接将这几个工具指令扔到 /system/bin 目录下