Android Bootup Debug思路

坚持总结

如果机器在开机过程中出现死机和重启的情况,可以由以下几点的Debug思路:

一、抓取log

   一份正常启动log,一份异常启动log。log部分包括logcat和串口log,如果是mtk平台 的话,可以抓取mtklog 和串口log。如果有NE或者ANR的相应的log也一并导出,anr:data/anr  ,aee:data/aee_exp

二、定位异常发生的阶段性

这部分就需要在log中找相应的启动关键字。如果找到关键字,再定位具体发生错误的代码和函数,也可以对比正常的log,来找到发生错误的位置。

 android系统启动的关键log:

   1、"Preparing for EL3 exit to normal world, LK"

                如果串口log里面没有走到这里,说明在PL就卡住了,这句表示进入LK

      2、"lk finished --> jump to linux kernel"

                如果串口log里面没有走到这里,但是上面走到了,说明在lk卡住了,这句表示进入kernel

      3、"Kernel_init_done"

                这句表示kernel初始化完成了,正准备启动init进程,如果这就没有走到:请搜索关键字initcall,

                initcall是顺序执行例如module_init注册的init函数,看看卡在哪个call back上

      4、"BOOTPROF"

                这是开机过程中,每走过一个重要阶段都会打印的标志,例如上面Kernel_init_done这一句就会打上这个标志

      5、"init: init first stage started"

                这句表示init进程正常起来执行

      6、"fs_mgr" 和"e2fsck"

                这里标志是在检查和mount 文件系统,如果失败会有如下log:fs_mgr_mount_all returned an error                             fs_mgr_mount_all returned unexpected error 255

      7、"zygote"

                Starting service 'zygote':这里表示要启动zygote,如果没有这一句表示zygote还没启动,则要检查之前的initrc                 执行情况,文件系统mount情况

      8、"SysServerInit_START"

                启动system_server

      9、"system_server"

                Android:SysServerInit_END   这里表示system_server启动完成      

      10、"BOOT_Animation:END"

                表示开机动画正常结束,进入安卓

 

三、确定发生异常的log属于的类型状态

 1 Java Exception (JE)

Software Watchdog Timeout (SWT)

Application Not Responding (ANR)

4 What a Terrible Failure (WTF)

5 Native Exception (NE)

Kernel Exception (KE)

7 Low Memory Killer (LMK)

8 Out of Memory (OOM)

Hardware Watchdog Timeout (HWT)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值