Bluetooth HCI snoop журнал не генерируется

Я запускаю Android 4.4.2, и я включил "журнал Bluetooth HCI snoop", как описано здесь нюхать / регистрировать свой собственный трафик Android Bluetooth

после включения и выключения bluetooth я перезагрузил телефон. Я не смог найти файл журнала в ожидаемом месте:

$ adb pull /sdcard/btsnoop_hci.log
remote object '/sdcard/btsnoop_hci.log' does not exist

Как я могу добраться до btsnoop_hci.лог?

7 ответов


согласно моему опыту функция Bluetooth HCI snooping требует, чтобы ваше устройство было укоренено. На моем корневом Samsung Galaxy S GT-I9000 он отлично работает, а на моем некорневом Galaxy S3 Neo эта функция не работает.

кроме того, вы должны убедиться, что вы не случайно удалили файл. Всякий раз, когда я удаляю файл, я должен повторно включить функцию отслеживания Bluetooth, чтобы система воссоздала файл журнала.


UPDATE: журнал btsnoop hci, похоже, постепенно выходит из доступных пользователю областей на многих телефонах. Предполагая, что вы включили ведение журнала hci, вы можете получить bugreport

adb bugreport anewbugreportfolder

затем распакуйте папку. Если Вам ПОВЕЗЕТ, есть папка "FS", которая содержит btsnoop_hci.войти войти несколько слоев вниз (не уверен, почему некоторые телефоны имеют это, а некоторые нет.) Если у вас его нет, возьмите текстовый файл отчета об ошибке, который выглядит следующим образом

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

по состоянию на 8/1/18 ссылка на btsnooz находится здесь: https://android.googlesource.com/platform/system/bt/+/master/tools/scripts/btsnooz.py

LEGACY ОТВЕТ:

вы можете увидеть, где ваш телефон хранит журнал hci, прочитав bt_stack.файл conf. Попробуй!--8-->

adb shell cat /etc/bluetooth/bt_stack.conf

вы увидите строку, которая выглядит как

# BtSnoop log output file
BtSnoopFileName =/sdcard/btsnoop_hci.log <--your file location

это обычно, но не всегда (зависит от телефона) от корня SD-карты. В этом файле конфигурации также есть строка, которая может отражать, действительно ли ведение журнала hci включено или нет

# EnableBtSnoop logging function
# valid value : true , false
BtSnoopLogOutput=false

переключение опции "включить Bluetooth HCI snoop log" в параметрах разработчика должно изменить его на

# EnableBtSnoop logging function
# valid value : true , false
BtSnoopLogOutput=true

Я говорю "должен", потому что для некоторых телефонов не обновляйте этот файл. Вы должны:

  1. прочитайте bt_stack.файл conf. Посмотрите, где должен быть журнал HCI и если BT snoop ведение журнала фактически включено или нет
  2. если параметры разработчика говорят, лесозаготовки btsnoop_hci на но bt_stack.conf файл говорит, что он выключен, попробуйте Power cycling bluetooth и / или ваш телефон.
  3. если ваш телефон укоренен, вручную установите BtSnoopLogOutput=true

если ни один из 3 вариантов не работает, вам не повезло. BT Snoop HCI logging немного непоследователен на разных телефонах. Я видел несколько телефонов, где я просто не мог заставить его работать, не важно что, но в большинстве случаев вы должны быть в состоянии заставить его работать. Корневой телефон не является требованием


на Nexus 5X и Pixel C Android O вы должны включить bluetooth, включить HCI snooping в настройках разработчика, отключить и повторно включить bluetooth и перезагрузить компьютер.

после этого вы можете получить журнал в настройках разработчика и "принять отчет об ошибке" и получить полный отчет.

файл bt_stack.conf не изменяется и нет нового файла на / sdcard, как и на других устройствах


на моем, bt_stack.conf показал / sdcard/Android/data / btsnoop_hci.log


для пикселя/Nexus версии пользователя у вас может не быть разрешения на вытаскивание /data/misc/bluetooth/logs/btsnoop_hci.бревно. Вы можете получить журнал hci следующим образом:

adb shell dumpsys bluetooth_manager
adb bugreport > BUG_REPORT.txt

вы получите BUG_REPORT.txt и zip-файл. Журнал HCI будет найден в разделе FS\data\misc\bluetooth\logs zip-файла.


для Samsung s8 волшебное местоположение - / data / log/ bt/
и вам нужен root доступ, чтобы получить его


@TwinPrimesAreEz отлично, но есть четвертый вариант; по крайней мере, когда ваше устройство укоренено. Звоните:

/system/bin/btsnoop

где-то этот инструмент был удален, но он все еще существует на моем устройстве. Whatismore, он, кажется, вызывается, когда bluetooth включен. В logcat Я вижу: "btsnoop_dump:: snoop_log_open: невозможно открыть запись Dir". Не уверен, почему он не может открыть этот dir (кстати, это /data/media/0) но я подозреваю, что этот инструмент каким-то образом мешает новому HCI опция snooping интегрирована в Android. Но если вы вызываете этот инструмент напрямую (например, via adb shell или эмулятор терминала) она работает. Для меня он создал файл /data/media/0/hci_snoop20180203164422.cfa.