解析bugreport,根据不同的log分析Android重启的原因

1. Normal reset

这种情况是最简单的,我们可以查看LAST_KMSG的最后一行,就可以得到相应的重启原因。

1
Restarting system with command: ***
  • 如果为空,原因应为 adb reboot
  • 如果是 bootloader, 原因应为 fastboot reboot
  • 如果是其他明确的command, 可以按字面意思理解其原因

2. Random reboot

这种情况就是系统出错导致的重启。可以按一下四种情况去诊断其重启原因。
一般分为两个层面的重启,一种是hard reboot,一般是kernel 或者 radio-level的错误导致重启;另一种是在kernel正常运行的情况下Android runtime的重启,可能是由Deadlock,System server process crash或native crash导致的。

2.1 Kernel panic

诊断是否有kernel panic, 可以check kernel logs里是否有如下log

1
2
3
4
[  424.909515] Kernel panic - not syncing: Fatal exception
[ 424.909606] Backtrace:
[ 424.909790] [<c005a5ec>] (dump_backtrace+0x0/0x10c) from [<c05f38dc>] (dump_stack+0x18/0x1c)
[ 424.909973] r6:c5cccf00 r5:00000000 r4:c08505a0 r3:00000000

2.2 Radio-side problem

Radio level的错误可以查看LAST_KMSG中是否有如下log

1
2
[  535.383270] ARM9 has CRASHED
[ 535.383666] smem: DIAG 'MOD SM-TM 00000

2.3 Deadlock

死锁的error log如下,可以从EVENT_LOG或者SYSTEM_LOG中查找。

1
04-04 14:06:16.888   885  1089 W Watchdog: *** WATCHDOG KILLING SYSTEM PROCESS: null

2.4 System server process crash

log如下,也是从EVENT_LOG或者SYSTEM_LOG中查找。关键字:
*** FATAL EXCEPTION IN SYSTEM PROCESS

1
01-01 12:45:11.950 E/AndroidRuntime( 4429): *** FATAL EXCEPTION IN SYSTEM PROCESS: main

2.5 Native crash

Native crash的log都是从一行星号开始, 可以作为标志去SYSTEM_LOG中查找。

1
2
3
4
5
6
7
8
9
10
07-28 11:31:21.675: INFO/DEBUG(2880): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
07-28 11:31:21.675: INFO/DEBUG(2880): Build fingerprint: 'verizon/voles/sholes/sholes:2.2.2/FRG83G/91102:user/release-keys'
07-28 11:31:21.675: INFO/DEBUG(2880): pid: 2893, tid: 2894 >>> com.gnychis.coexisyst <<<
07-28 11:31:21.675: INFO/DEBUG(2880): signal 11 (SIGSEGV), fault addr 2d4eedb4
07-28 11:31:21.675: INFO/DEBUG(2880): r0 2d4eeda4 r1 00000000 r2 00000024 r3 00000000
07-28 11:31:21.675: INFO/DEBUG(2880): r4 00d3e770 r5 00000000 r6 4184ff98 r7 4184ffa4
07-28 11:31:21.675: INFO/DEBUG(2880): r8 100ffad0 r9 4184ff9c 10 4184ff84 fp 100ffe30
07-28 11:31:21.675: INFO/DEBUG(2880): ip 85b7efec sp 100ffa88 lr 845d13f8 pc 845f8c38 cpsr 60000010
07-28 11:31:21.675: INFO/DEBUG(2880): d0 6472656767756265 d1 4472fb3844714069
...