Не создан журнал Bluetooth HCI Snoop
Я использую Android 4.4.2 и включил «Bluetooth HCI snoop log», как описано здесь Сниффинг/логирование вашего собственного трафика Android Bluetooth После включения и выключения Bluetooth я перезагрузил телефон. Я не смог найти файл журнала в ожидаемом месте:
$ adb pull /sdcard/btsnoop_hci.log remote object '/sdcard/btsnoop_hci.log' does not exist
Как мне добраться до btsnoop_hci.log? android bluetooth android-4.4-kitkat android-bluetooth s5
Поделиться Источник 11 февраля 2015 в 02:25
11 ответов
ОБНОВЛЕНИЕ: Журнал btsnoop hci, кажется, постепенно выходит из доступных для пользователей областей на многих телефонах. Предполагая, что у вас включена функция регистрации hci, вы можете получить ошибку
adb bugreport anewbugreportfolder
Затем скомпресируйте папку. Если вам повезло, есть папка ‘FS’, которая содержит журнал btsnoop_hci.log в нескольких слоях (не уверен, почему у некоторых телефонов это происходит, а у некоторых нет.) Если у вас нет, получите текстовый файл отчета об ошибке, который выглядит так
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
Начиная с 1/12/21 ссылка на btsnooz находится здесь: https://android.googlesource.com/platform/packages/modules/Bluetooth/+/refs/heads/master/system/tools/scripts/btsnooz.py ЛЕГИЧЕСКИЙ ОТВЕТ: Вы можете увидеть, где ваш телефон хранит журнал hci, прочитав файл bt_stack.conf. Попробуйте
adb shell cat /etc/bluetooth/bt_stack.conf
Вы увидите строку, которая выглядит как
# BtSnoop log output file BtSnoopFileName =/sdcard/btsnoop_hci.log
Обычно это происходит, но не всегда (в зависимости от телефона) в корне sdcard. Также в этом файле конфигурации есть строка, которая может отражать, действительно ли запускается журнал hci или нет
# EnableBtSnoop logging function # valid value : true , false BtSnoopLogOutput=false
Проверка опции 'Включить Bluetooth HCI snoop log' в опциях разработчика должна изменить ее на
# EnableBtSnoop logging function # valid value : true , false BtSnoopLogOutput=true
- Прочтите файл bt_stack.conf. Посмотрите, где должен находиться журнал HCI и включено ли на самом деле регистрация bt snoop или нет
- Если опции разработчика говорят, что регистрация btsnoop_hci включена, но файл bt_stack.conf говорит, что она выключена, попробуйте включить Bluetooth и/или ваш телефон.
- Если ваш телефон устроен, установите вручную BtSnoopLogOutput=true
Если ни один из 3 вариантов не работает, вам не повезло. Логирование bt Snoop hci немного несовместимо на разных телефонах. Я видел несколько телефонов, где я просто не мог заставить его работать, независимо от того, что, но в большинстве случаев вы должны были бы иметь возможность заставить его работать. Устроенный телефон не является обязательным требованием.
Поделиться 20 мая 2015 в 14:22
На Nexus 5X и Pixel C Android O вам нужно включить Bluetooth, включить HCI-шпионское прослушивание в настройках разработчика, отключить и включить Bluetooth и перезагрузить.
После этого вы можете получить журнал, перейдя в настройки разработчика и "получить отчет об ошибках" и получить полный журнал.
Файл bt_stack.conf не изменен и нет нового файла на /sdcard, как на других устройствах
Поделиться 10 октября 2017 в 19:28
Для пользовательской версии 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 будет найден в разделе FS\data\misc\bluetooth\logs файла zip.
Поделиться 28 февраля 2018 в 07:03
На телефоне OnePlus 6 (A6003, Android 9) (и, я считаю, на других телефонах OnePlus) расположение такое:
Это расположение не требует ни коррекции, ни доступа через adb . Журнал будет иметь расширение .cfa и находится в двоичном формате pcap , подходящем для анализа с помощью, например, Wireshark.
Поделиться 09 марта 2019 в 17:08
Это решило проблему для меня:
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/ вместо этого, и вы получите всю папку, со всеми журналами
Поделиться 27 января 2019 в 08:40
На моем, bt_stack.conf показал /sdcard/Android/data/btsnoop_hci.log
Поделиться 02 декабря 2015 в 02:41
Для Samsung s8 магическим местоположением является /data/log/bt/
и вы можете получить его, если возьмете ошибку
Поделиться 02 июня 2018 в 22:08
На Xiaomi POCO X3 (MIUI) (может быть только Poco X3)
Включите режим разработчика и журнал HCI.
- Вызовите * # * # 284 # * # *
- Примените
- Изучите папку на /MIUI/debug_log/
- Скопируйте bugreport-******.zip на компьютер
- Распакуйте архив в новую папку
- Найдите в новой папке другой архив ZIP и распакуйте его
- Найдите файлы журнала и формата Wireshark (cfa) в FS\data\misc\bluetooth\logs
Поделиться 09 июня 2022 в 08:34
Все вышеперечисленное было полезно - на S8 и Windows 10 вариант от Fukai/Rene об использовании отчета об ошибке был лучшим для меня. (Немного другой путь к файлу, но в нем был и zip-файл.)
Однако позже я заметил, что получил уведомление в Android о том, что нужно "Поделиться вашим отчетом об ошибке", и когда я выбрал уведомление, у меня были варианты отправки/сохранения на G Drive/и т.д. Я отправил txt и zip себе, и это было так, пропуская adb и другие ошибки.
Поделиться 03 июля 2020 в 16:55
@TwinPrimesAreEz отлично работает, но есть четвертый вариант; по крайней мере, когда ваше устройство корневое. Вызовите:
/system/bin/btsnoop
Где-то этот инструмент был удален, но он все еще существует на моем устройстве. В некоторых случаях он, кажется, вызывается, когда включен bluetooth. В logcat я вижу: "btsnoop_dump: : snoop_log_open: Невозможно открыть запись Dir". Не уверен, почему он не может открыть этот каталог (btw, это /data/media/0 ), но я подозреваю, что этот инструмент каким-то образом мешает новой опции HCI snoop, интегрированной в Android. Но если вы вызовите этот инструмент напрямую (например, через adb shell или Эмулятор терминала), он работает. Для меня он создал файл /data/media/0/hci_snoop20180203164422.cfa .
Поделиться 03 февраля 2018 в 16:01
На Redmi Note 7 я нашел журнал напрямую на телефоне в местоположении:
с помощью поиска я написал "bt" и нашел файлы theae!
btsnoop_hci.log — что за файл?
- Описание
- Разбираемся
- Вывод
Приветствую. Сегодня поговорим об одном файле, который можете встретить на смартфоне под управлением Андроид.
Описание
btsnoop_hci.log — лог-файл, который создается при прослушивании трафика Блютуз, когда активна функция Журнал Bluetooth HCI.
Разбираемся
- При проведении глубокой очистки можно обнаружить btsnoop_hci.log, который может весить прилично, например более 2 гигабайта.
- По информации в интернете — это отчет, лог, на работу программ никак не влияет, поэтому можно удалить. Только сперва отключите журнал трансляций операций HCI Bluetooth. Если этого пункта нет, значит функция отключена, просто удалите файл.
- Но что вообще за btsnoop_hci.log? Это файл, в который записывают данные о прослушивании трафика Блютуз. Точнее записывается информация о пакетах, обычному пользователю это вряд ли может быть интересно. Но поэтому и размер может быть большой — так как туда постоянно складируются данные, особенно когда Блютуз включен.
Как отключить создание btsnoop_hci.log? На самом деле просто. Сперва откройте настройки устройства:
Далее находим пункт Для разработчиков:
Далее необходимо отключить опцию Включить журнал трансляций операций HCI Bluetooth:
После отключения опции — можно удалить файл btsnoop_hci.log. Он больше появляться не должен.
Пункт также может называться немного иначе, а именно Журнал Bluetooth HCI:
Заключение
- btsnoop_hci.log — файл содержит данные о пакетах трафика Блютуз, чтобы файл не создавался нужно отключить опцию прослушивания Блютуз.
- Сам файл можно спокойно удалить, если вы только не собираетесь анализировать данные. Но лучше перед удалением отключить функцию.
Удачи и добра. До новых встреч друзья!
How to view Android bluetooth logs with btsnoop_hci.log?
I enabled developer options and bt snoop hci log to try and troubleshoot why the connection between my app and Bluetooth SPP device disconnects randomly. I took the bug report and emailed it to myself, and then opened the btsnoop_hci.log file using Wireshark. I am trying to find the same event logs I might see in logcat, such as: W/bt_btm: btm_sec_disconnected but instead I have what just look like raw packets below. What am I doing wrong? Thank you.
Включение журнала HCI Bluetooth для просмотра программным путем
Существует хорошо известный путь для включения журнала передачи данных HCI Bluetooth из интерфейса опций разработчика.
Существует ли какой-либо способ достичь этого программно? android logging bluetooth hci
Поделиться Источник 31 марта 2016 в 06:37
1 ответ
Использование опций разработчика:
- Если вы включите опции разработчика, то вы также можете включить Bluetooth snoop Logging в этих опциях. После перезагрузки вы должны найти свои файлы журнала в /data/misc/bluetooth/logs/ (Не уверен, что вам нужен root для доступа к этим файлам),
Использование bt_stack.conf (требует root) - (Обновлено для Android 8.0+)
bt_stack.conf находится в /system/etc/bluetooth , а существующие конфигурационные файлы также находятся в /data/misc/bluedroid .
В большинстве случаев вам придется отключить правдивость, используя следующие шаги:
- adb -s root
- adb -s отключить правдивость
- adb-s перезагрузка (Для применения изменений)
- Затем снова введите root, после перезагрузки: adb -s root
- Затем удаленный вызов, adb -s удаленный вызов
- Вы также можете удаленный вызов с помощью команды mount -o rw,remount
- Затем вы сможете отправить файлы, затем вы можете внести изменения + перезагрузить.
- Измените файл bt_stack.conf (установите BtSnoopLogOutput=true )
- Отключите и включите Bluetooth - это запустит регистрацию HCI snoop
- Когда вы решите, что достаточно, снова отредактируйте файл, установив BtSnoopLogOutput=false и сбросьте Bluetooth - это остановит регистрацию HCI snoop
- Что делатьОбычно я делаю это, чтобы вытянуть соответствующий файл, внести изменения в мой любимый редактор (Обычно vi или VSCode) и затем отправить его обратно, используя эти команды
- adb -s pull /system/etc/bluetooth/bt_stack.conf
- adb -s push bt_stack.conf /system/etc/bluetooth/.
- Вместе с BTSnoop logging , вы также можете включить все следы стека, используя bt_stack.conf .
Вот как выглядят файлы на Android 9.0 r34, MSM Kernel 4.4:
root@console:/system/etc/bluetooth# cat bt_stack.conf # Enable trace level reconfiguration function # Must be present before any TRC_ trace level settings TraceConf=true # Trace level configuration # BT_TRACE_LEVEL_NONE 0 ( No trace messages to be generated ) # BT_TRACE_LEVEL_ERROR 1 ( Error condition trace messages ) # BT_TRACE_LEVEL_WARNING 2 ( Warning condition trace messages ) # BT_TRACE_LEVEL_API 3 ( API traces ) # BT_TRACE_LEVEL_EVENT 4 ( Debug messages for events ) # BT_TRACE_LEVEL_DEBUG 5 ( Full debug messages ) # BT_TRACE_LEVEL_VERBOSE 6 ( Verbose messages ) - Currently supported for TRC_BTAPP only. TRC_BTM=2 TRC_HCI=2 TRC_L2CAP=2 TRC_RFCOMM=2 TRC_OBEX=2 TRC_AVCT=2 TRC_AVDT=2 TRC_AVRC=2 TRC_AVDT_SCB=2 TRC_AVDT_CCB=2 TRC_A2D=2 TRC_SDP=2 TRC_SMP=2 TRC_BTAPP=2 TRC_BTIF=2 TRC_BNEP=2 TRC_PAN=2 TRC_HID_HOST=2 TRC_HID_DEV=2 # This is Log configuration for new C++ code using LOG() macros. # See libchrome/base/logging.h for description on how to configure your logs. # sample configuration: #LoggingV=--v=0 #LoggingVModule=--vmodule=*/btm/*=1,btm_ble_multi*=2,btif_*=1 # PTS testing helpers # Secure connections only mode. # PTS_SecurePairOnly=true # Disable LE Connection updates #PTS_DisableConnUpdates=true # Disable BR/EDR discovery after LE pairing to avoid cross key derivation errors #PTS_DisableSDPOnLEPair=true # SMP Pair options (formatted as hex bytes) auth, io, ikey, rkey, ksize #PTS_SmpOptions=0xD,0x4,0xf,0xf,0x10 # PTS AVRCP Test mode #PTS_AvrcpTest=true # SMP Certification Failure Cases # Set any of the following SMP error values (from smp_api_types.h) # to induce pairing failues for various PTS SMP test cases. # Setting PTS_SmpFailureCase to 0 means normal operation. # Failure modes: # # SMP_PASSKEY_ENTRY_FAIL = 1 # SMP_PAIR_AUTH_FAIL = 3 # SMP_CONFIRM_VALUE_ERR = 4 # SMP_PAIR_NOT_SUPPORT = 5 # SMP_PAIR_FAIL_UNKNOWN = 8 # SMP_REPEATED_ATTEMPTS = 9 # SMP_NUMERIC_COMPAR_FAIL = 12 #PTS_SmpFailureCase=0
Использование скрытого Android API
Обратите внимание, что этот подход потребует разрешения BLUETOOTH_ADMIN для вашего приложения.
Если это правильно, вы можете использовать тот же код системные настройки Android, которые использует приложение.
private void writeBtHciSnoopLogOptions()
configHciSnoopLog является частью.скрытого API класса BluetoothAdapter , поэтому убедитесь, что знаете, как включить его:
- Использование скрытого API Android
- библиотека android-hidden-api
Использование SL4A
SL4A предоставляет языки скриптов для Android, позволяя редактировать и выполнять скрипты и интерактивные интерпретаторы непосредственно на устройстве Android. Эти скрипты имеют доступ ко многим API, доступным для полноценных приложений Android, но с очень упрощенным интерфейсом, который позволяет легко выполнять все.
Если ваш образ Android построен с поддержкой SL4A, вы можете использовать следующий метод BluetoothFacade :
@Rpc(description = "Enable or disable the Bluetooth HCI snoop log") public boolean bluetoothConfigHciSnoopLog( @RpcParameter(name = "value", description = "enable or disable log") Boolean value )
Обратите внимание, что ссылка на API на Github устарела, но вы можете увидеть последнюю версию в официальном репозитории AOSP ( Common\src\com\googlecode\android_scripting\facade\bluetooth )
Скрипт на Python, который включает журналы HCI Snoop, будет выглядеть так:
from android import Android droid = Android() droid.bluetoothConfigHciSnoopLog(True)
После выполнения регистрации вы можете найти журнал HCI Snoop в /sdcard/btsnoop_hci.log