在上一篇 高通Android msm8953 驱动开发(一)--LCD调试中我们新增了另一款不同分辨率的LCD,目前有720*1080 、800*1280l两款分辨率的LCD,因此,开机logo需要适配相应分辨率。
我们知道,高通平台logo的生成实质是将图片打包成镜像文件splash.img.
因此,我们可设想这么做:
①.不同分辨logo生成不同的镜像文件;
②.代码里增加对当前屏分辨率的读取,选择相应分辨率的logo 分区的镜像文件;
③.修改分区表新增两分区,打包两个分区的logo镜像,一起烧录。
一.不同分辨logo生成不同的镜像文件:
高通平台logo是通过device/qcom/common/display/logo目录下的python脚本logo_gen.py生成对应对应的镜像:
用法如下:
python ./logo_gen.py your_logo.png
这样目录下就生成splash.img
这样我们分别执行两次便可生成,我们将720*1280d的镜像重命名为splash1.img、800*1280d的镜像重命名为splash2.img。
二.开机读取屏分辨率的,加载相应分辨率的logo镜像:
开机logo加载是在bootable/bootloader/lk/app/aboot/aboot.c,如下修改代码,LCD分辨为720*1080加载splash1分区,800*1280的话加载splash2分区
读屏分辨率加载对应logo分区
三.修改分区表,打包两个分区的logo镜像
原先分区表partition.xml里配置了splash分区,现在改成splash1 splash2分区即可。
修改分区表
验证:打包烧录固件两个不同分辨率LCD机器,logo都能正常加载。