文檔說明
本文檔以SC806-CN-00-71(msm8909平臺,Android 7.1)爲例,說明如何分析開機log判斷是否進入了關機充電流程。
問題現象
客戶機器反覆重啓。log中讀出的Subtype: 0,懷疑是DTS不匹配。
在LK把Boarid-id值固定在6,燒錄開機,仍然反覆重啓。
分析log
下面附件是反覆重啓的log:
看上圖log,重啓之前有個"Powering off the Soc"的動作,看上去像是軟件主動關機了。
再往上翻點,有一句打印 "--------------- STARTING CHARGER MODE ---------------"
這句打印對應如下代碼路徑: system/core/healthd/healthd_mode_charger.cpp
healthd就是管理關機充電的部分。 進入關機充電,又沒有檢測到DC充電,則調用關機接口。
上電開機,進入正常開機還是關機充電,是由 androidboot.mode 的值決定的。
bootable/bootloader/lk/app/aboot/aboot.c 裏面:
SC806-CN-00-71代碼根據board-id值,判斷是否進入關機充電,修改aboot.c,設置不進入關機充電即可。
patch文件
https://uploader.shimo.im/f/10p28wDFq5odvMvZ.patch?attname=aboot.c.patch&download
https://uploader.shimo.im/f/OGMk1t0OlcUW6IQJ.patch?attname=board.c.patch&download
石墨文檔鏈接
https://shimo.im/docs/qvcjkQKJ3dVxjdqY/