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にアクセスするにはどうすればよいですか?
更新: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
一部の携帯電話ではこのファイルを更新しないため、「すべき」と言います。あなたがすべき:
BtSnoopLogOutput=true
3つのオプションのいずれも機能しない場合は、運が悪いです。 BT Snoop hciロギングは、異なる電話間で少し一貫性がありません。私はいくつかの携帯電話を見てきましたが、それが何であれそれを動作させることができませんでしたが、ほとんどの場合、あなたはそれを動かすことができるはずです。ルート化された電話は必須ではありません。
Nexus 5XおよびPixel C Android Oでは、bluetoothを有効にし、開発者設定でHCIスヌーピングを有効にし、bluetoothを無効にして再度有効にし、再起動する必要があります。
その後、開発者の設定に移動してログを取得し、「バグレポートを取得」して完全なログを取得できます。
ファイルbt_stack.confは変更されず、他のデバイスのように/ sdcardに新しいファイルはありません
ユーザーバージョンの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にあります。
私の場合、bt_stack.confは/sdcard/Android/data/btsnoop_hci.logを示しました
Samsung s8の場合、魔法の場所は/ data/log/bt /です
そしてそれを取得するにはルートアクセスが必要です
これが私にとってそれを解決したものです:
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/
代わりに、フォルダ全体とすべてのログを取得します
OnePlus 6(A6003、Android 9)電話(および他のOnePlus電話と思われます)の場所は次のとおりです。
/sdcard/oem_log/btsnoop
この場所には、ルート化もadb
を介したアクセスも必要ありません。ログには.cfa
拡張子。
@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
。