bugreportは端末のログやシステムサービスの状態などの診断情報を、1つのzipファイルにまとめて取得するサブコマンドである。不具合の調査や、他の開発者へ端末の状態を共有したい場合に使う。
基本の使い方
引数なしで実行すると、カレントディレクトリにzipファイルを保存する。
$ adb bugreport
/data/user_de/0/com.android.shell/files/bugreports/bugreport-sdk_gphone64_arm64-BP22.250325.006-2026-09-24-07-27-39.zip: 1 file pulled, 0 skipped. 158.6 MB/s (5881867 bytes in 0.035s)
Bug report copied to /path/to/current-dir/bugreport-sdk_gphone64_arm64-BP22.250325.006-2026-09-24-07-27-39.zip
端末側でレポートを生成し、ホストへzipを転送する。ファイル名はbugreport-[プロダクト名]-[ビルドID]-[日時].zipの形式で、端末側で生成した名前をそのまま使う。プロダクト名はro.product.nameプロパティの値である。
adb helpには[default=bugreport.zip]と書かれているが、実際にはbugreport.zipという名前では保存されない。引数なしの場合はカレントディレクトリを指定したものとして扱われ、端末側が生成した名前で保存される。bugreport.zipは端末からファイル名を受け取るまでの仮の値である。
生成にはある程度時間がかかる。手元の環境ではエミュレータで約25秒、実機で約1分40秒かかった。ターミナルから実行した場合は、生成中に進捗が表示される。
[ 15%] generating bugreport-sdk_gphone64_arm64-BP22.250325.006-2026-09-24-07-28-10.zip
保存先を指定する
引数に保存先のパスを指定できる。ファイル名を指定した場合は、指定したファイル名で保存される。
$ adb bugreport out/my-report.zip
...
Bug report copied to out/my-report.zip
拡張子.zipを省略すると、自動的に.zipが付く。
$ adb bugreport out/noext
...
Bug report copied to out/noext.zip
既存のディレクトリを指定した場合は、ディレクトリの中に端末側が生成した名前で保存される。
$ adb bugreport dir
...
Bug report copied to dir/bugreport-sdk_gphone64_arm64-BP22.250325.006-2026-09-24-07-28-10.zip
zipの中身
zipには主に以下のファイルが含まれる。
| ファイル | 内容 |
|---|---|
bugreport-[プロダクト名]-[ビルドID]-[日時].txt | メインのレポート。dumpsys・logcat・dmesgなどの出力をまとめたテキスト |
version.txt | バグレポートのフォーマットバージョン |
FS/ | 端末のファイルシステムからコピーしたファイル |
proto/ | 一部のdumpsys出力のprotobuf形式 |
main_entry.txt | メインのレポートのファイル名 |
dumpstate_log.txt | レポートを生成するdumpstate自身の実行ログ |
メインのテキストファイルは------ [セクション名] ------の形式でセクションに分かれている。たとえばSYSTEM LOGセクションには、logcatで取得できるログがそのまま含まれる。
$ unzip -p bugreport-*.zip 'bugreport-*.txt' | grep -n '^------ \(DUMPSYS\|SYSTEM LOG\|EVENT LOG\|KERNEL LOG\)'
48:------ DUMPSYS CRITICAL (/system/bin/dumpsys) ------
11991:------ SYSTEM LOG (logcat -v threadtime -v printable -v uid -d *:v) ------
113555:------ EVENT LOG (logcat -b events -v threadtime -v printable -v uid -d *:v) ------
134028:------ KERNEL LOG (dmesg) ------
165166:------ DUMPSYS HIGH (/system/bin/dumpsys) ------
207270:------ DUMPSYS (/system/bin/dumpsys) ------
参考: 【adb】logcatでタグ・優先度によるログのフィルタと表示形式を変える
端末側に残るファイル
adb bugreportで生成したzipは、ホストへ転送した後も端末側の/data/user_de/0/com.android.shell/files/bugreports/に残る。/bugreportsは同じディレクトリへのシンボリックリンクなので、短いパスでも参照できる。
$ adb shell ls /bugreports/
bugreport-sdk_gphone64_arm64-BP22.250325.006-2026-09-24-07-27-39-dumpstate_log-9899.txt
bugreport-sdk_gphone64_arm64-BP22.250325.006-2026-09-24-07-27-39.zip
dumpstate-stats.txt
端末の容量を空けたい場合はadb shell rmで削除できる。
$ adb shell 'rm /bugreports/bugreport-*'
共有するときの注意
バグレポートには端末のログ、インストール済みアプリの一覧、ネットワークの情報などがまとめて含まれる。
adb devicesに表示されるシリアル番号も含まれる。機種によってはシリアル番号がIMEIと一致する。
アプリがログへ出力した個人情報もSYSTEM LOGに含まれる。
社外や公開の場へバグレポートを共有する前に、含まれる情報を確認する。
Android 7.0未満の端末
zip形式のバグレポートはAndroid 7.0以降で対応している。Android 7.0未満の端末では、引数なしで実行するとテキスト形式のレポートを標準出力へ出力する。ファイルへ保存する場合はリダイレクトを使う。
$ adb bugreport > bugreport.txt
