Нюхайте / реєструйте власний трафік Bluetooth Android


76

Нещодавно я купив китайський пристрій, який підключається через Bluetooth до телефону / планшета Android. Оскільки немає програми, доступної для Windows / Linux, я хочу створити її для особистого користування.

Зазвичай телефон підключається до пристрою та обмінюється деякими даними. Я підключив ПК до пристрою, заглянув у послідовний налагоджувач і встиг виявити протокол (лише в один бік). Телефон надсилає на пристрій лише одну команду. Але цього разу я не можу з’ясувати, що він містить.

Чи існує якесь програмне забезпечення, яке дозволить мені переглянути дані, надіслані через Bluetooth? Я спробував декомпілювати програму, але це виглядає по-справжньому недружньо.

Дякую.


2
це лазерний далекомір. Дані, які ви отримуєте від нього, просто d5 f0 ... ... milimiters_as_uint32 0d
peku33

Відповіді:


83

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 Snoop».


9
@JackShultz Якщо ви не бачите створеного btsnoop_hci.log, відкрийте /etc/bluetooth/bt_stack.conf у текстовому редакторі, він містить шлях до файлу на вашому пристрої. Для мене він зберігався в /sdcard/Android/data/btsnoop_hci.log.
Містер Бангл,

1
Я отримую помилку: adb: помилка: віддалений об'єкт '/sdcard/btsnoop_hci.log' не існує
Ігор Ганапольський

1
@IgorGanapolsky adb shell echo \ $ EXTERNAL_STORAGE
Stephan Branczyk

3
@StephanBranczyk Цей спосіб витягування hci.log може бути застарілим на нових пристроях (особливо Nexus та Pixel). Тепер потрібно ввімкнути ярлик звіту про помилку в налаштуваннях розробника, щоб отримати цей журнал вручну.
Ігор Ганапольський

1
Вам пощастило отримувати журнали на пристрої Pixel за допомогою функції звіту про помилки? Я не можу здатися , що adb pullв .logфайл або отримати його по електронній пошті. Крім того, увімкнення та вимкнення опції dev не впливає на bt_stack.confвміст. Цю функцію вимкнено в останніх версіях Android?
Nicolás Fantone

7

Крім того, це може допомогти знайти фактичне місце збереження btsnoop_hci.log:

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

Коли я намагаюся витягнути цей файл, я отримую помилку: adb: error: віддалений об'єкт '/data/misc/bluetooth/logs/btsnoop_hci.log' не існує
Ігор Ганапольський

Цей файл конфігурації також можна знайти в кількох інших місцях, таких як /system/etc/і/vendor/etc/
DearVolt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.