05 сентября 2020

Как я дамп трафика bluetooth на Galaxy A71 получал.


Есть такой сайт https://btcodecs.valdikss.org.ru/. На него можно загрузить дамп трафика bluetooth и посмотреть список кодеков, которые используются для передачи звука между телефоном и беспроводной гарнитурой, например.

Дамп этот получается с помощью опции в разделе "Параметры разработчика" настроек системы и обычно создаётся в корне встроенной памяти, но не всегда.
В Samsung решили, что подобное простым смертным просто так не должно быть доступно, или ничего не решили, а оставили как есть. В любом случае дамп по пути "/sdcard/btsnoop_hci.log" на этом аппарате не создаётся, а пишется куда-то в недра "/data", куда без прав root доступ закрыт. Но дамп этот всё же у меня достать получилось аж двумя способами.

Для обоих способов надо сначала этот дамп создать.

Для этого в разделе настроек "Параметры разработчика" надо нажать пункт "Включить журнал HCI Bluetooth" и выбрать опцию "Включено":
 

 
После этого необходимо выключить и заново включить Bluetooth и произвести подключение к какому-нибудь устройству. Ещё желательно немного подождать перед продолжением.

Использование ADB для получения.

Для реализации этого способа надо в разделе "Параметры разработчика" включить переключатель "Отладка по USB" и подключить телефон кабелем к компьютеру. Современные системы обычно сами устанавливают драйверы для режима отладки. Необходимые программы можно скачать отсюда. Для Linux всё нужное обычно есть в репозиториях дистрибутива.

После подключения телефона кабелем надо открыть командную строку, перейти в каталог с утилитами и выполнить команду:
adb bugreport
# процесс подготовки
[  1%] generating dumpstate.zip
# результат
/data/user_de/0/com.android.shell/files/bugreports/bugreport/dumpstate.zip: 1 file pulled. 33.0 MB/s (26517191 bytes in 0.766s)
В текущем каталоге должен появиться файл "dumpstate.zip", внутри которого должен быть дамп по пути "FS\data\log\bt\btsnoop_hci.log".

Если его там нет, то процедуру включения записи трафика надо повторить и не выключать запись до окончания процесса получения "dumpstate.zip".

Использование инженерного меню.

Если в "звонилке" набрать "*#9900#", то появится инженерное меню "SysDump".

 

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

После включения записи трафика и подключения гарнитуры/колонки/etc. надо выбрать пункт "Run dumpstate/logcat" и дождаться окончания процесса.

На данном этапе все необходимые данные сохранены в памяти телефона. Чтобы их перенести в доступное для чтения место, надо выбрать пункт "Copy to sdcard (include CP Ramdump)" для копирования данных во внутреннюю память телефона или "Copy to external sdcard (include CP Ramdump)" для копирования на SD-карту.

После окончания копирования крайне желательно нажать "Delete dumpstate/logcat", чтобы освободить память от уже скопированных данных.

В корне выбранной памяти должен появиться каталог "log", внутри которого должен находиться файл с именем типа "bluetooth/btsnoop_hci_202009051629.cfa". Это и есть искомый дамп трафика.