[AOSP] 开机卡Logo问题分析

  1. 首先要区分卡第一帧logo还是卡第二帧logo,注意kernel层进入到用户空间层,会走first,selinux,second三大阶段,这三大阶段执行完成init进程才算启动完成
  2. 如果是卡第一帧logo,需要排查系统启动进行到哪个阶段了,如果first阶段执行完成后是有kernel日志输出的,还有看看kernel的lk是否有成功启动或者异常信息
  3. 如果是卡第二帧logo,说明是执行到了second阶段,init.rc已经解析,主要排查zygote重启的原因
  4. 如果是卡第一帧logo,都可以尝试替换只读分区,定位问题发生在哪个分区上,先回读super分区,把vendor,product,system(_ext)解包出来,和正常的super分区进行二进制比较,查看这些只读分区内容是否发生修改,确认分区问题,再将正常的super分区刷进手机中,查看能否正常,如果vendor和product分区内容被改变,则dm-verity会校验失败,无法开机。
  5. 如果概率性不卡logo,概率性开机,大概率是硬件问题,例如emmc问题,ddr跳变等,可以替换硬件查看问题是否解决。
  6. 如果刷机后问题仍然存在,那百分百肯定是硬件问题
  7. 自己遇到过卡第二帧logo,是因为systemServer调用startBootstrapServices启动PackageManagerService中出现问题,找不到installer,因为data分区会存放一份PMS数据,但是PMS已经丢失,无法找到installer,原因是因为突然断电,数据丢失

你可能感兴趣的:(Android开发旅途,android,aosp,java)