Обнаружение / регистрация вашего собственного трафика Android Bluetooth

Недавно я купил устройство Chinesse, которое соединяется через Bluetooth с телефоном / планшетом Android. Поскольку для Windows / Linux нет доступных приложений, я хочу создать приложение для личного использования.

Обычно телефон подключается к устройству и обменивается некоторыми данными. Я подключил ПК к устройству, заглянул в последовательный отладчик и смог обнаружить протокол (только в одну сторону). Телефон отправляет только одну команду на устройство. Но на этот раз я не могу выяснить, что в нем содержится.

Есть ли программное обеспечение, которое позволит мне просматривать данные, отправленные через Bluetooth? Я пытался декомпилировать приложение, но это выглядит очень недружелюбно.

Благодарю.

4 ответа

Решение

В 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 и проверить его с помощью Wireshark, как, например, PCAP, собранный путем перехвата трафика WiFi, поэтому он очень прост и хорошо поддерживается:

снимок экрана захвата Wireshark с помощью Android HCI Snoop

[источник]

Вы можете включить это, перейдя в Настройки-> Параметры разработчика, а затем поставив флажок рядом с "Журнал отслеживания Bluetooth HCI".

Кроме того, это может помочь найти фактическое местоположение, в котором сохраняется btsnoop_hci.log:

adb shell "cat /etc/bluetooth/bt_stack.conf | grep FileName"

На телефоне Xiaomi с Android 11 после включения «Bluetooth HCI Snoop log» в настройках разработчика файл, похоже, записывается в

/data/misc/bluetooth/logs/btsnoop_hci.log(доступно только с рутом)

/sdcard/MIUI/debug_log/common/com.android.bluetooth/btsnoop_hci.log

Кроме того, можно получить журнал, запустив adb bugreport zipnameс компа, как тут написано .

Обратите внимание, что ведение журнала у меня включалось только после перезагрузки .

На Xiaomi Redmi Note 9s этот файл конфигурации также можно найти / storage / emulated / 0 / MIUI / debug_log / common с именем hci_snoop20210210214303.cfa hci_snoop20210211095126.cfa

Включите «Настройки-> Параметры разработчика», затем установите флажок «Журнал отслеживания Bluetooth HCI». '

Я использовал Total Commander для извлечения файла из внутреннего хранилища.

Другие вопросы по тегам