Android bugreport的使用

简介: Android bugreport的使用
Android bugreport 概述

bugreport 是Android 系统下的一个工具,功能类似于系统的一个黑匣子;通过执行相应的命令可以获取到bugreport 包,其中包含设备日志,堆栈跟踪和其他诊断信息,可帮助您查找和修复系统错误;bugreport信息量非常之大,几乎涵盖整个系统各个层面内容,对于分析BUG是一大利器

生成 bugreport

直接 adb bugreport 生成

adb bugreport
/data/user_de/0/com.android.shell/files/bugreports/bugreport-frost-RD2A.211001.002-2022-07-26-09-29-01.zip: 1 file pulled, 0 skipped. 27.4 MB/s (23057334 bytes in 0.802s)
Bug report copied to C:\Users\86185\bugreport-frost-RD2A.211001.002-2022-07-26-09-29-01.zip
Android bugreport 内容分析

直接生成的是一个zip 包,大概有20M大小;

bugreport-xxxxx-2022-07-26-09-29-01.zip

解压后目录如下所示:

  • FS 是一个目录包含下面子目录:
    data data下的关键信息如 tombstone,ANR,logd信息等
    proc 各个进程procfs 的dump信息
    linkerconfig TBD
  • lshal-debug 关键HAL进程的 lshal信息
  • proto TBD
  • bugreport-frost-RD2A.211001.002-2022-07-26-09-29-01.txt
    系统信息的关键文件,解析见下文
  • dumpstate_board.txt 执行bugreport 的dumpstate 进程信息
  • main_entry.txt dump出的文件名
  • dumpstate_log.txt 执行dumpstate 的log 信息
  • version.txt TBD
  • visible_windows.zip TBD

如果发生了ANR,crash 等事件,FS下的内容是至关重要的,ANR的trace 和 tombstone 文件都可以找到,具体可以结合bugreport txt 文件分析

bugreport-xxx-211001.002-2022-07-26-09-29-01.txt

这个文件包含了system dump 的ALL info 和 dump 时间点前后的log,包含的内容为:

系统信息:

dump时间点,系统版本,内核版本,运行时间,Bootcmd

========================================================
== dumpstate: 2022-07-26 09:29:01
========================================================
Build: frost-userdebug 11 RD2A.211001.002 C3QP_R_V0.9.15.R1-0577-20220720 test-keys
Build fingerprint: 'Redmi/frost/frost:11/RD2A.211001.002/C3QP_R_V0.9.15.R1-0577-20220720:userdebug/test-keys'
Bootloader: unknown
Radio: MPSS.HA.1.0.c2-00414-QTANG2_LWG_PACK-1,MPSS.HA.1.0.c2-00414-QTANG2_LWG_PACK-1
Network: ,
Module Metadata version: 30
Kernel: Linux version 5.4.191-jgki-debug+ (scm@SS-AIMM02) (Android (6443078 based on r383902) clang version 11.0.1 (https://android.googlesource.com/toolchain/llvm-project b397f81060ce6d701042b782172ed13bee898b79), LLD 11.0.1 (/buildbot/tmp/tmp6_m7QH b397f81060ce6d701042b782172ed13bee898b79)) #1 SMP PREEMPT Wed Jul 20 02:28:27 CST 2022
Command line: security=selinux androidboot.hardware=jlq iommu.strict=0 firmware_class.path=/etc/firmware swiotlb=2048 rcu_nocbs=0-7 kpti=off rcupdate.rcu_expedited=1 earlycon=uart8250,mmio32,0x3450F000 console=jlqttyS1,115200n8 no_console_suspend loglevel=7 page_owner=on printk.devkmsg=on buildvariant=userdebug  androidboot.verifiedbootstate=orange androidboot.vbmeta.device=PARTUUID=7db6ac55-ecb5-4e02-80da-4d335b973332 androidboot.vbmeta.avb_version=1.0 androidboot.vbmeta.device_state=unlocked androidboot.secureboot=0 androidboot.vbmeta.hash_alg=sha256 androidboot.vbmeta.size=7168 androidboot.vbmeta.digest=9d001b15f4485a96b573fa13c001ac965a9cd10f43c5734ee92815b91827a401 androidboot.veritymode=disabled androidboot.bootdevice=34458000.sdhci androidboot.boot_devices=0.soc/34458000.sdhci androidboot.serialno=d4081bbb androidboot.sysdump=1 androidboot.cpuid=0x2124a4815baaeebd2102628ed64fc07400000000000000000000000000000000 androidboot.bootreason=0 androidboot.baseband=msm androidboot.hwname=frost androidboot.hwc=Global androidboot.hwversion=1.21.0 androidboot.hwlevel=1 androidboot.product.hardware.sku=c3qpa panel_cfg=xiaomi C3QP 35 02 0a hd+ video dsi panel,display_init=1 androidboot.slot_suffix=_a rootwait ro init=\init androidboot.dtbo_idx=6,9,15  androidboot.dtb_idx=0 androidboot.force_normal_boot=1
Uptime: up 0 weeks, 6 days, 6 hours, 1 minute
Bugreport format version: 2.0
Dumpstate info: id=2 pid=20089 dry_run=0 args=/system/bin/dumpstate -S -d -z bugreport_mode=

dumpsys 信息

  • dumpsys SurfaceFlinger
    关键字:
    DUMP OF SERVICE CRITICAL SurfaceFlinger:
    was the duration of dumpsys SurfaceFlinger
  • dumpsys activity activities
    关键字:
    ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)
    was the duration of dumpsys activity
  • dumpsys cpuinfo
    关键字:
    was the duration of dumpsys cpuinfo
  • dumpsys input
    关键字:
    was the duration of dumpsys input
  • dumpsys notification
    关键字:
    was the duration of dumpsys notification
  • dumpsys power
    关键字:
    was the duration of dumpsys power
  • dumpsys 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):

