引言
聊聊Android设备生成的bugreport文件日志的分析方法,bugreport.txt文件比较大,刚接触的时候会有点无从下手的感觉,下面就记录一下我自己熟悉这套日志的过程。
文件结构
一、首先是一段头文件,描述此次dump的bugreport日志的设备:
========================================================
== dumpstate: 2024-10-15 14:59:59
========================================================
Build: D730_V1.1.0.139
Build fingerprint: 'SEUIC/d730/d730:11/CRUISE2.20240723/D730_V1.1.0.139:user/release-keys'
Bootloader: unknown
Radio: c7-00021-KAMORTA_GEN_PACK-1.621370.1.626476.1,c7-00021-KAMORTA_GEN_PACK-1.621370.1.626476.1
Network: ,
Module Metadata version: 30
Kernel: Linux version 4.19.157-perf (android@Android-01) (clang version 10.0.7 for Android NDK, GNU ld (binutils-2.27-bd24d23f) 2.27.0.20170315) #1 SMP PREEMPT Tue Jul 23 12:55:52 CST 2024
Command line: rcupdate.rcu_expedited=1 rcu_nocbs=0-7 kpti=off console=ttyMSM0,115200n8 earlycon=msm_geni_serial,0x4a90000 androidboot.hardware=qcom androidboot.console=ttyMSM0 androidboot.memcg=1 lpm_levels.sleep_disabled=1 video=vfb:640x400,bpp=32,memsize=3072000 msm_rtb.filter=0x237 service_locator.enable=1 swiotlb=2048 loop.max_part=7 buildvariant=user androidboot.verifiedbootstate=green androidboot.keymaster=1 androidboot.vbmeta.device=PARTUUID=e62a4961-d4d2-ec94-7da5-186a2acba51d androidboot.vbmeta.avb_version=1.0 androidboot.vbmeta.device_state=locked androidboot.vbmeta.hash_alg=sha256 androidboot.vbmeta.size=7360 androidboot.vbmeta.digest=70ba25fa71d17f53a456eee2d5ea0d5bb327facb4ba195faf3d2358139ac62df androidboot.vbmeta.invalidate_on_error=yes androidboot.veritymode=enforcing androidboot.bootdevice=4804000.ufshc androidboot.fstab_suffix=default androidboot.boot_devices=soc/4804000.ufshc androidboot.serialno=911fc75f pad.version=1 model=CRUISE2 bootlogo= model_use_pad=0 device_type=2.0Q8-11-8/128-S8(H)GC13/5-F-BE scanner=d128 camera= uhf= nfc= lcd_id= language=zh_CN submodel= speaker= dalg=sds androidboot.baseband=msm msm_drm.dsi_display0=qcom,mdss_dsi_ili9881c_video: androidboot.slot_suffix=_b rootwait ro init=/init androidboot.dtbo_idx=9 androidboot.dtb_idx=0
Uptime: up 0 weeks, 0 days, 0 hours, 8 minutes
Bugreport format version: 2.0
Dumpstate info: id=1 pid=6223 dry_run=0 args= bugreport_mode=BUGREPORT_INTERACTIVE
以上信息显示了系统的详细状态,包括构建信息、内核版本、命令行参数等。
构建信息:
1、Build: D730_V1.1.0.139
Build fingerprint: 'SEUIC/d730/d730:11/CRUISE2.20240723/D730_V1.1.0.139:user/release-keys'
这表明你使用的设备是 SEUIC D730,运行的是 Android 11 版本。
2、Kernel: Linux version 4.19.157-perf
内核版本为 4.19.157-perf,这是一个性能优化版本的内核。
3、Uptime: up 0 weeks, 0 days, 0 hours, 8 minutes
设备已经运行了 8 分钟。
二、各种参数的dump
接下来就是各种信息的dump,从这个标记开始:
------ DUMPSYS CRITICAL (/system/bin/dumpsys) ------
-------------------------------------------------------------------------------
依次dump了如下信息:
dumpsys SurfaceFlinger
开始和结尾的关键字搜索:
DUMP OF SERVICE CRITICAL SurfaceFlinger:
was the duration of dumpsys SurfaceFlinger
dumpsys activity activities
开始和结尾的关键字搜索:
DUMP OF SERVICE CRITICAL activity
was the duration of dumpsys activity
dumpsys cpuinfo
开始和结尾的关键字搜索:
DUMP OF SERVICE CRITICAL cpuinfo:
was the duration of dumpsys cpuinfo
dumpsys input
开始和结尾的关键字搜索:
DUMP OF SERVICE CRITICAL input
was the duration of dumpsys input
dumpsys notification
开始和结尾的关键字搜索:
DUMP OF SERVICE CRITICAL notification
was the duration of dumpsys notification
dumpsys power
开始和结尾的关键字搜索:
DUMP OF SERVICE CRITICAL power:
was the duration of dumpsys power
dumpsys sensorservice
开始和结尾的关键字搜索:
DUMP OF SERVICE CRITICAL sensorservice:
was the duration of dumpsys sensorservice
dumpsys window lastanr
开始和结尾的关键字搜索:
WINDOW MANAGER LAST ANR (dumpsys window lastanr)
dumpsys window policy
开始和结尾的关键字搜索:
WINDOW MANAGER POLICY STATE (dumpsys window policy)
dumpsys window animator
开始和结尾的关键字搜索:
WINDOW MANAGER ANIMATOR STATE (dumpsys window animator)
dumpsys window sessions
开始和结尾的关键字搜索:
WINDOW MANAGER SESSIONS (dumpsys window sessions)
dumpsys window displays
开始和结尾的关键字搜索:
WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)
dumpsys window tokens
开始和结尾的关键字搜索:
WINDOW MANAGER TOKENS (dumpsys window tokens)
dumpsys window windows
开始和结尾的关键字搜索:
WINDOW MANAGER WINDOWS (dumpsys window windows)
dumpsys window trace
开始和结尾的关键字搜索:
WINDOW MANAGER TRACE (dumpsys window trace)
dumpsys window logging
开始和结尾的关键字搜索:
WINDOW MANAGER LOGGING (dumpsys window logging)
dumpsys window refresh
开始和结尾的关键字搜索:
WINDOW MANAGER HIGH REFRESH RATE BLACKLIST (dumpsys window refresh)
dumpsys window constants
开始和结尾的关键字搜索:
WINDOW MANAGER CONSTANTS (dumpsys window constants):
三、SYSTEM LOG
开始结束关键字搜索:
------ SYSTEM LOG (logcat -v threadtime -v printable -v uid -d *:v) ------
------ was the duration of 'SYSTEM LOG' ------
其实调用的是logcat system和main缓冲区的log,可重点关注如下标记日志:
--------- beginning of system
--------- beginning of crash
--------- beginning of main
四、EVENT LOG
开始结束关键字搜索:
------ EVENT LOG (logcat -b events -v threadtime -v printable -v uid -d *:v) ------
------ was the duration of 'EVENT LOG' ------
调用的是logcat events缓冲区的log
五、RADIO LOG
开始结束关键字搜索:
RADIO LOG (logcat -b radio -v threadtime -v printable -v uid -d *:v) ------
------ was the duration of 'RADIO LOG' ------
调用的是logcat radio缓冲区的log,无线电相关,打电话等
六、STATISTICS LOG
开始结束关键字搜索:
------ LOG STATISTICS (logcat -b all -S) ------
------ was the duration of 'RADIO STATISTICS ' ------
记录了main/radio/events/system/crash/security/kernel等各个log的使用情况
七、略过一些不关心的log和dump
------ was the duration of 'LAST LOGCAT' ------
------ was the duration of 'DUMP TRACES' ------
------ was the duration of 'for_each_pid' ------
------ was the duration of 'IPTABLES' ------
------ was the duration of 'IP6TABLES' ------
...
------ was the duration of 'LPDUMP' ------
八、MEMORY INFO
开始结束关键字搜索:
------ MEMORY INFO (/proc/meminfo) ------
------ was the duration of 'MEMORY INFO' ------
需要重点关注的信息,内存相关,详细参数需要了解清楚其代表的含义。
九、CPU INFO
开始结束关键字搜索:
------ CPU INFO (top -b -n 1 -H -s 6 -o pid,tid,user,pr,ni,%cpu,s,virt,res,pcy,cmd,name) ------
------ was the duration of 'CPU INFO' ------
需要重点关注的信息,cpu相关,详细参数需要了解清楚其代表的含义。
十、VIRTUAL MEMORY STATS
开始结束关键字搜索:
------ VIRTUAL MEMORY STATS (/proc/vmstat) ------
------ was the duration of 'VIRTUAL MEMORY STATS' ------
需要重点关注的信息,虚拟内存相关,详细参数需要了解清楚其代表的含义。
十一、LAST ANR
开始结束关键字搜索:
------ VM TRACES AT LAST ANR (/data/anr/anr_2024-08-17-16-02-18-905: 2024-08-17 16:02:33) ------
------ was the duration of 'ANR FILES' ------
最近一次anr的trace信息,值得关注。
十二、HIGH meminfo
开始结束关键字搜索:
DUMP OF SERVICE HIGH meminfo:
was the duration of dumpsys meminfo
高内存的进程dump,值得关注。
十三、SYSTEM PROPERTIES
开始结束关键字搜索:
------ SYSTEM PROPERTIES (getprop) ------
------ 0.067s was the duration of 'SYSTEM PROPERTIES' ------
系统的一些内置参数,键值对,值得关注。
十四、BINDER FAILED TRANSACTION LOG
开始结束关键字搜索:
------ BINDER FAILED TRANSACTION LOG (/dev/binderfs/binder_logs/failed_transaction_log: 1970-01-02 08:04:48) ------
------ 0.001s was the duration of 'BINDER FAILED TRANSACTION LOG' ------
binder通信失败的日志,比如binder传送数据过大等,很多aidl失败的日志可以在这里找到,后面还列举了所有的binder日志,值得关注。
十五、Android Framework Services
开始结束关键字搜索:
== Android Framework Services
========================================================
------ DUMPSYS (/system/bin/dumpsys) ------
系统Framework 的一些服务或者机制的dump信息,值得关注,如activity,service,broadcast,contentProvider四大组件的各个状态。
还可以看到因为低内存而杀死的进(dumpsys activity lmk)程,各个进程的详细信息(dumpsys activity processes)等
十六、 APP ACTIVITIES
开始结束关键字搜索:
------ APP ACTIVITIES (/system/bin/dumpsys -T 60000 activity -v all) ------
------ 0.081s was the duration of 'APP ACTIVITIES' ------
值得关注。
十七、Dropbox相关
Dropbox会收集system server crash 和 system app crash 信息
开始结束关键字搜索:
------ DROPBOX SYSTEM SERVER CRASHES (/system/bin/dumpsys -T 30000 dropbox -p system_server_crash) ------
------ DROPBOX SYSTEM APP CRASHES (/system/bin/dumpsys -T 30000 dropbox -p system_app_crash) ------
值得关注。