文檔說明
本文檔以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,驗證通過。