lgcat 信息

关键字:

system log:

------ SYSTEM LOG (logcat -v threadtime -v printable -v uid -d *:v) ------

------ was the duration of 'SYSTEM LOG' ------

event log:

------ EVENT LOG (logcat -b events -v threadtime -v printable -v uid -d *:v) ------

------ was the duration of 'EVENT LOG' ------

stat log:

------ STATS LOG (logcat -b stats -v threadtime -v printable -v uid -d *:v) ------

------ was the duration of 'STATS LOG' ------

radio log:

------ RADIO LOG (logcat -b radio -v threadtime -v printable -v uid -d *:v) ------

------ was the duration of 'RADIO LOG' ------

last log:

------ LAST LOGCAT (logcat -L -b all -v threadtime -v printable -v uid -d *:v) ------

chkbugreport 工具

因为bugreport 中包含了太多的信息,查找分类信息很困难,所以有分析bugreport txt文件的开源工具 chkbugreport;作用是分析析处理手机上生成的bugreport,并且为开发者提取尽可能多的有用数据;

chkbugreport 工具下载与使用

参考地址:

https://github.com/sonyxperiadev/ChkBugReport/wiki/How-to-install-it

1:先下载下来

git clone https://github.com/sonyxperiadev/ChkBugReport.git

然后在把这两个下载下来

http://sonyxperiadev.github.io/ChkBugReport/download/chkbugreport (Launcher shell script)
http://sonyxperiadev.github.io/ChkBugReport/download/chkbugreport-0.5-215.jar (The application itself)

放入到 :

刚刚下载下来的 路径

ChkBugReport/core

解析 bugreport.txt 文件

java -jar chkbugreport-xxx.jar “bugreport-riva-OPM1.171019.026-2020-10-30-16-06-24.txt”

命令执行完成后,会在命令执行目录下生成一个与日志文件同名的目录

进入该目录,双击index.html文件,可查看日志信息

这个就是刚进来的目录

How to install it · sonyxperiadev/ChkBugReport Wiki · GitHub


目录
相关文章
|
XML 消息中间件 算法
Android 夜间模式的四种实现
实现夜间模式有很多种方式,经过多次尝试,算是找到了一种性价比较高的方式。 这是最正统的方式,但工作量巨大,因为要全局替换 xml 布局中所有硬编码的色值,将其换成主题色。然后通过换主题达到换肤的效果。
666 0
Android 夜间模式的四种实现
|
6月前
|
Android开发
Android 一键屏锁的实现
Android 一键屏锁的实现
35 0
|
编解码 Java Android开发
Android小知识10则(上)(2018.8重编版)
Android小知识10则(下) 目录 前言 横竖屏锁定 不同分辨率的图标 将字符串写在资源文件中 为AlertDialog设置点击监听 ProgressDialog了解一下 最后 前言 Android的知识还是比较碎的, 日常积累很重要.
1049 0
|
Android开发
|
存储 Android开发 数据安全/隐私保护
|
Android开发 数据格式 XML
|
存储 Java 数据库
|
XML Android开发 数据格式