web-dev-qa-db-ja.com

Bluetooth HCIスヌープログが生成されない

Android 4.4.2を実行し、ここで説明するように「Bluetooth HCIスヌープログ」を有効にしました 独自のAndroid Bluetoothトラフィックをスニッフィング/ログ記録します

Bluetoothのオンとオフを切り替えた後、電話を再起動しました。予想される場所にログファイルが見つかりませんでした。

$ adb pull /sdcard/btsnoop_hci.log
remote object '/sdcard/btsnoop_hci.log' does not exist

Btsnoop_hci.logにアクセスするにはどうすればよいですか?

22
Jack Shultz

更新:btsnoop hciログは、多くの電話でユーザーがアクセスできる領域から段階的に削除されているようです。 hciロギングが有効になっていると仮定すると、バグレポートを取得できます

adb bugreport anewbugreportfolder

次に、フォルダーを解凍します。運が良ければbtsnoop_hci.logを含む 'FS'フォルダーがいくつかのレイヤーをログに記録します(一部の電話にはこれがあり、一部の電話にはない理由はわかりません)。持っていない場合は、バグレポートテキストを取得してください。このようなファイル

bugreport-2018-08-01-15-08-01.txt

それに対してbtsnooz.pyを実行します。 Googleの指示に従って

To extract snoop logs from the bug report, use the btsnooz script.

Get btsnooz.py.
Extract the text version of the bug report.
Run btsnooz.py on the text version of the bug report:

btsnooz.py BUG_REPORT.txt > BTSNOOP.log

18/1/18現在、btsnoozへのリンクは次のとおりです。 https://Android.googlesource.com/platform/system/bt/+/master/tools/scripts/btsnooz.py

レガシー回答:

Bt_stack.confファイルを読むと、電話がhciログを保存している場所を確認できます。試して

adb Shell cat /etc/bluetooth/bt_stack.conf

次のような行が表示されます

# BtSnoop log output file
BtSnoopFileName =/sdcard/btsnoop_hci.log <--your file location

通常は、常にではありません(電話によって異なります)は、SDカードのルートにあります。この構成ファイルには、hciロギングが実際にオンかどうかを反映する行もあります

# EnableBtSnoop logging function
# valid value : true , false
BtSnoopLogOutput=false

開発者オプションの[Bluetooth HCIスヌープログを有効にする]オプションを切り替えると、

# EnableBtSnoop logging function
# valid value : true , false
BtSnoopLogOutput=true

一部の携帯電話ではこのファイルを更新しないため、「すべき」と言います。あなたがすべき:

  1. Bt_stack.confファイルを読みます。 HCIログの場所と、bt snoopロギングが実際に有効になっているかどうかを確認します
  2. 開発者のオプションでbtsnoop_hciロギングはオンになっているが、bt_stack.confファイルにオフと表示されている場合は、bluetoothや携帯電話の電源を入れ直します。
  3. 電話機がルート化されている場合、手動でBtSnoopLogOutput=true

3つのオプションのいずれも機能しない場合は、運が悪いです。 BT Snoop hciロギングは、異なる電話間で少し一貫性がありません。私はいくつかの携帯電話を見てきましたが、それが何であれそれを動作させることができませんでしたが、ほとんどの場合、あなたはそれを動かすことができるはずです。ルート化された電話は必須ではありません。

74
TwinPrimesAreEz

Nexus 5XおよびPixel C Android Oでは、bluetoothを有効にし、開発者設定でHCIスヌーピングを有効にし、bluetoothを無効にして再度有効にし、再起動する必要があります。

その後、開発者の設定に移動してログを取得し、「バグレポートを取得」して完全なログを取得できます。

ファイルbt_stack.confは変更されず、他のデバイスのように/ sdcardに新しいファイルはありません

13
PaulFreund

ユーザーバージョンのPixel/Nexusの場合、/ data/misc/bluetooth/logs/btsnoop_hci.logを引き出す権限がない場合があります。次のようにhciログを取得できます。

adb Shell dumpsys bluetooth_manager
adb bugreport > BUG_REPORT.txt

BUG_REPORT.txtとZipファイルを取得します。 HCIログは、ZipファイルのFS\data\misc\bluetooth\logsにあります。

4
Fukai

私の場合、bt_stack.confは/sdcard/Android/data/btsnoop_hci.logを示しました

3
abourget

Samsung s8の場合、魔法の場所は/ data/log/bt /です
そしてそれを取得するにはルートアクセスが必要です

2
GroovyDotCom

これが私にとってそれを解決したものです:

1)adb Shell cat /etc/bluetooth/bt_stack.conf

ログファイルの名前を確認するには、私にとっては:

/data/log/bt/btsnoop_hci.log

トリッキーな部分は、名前にタイムスタンプが含まれているファイルが生成されるため、使用するだけでは取得できないことです

adb pull /data/log/bt/btsnoop_hci.log

2)_adb pull /data/log/bt/代わりに、フォルダ全体とすべてのログを取得します

2
Tontici Oleg

OnePlus 6(A6003、Android 9)電話(および他のOnePlus電話と思われます)の場所は次のとおりです。

/sdcard/oem_log/btsnoop

この場所には、ルート化もadbを介したアクセスも必要ありません。ログには.cfa拡張子。

1
szalski

@TwinPrimesAreEzは優れていますが、4番目のオプションがあります。少なくともデバイスがルート化されている場合。コール:

/system/bin/btsnoop

Somewhere このツールは削除されましたが、まだデバイスに存在しています。さらに、Bluetoothが有効になっているときに呼び出されるようです。 logcatに「btsnoop_dump::snoop_log_open:Dirエントリを開けません」と表示されます。そのディレクトリを開けない理由がわからない(ところで、/data/media/0)しかし、このツールは、Androidに統合された新しいHCIスヌーピングオプションを何らかの形で妨げると思われます。ただし、そのツールを直接呼び出す場合(例:adb Shellまたは 端末エミュレータ )動作します。私にとっては、ファイル/data/media/0/hci_snoop20180203164422.cfa

0
Jack Miller