LoginSignup
22
12

【Android】Bluetooth HCIスヌープログの取り方

Last updated at Posted at 2020-05-04

はじめに

BluetoothのHCIスヌープログを取得する方法をまとめました。確認はPixel 4a(Android 13)で行いました。他のOSバージョン、他の機種では画面や手順が異なる場合がありますのご注意ください。

Linuxで取得する方法もあります → https://qiita.com/KentaHarada/items/8eeb7ada6ae974e44a3b

Bluetooth HCIスヌープログとは?

HCI(Host Controller Interface)はBluetoothのプロトコルの一種で
BluetoothプロトコルスタックとBluetoothのチップ間のプロトコルです。
エアーを飛んでいるパケットとは違いますが、高価なアナライザー不要である程度の解析ができます。

スクリーンショット_2020-05-04_15_30_20.png

どんな時に使うの?

AndroidアプリとBluetoothデバイスの接続不良など、問題の解析に使うことが多いです。アプリではBluetoothの細かい切断理由や、どちら側から切断されたのか?が分からないことがあります。そういった時に、切断理由や切断元を特定するために用いると便利です。

確認環境

  • MacBook Pro (13-inch, 2020) macOS Monterey 12.6.1
  • Pixel4a(Android 13)
  • Wireshark Version 3.2.3

1. Wiresharkをインストールする

Wiresharkでログを解析するので、先にインストールしておきます。
Wireshark の使い方

2. Android端末の開発者モードをONにする

[設定] > [デバイス情報] > [ビルド番号] を 7 回タップすると開発者モードに入れます。
image.png

3. Bluetooth HCIスヌープログをONにする

[設定] > [システム] > [開発者向けオプション]
Bluetooth HCIスヌープログをONを選択する。
スクリーンショット 2023-05-20 18.41.37.png

次のダイアログで 有効 を選択する。
スクリーンショット 2023-05-20 18.43.03.png

注意! 必ず有効を選択してください。
有効(フィルタ済み)を選択するとデバイスとのデータ送受信のログがフィルタリングされて肝心の通信部分のログが見えません。
例えば、Bluetooth Low Energyの場合はGATT通信部分(Write/Notify/Indicate等)がフィルタリングされて見えなくなります。

4.Bluetoothをオフ・オンする

Bluetoothを一度オフしてからオンにします。
こうすることでHCIスヌープログが有効になります。

image.png

5. ログを取りたいBluetoothの操作を行う

Android端末とBluetooth機器を使って目的のログを取るための操作を行います。

6. バグレポートを生成する

[設定] > [システム] > [開発者向けオプション] > [バグレポート]を選択する。
スクリーンショット 2023-05-20 18.46.51.png

対話型レポートを選択する。(完全レポートでもOKみたいです)
スクリーンショット 2023-05-20 18.48.34.png

生成中の通知が表示されます。
image.png

しばらく時間がかかるので、2〜3分待ちます。

image.png

バグレポートの生成が完了したら、この通知をタップして共有(メール等)します。

7.バグレポートのZIPファイルを展開する

HCIスヌープログは FS/data/misc/bluetooth/logs に入っています。
スクリーンショット 2020-05-04 15.09.28.png

8. Wiresharkでログを解析する

btsnoop_hci.logをWiresharkで開いてログを解析します。
細かい解析方法についてはBluetooth SIGが公開しているスペックを参照してください。
スクリーンショット 2020-05-04 15.17.23.png

参考

https://source.android.com/docs/core/connect/bluetooth/verifying_debugging?hl=ja
https://developer.android.com/studio/command-line/dumpsys?hl=ja

22
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
12