问题:当我们遇到了手机死机问题(hang issue),如何进行处理?
如果手机死机,并且没有重启(reboot),可能的原因: 1、 在kernel中,进程中有一些dead lock,同时Android service也堵塞了(blocked),但是time interrupt和dog kick仍然能够running。因此手机没有重启。 2、 Deadlock发生在Android userspace server,如service manager 或者serviceflinger。
两种情景抓取log: 1、 adbshell 能够工作 通过adb获取一些信息,如adb bugreport > D:\bugreport.txt。 一些Android framework dead lock可能导致bugreport hang。因此需要先获取一些简单log,如dmesg和logcat log。再进行adb bugreport操作。获取dmesg log之后,通过sysrq 接口获取更多信息。 kernel/Documentation/sysrq.txt
disk sleep(uninterruptable sleep)时显示tasks,如阻塞在mutex或者hardware
register access。
通过以下trigger获取crash dump 不同平台拥有不同sysfs进入downloade mode的方式,并使能download
mode
2、 没有枚举adb port或者adb shell不能正常工作 我们需要trigger dump,通过长按power key或者RESET_IN pin(通常连接到powerkey + volume-产生), 需要确保s2-type 配置为1 (warm reset),而不是 7 (hard reset) pon_1 is forpower key, pon_3 is for RESET_IN pin 如果仍然不工作,pull down PS_HOLDin 200ms。
|
|