web-dev-qa-db-ja.com

独自のAndroid Bluetoothトラフィックのスニッフィング/ロギング

最近、Bluetooth経由でAndroid電話/タブレットに接続するchinesseデバイスを購入しました。 Windows/Linuxで使用できるアプリケーションはないので、個人用に作成したいです。

通常、電話はデバイスに接続し、データを交換します。 PCをデバイスに接続し、シリアルデバッガーを調べて、プロトコルを発見するために管理しました(一方向のみ)。電話機は1つのコマンドのみをデバイスに送信します。しかし、今回はそれが何を含んでいるかを知ることができません。

Bluetooth経由で送信されたデータを調べることができるソフトウェアはありますか?私はアプリを逆コンパイルしようとしましたが、本当に不親切に見えます。

ありがとう。

66
peku33

Android 4.4(Kit Kat)には、Bluetoothの新しいスニッフィング機能があります。試してみてください。

ただし、スニッフィングデバイスを所有していない場合、必ずしも運が悪いわけではありません。多くの場合、Android 4.4で導入された新機能ですべてのBluetooth HCIパケットをキャプチャしてファイルに保存する機能により、良い結果を得ることができます。

アナリストは、テスト対象のアプリケーションを実行してキャプチャファイルの入力を完了したら、Androidによって生成されたファイルをデバイスの外部ストレージにプルし、分析します( Wireshark 、 例えば)。

この設定を有効にすると、Androidはパケットキャプチャを/sdcard/btsnoop_hci.logに保存し、アナリストがプルして検査します。

特定のデバイスで/sdcard/が正しいパスでない場合は、次を入力します。

adb Shell echo \$EXTERNAL_STORAGE

次に、シェルを開いてファイルを取得します。$ adb pull /sdcard/btsnoop_hci.logで、たとえばWiFiトラフィックをスニッフィングして収集されたPCAPのように、Wiresharkで検査できます。

screenshot of wireshark capture using Android HCI Snoop

[ソース]

これを有効にするには、[設定]-> [開発者オプション]に移動し、[Bluetooth HCI Snoop Log]の横にあるチェックボックスをオンにします。

78

また、これは、btsnoop_hci.logが保存されている実際の場所を見つけるのに役立つ場合があります。

adb Shell "cat /etc/bluetooth/bt_stack.conf | grep FileName"
7
maximevince