LoginSignup
14
20

More than 3 years have passed since last update.

[Android 7まで]Bluetooth HCIスヌープログの取り方

Last updated at Posted at 2018-03-12

Android 8.0(oreo)は以下を参考にしてください。
https://mozy-ok.hatenablog.com/entry/2018/12/21/003226

Androud 10以降はこちらの記事を参考にしてください。
https://qiita.com/KentaHarada/items/42ed619e8f571d1de845

はじめに

Android端末でBluetoothのHCIのログを取得する方法をまとめました。
HCI(Host Controller Interface)はBluetoothのプロトコルの一種で
BluetoothプロトコルスタックとBluetoothのチップの間のプロトコルです。

環境

  • Galaxy feel(Android 7.0)
  • Android Sutdio 3.0.1
  • Android Debug Bridge version 1.0.39
  • Wireshark 2.0.13

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

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

2. ADBコマンドを使えるようにする

こちらの記事をご覧ください
ADBコマンドの導入方法

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

こちらの記事をご覧ください
Android端末の開発者モードをONにする方法

4. PCとAndroid端末をUSBケーブルで接続する

5. USBデバッグをONにする

設定->開発者向けオプション->USBデバッグ
device-2018-03-11-154618.png

6. BluetoothをONにする

設定->接続->Bluetooth
※ Androidの機種によってメニューの場所が異なります。
device-2018-03-11-155001.png

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

ONにするとHCIログが端末内に保存され続けます。
ログの取得が終わったらOFFにしておかないと、ログがどんどん大きくなるので注意。
device-2018-03-11-154627.png

8. ログファイルの保存場所を確認する

adbコマンドを使ってログ・ファイルがどこに保存されているのか確認します。
bt_stack.confというBluetoothプロトコル・スタックのコンフィグファイルの中に記載されています。
※Androidの機種によってログファイルの保存場所が異なります

$ adb shell cat /etc/bluetooth/bt_stack.conf
# Enable BtSnoop logging function
# valid value : true, false
BtSnoopLogOutput=true
# BtSnoop log output file
BtSnoopFileName=/sdcard/Android/data/btsnoop_hci.log      ★これがHCIスヌープログ!
# Preserve existing BtSnoop log before overwriting
BtSnoopSaveLog=true

確認に使ったAndroid端末では、ここが保存場所でした。

/sdcard/Android/data/btsnoop_hci.log 

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

Android端末とBluetooth機器を使って目的のログを取るための操作を行います。
(ペアリング、接続、切断、データ送受信等)
今回は例としてAndroid端末でペアリング(Numeric Comparison)をしてみました。

10. Android端末からログを取り出す

さきほど確認したログの保存場所からログを取り出します。

$ adb pull /sdcard/Android/data/btsnoop_hci.log

11. ログを解析する

Wiresharkでログを開いて解析します。
スクリーンショット 2018-03-11 16.33.48.png

14
20
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
14
20