文档说明
本文档以SC820-CN-01(msm8953平台,Android 7)为例,描述如何分析静态开机LOGO修改无效问题。
问题现象
制作开机LOGO
这里屏幕的分辨率为1080*1920,首先制作一张同分辨率的png图片,logo.png。
cd device/qcom/common/display/logo
python logo_gen.py logo.png
fastboot烧录
adb reboot bootloader
fastboot flash splash Y:\sc820\sc820-modem\LA.UM.5.6\LINUX\android\device\qcom\common\display\logo\splash.img
烧录后,开机LOGO仍然没有变化,仍为默认的小企鹅图片。
问题分析
log中有以下报错:
[820] ERROR: Splash image header invalid
logo镜像校验失败,查看splash.img头部信息正常(SPLASH!!):
但使用QFIL获取机器splash分区内容后,其头部信息为SOH
由此可判定splash分区信息被修改。
打印错误的地方对应如下路径:
bootable/bootloader/lk/app/aboot/aboot.c
splash_screen_mmc() -> splash_screen_check_header()
解决办法
修改bootable/bootloader/lk/dev/gcdb/display/gcdb_display.c,注释掉 mdss_dsi_dfps_store_pll_codes() 的调用,该函数修改了 splash.img的头信息。
patch见附件
https://uploader.shimo.im/f/OnTOfp8NHwAMg3Gs.patch?attname=gcdb_display.patch&download
make aboot -j8
重新烧录lk镜像文件和splash.img,验证通过。