WedX - журнал о программировании и компьютерных науках

Журнал отслеживания Bluetooth HCI не создается

Я использую Android 4.4.2 и включил «журнал отслеживания Bluetooth HCI», как описано здесь traffic/23900782#23900782">Сниффинг/регистрация собственного Bluetooth-трафика Android

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

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

Как я могу получить доступ к btsnoop_hci.log?


  • Ответ, помеченный как правильный, на самом деле не является правильным ответом. Пожалуйста, перейдите к ответу с наибольшим количеством голосов, чтобы получить НАСТОЯЩИЙ правильный ответ. 08.09.2017
  • Попробуйте это для Android O, последняя версия Samsung: adb pull /data/log/bt/btsnoop_hci.log 27.03.2018

Ответы:


1

ПРИМЕЧАНИЕ. Этот ответ не является правильным ответом. Пожалуйста, перейдите к ответу с наибольшим количеством голосов, чтобы найти правильный ответ.

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

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

26.03.2015
  • Это абсолютно не так. Конечно, нет необходимости в рутировании телефона для сбора журнала HCI. 20.05.2015
  • Ладно, спасибо за поправку. Обычно я работаю только с устройствами с root-правами и без Google. Я пробовал только один раз на нерутированном телефоне. Таким образом, я написал В соответствии с моим опытом в моем ответе. Я собираюсь удалить свой ответ. 21.05.2015
  • Есть ли документация, в которой говорится, что для отслеживания HCI требуется root? 13.03.2017
  • Я согласен с Лукасом. Я видел это только на рутированных телефонах. Кто-нибудь пробовал с нерутированным телефоном? 17.04.2017
  • У меня есть два нерутированных телефона, которые создают этот файл, но в разных местах. Смотрите следующий ответ, чтобы найти правильный путь. 15.09.2017
  • Некоторые поставщики хранят этот файл журнала в каталоге без разрешений. умно, не так ли? См. параметр BtSnoopFileName в bt_stack.conf. И ЭТОТ файл конфигурации также может быть в разных местах. В худшем случае в разрешенном пути. Посмотрите в /etc/bluetooth/ или /vendor/etc/bluetooth. 28.05.2018

  • 2

    ОБНОВЛЕНИЕ: похоже, что журнал 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
    

    По состоянию на 01.08.18 ссылка на btsnooz находится здесь: https://android.googlesource.com/platform/system/bt/+/master/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 <--your file location
    

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

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

    Переключение параметра «Включить журнал отслеживания Bluetooth HCI» в параметрах разработчика должно изменить его на

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

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

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

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

    20.05.2015
  • Как установить set BtSnoopLogOutput=true на рутированном телефоне? 21.08.2015
  • Самый простой способ - извлечь файл bt_stack.conf, а затем просто изменить «False» на «True» в текстовом редакторе, а затем вернуть его в правильный каталог. Обратите внимание, что вам, вероятно, потребуется изменить права доступа к каталогу в файловой системе телефона, чтобы вернуть его обратно, что не должно быть проблемой, если вы рутированы. 21.08.2015
  • У меня написано BtSnoopLogOutput=false. Как сделать его истинным? 13.03.2017
  • Google Pixel застрял на BtSnoopLogOutput=false 04.07.2017
  • Файл bt_stack.conf можно найти и в других местах: /system/etc/ и /vendor/etc/. 11.07.2017
  • Я нашел свой в архиве с отчетом об ошибке по адресу: FS\data\misc\bluetooth\logs 13.02.2019
  • Полный сбой: у моего lineageos 16.0 на s7 не установлено ни одно из значений Bt*, и изменение конфигурации приводит к adb: error: failed to copy 'bt_stack.conf' to '/etc/bluetooth/bt_stack.conf': remote couldn't create file: Read-only file system 26.10.2019
  • @Blightbuster, как и вы в LineageOS, на /data/misc/bluetooth/logs/btsnoop_hci.log 11.05.2020
  • Если вы пойдете по маршруту btsnooz.py, обратите внимание, что это скрипт python2. Мне потребовалось некоторое время, чтобы заметить. Ошибка, связанная с работой с python3: TypeError: аргумент write() должен быть str, а не bytes 25.06.2020
  • Я следовал этим инструкциям, но Wireshark не смог проанализировать созданный файл журнала. Изменился ли формат btsnoop? (S7 Edge, Android 8.0.0) 12.12.2020
  • @JasonSteele Я смог использовать текущие (верхние) инструкции и прочитать журнал с помощью Wireshark в октябре. Pixel 2, Android 11. Внесение изменений кажется маловероятным, поскольку формат стандартизирован (RFC 1761) и на самом деле не ориентирован на пользователя. Вы убедились, что в файле действительно был вывод? 13.12.2020
  • @user3067860 user3067860 да, файл создан. У меня есть ссылка на него здесь: drive.google.com/ файл/d/1Y3544DrhPbI9YxktL6rSWkpAe-YeoPn4/. Я согласен, что это звучит странно, но я также где-то читал об изменении (или добавлении) формата BlueZ. 14.12.2020

  • 3

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

    После этого вы можете получить журнал, перейдя в настройки разработчика и «снять отчет об ошибке» и получить полный журнал.

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

    10.10.2017
  • Я могу подтвердить, что это единственный метод, который работает для меня. Я использую Pixel 2 XL на Android 8.1 Oreo. Функция создания отчетов об ошибках создает архив, и файл журнала будет находиться в этом архиве в папке FS/data/misc/bluetooth/logs/btsnoop_hci.log. 27.02.2018
  • Это действительно самый последовательный из методов, который работает без рутирования, USB-подключения и т. Д. И на большинстве телефонов. 21.06.2018
  • Это сработало для моего Samsung Galaxy S7. Отчет об ошибке содержит файл FS/data/log/bt/btsnoop_hci.log, который можно открыть с помощью WireShark. 12.11.2018
  • Вы уверены, что вам нужна перезагрузка? У меня работает без этого. 20.05.2020

  • 4

    Для пользовательской версии 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.02.2018
  • adb shell dumpsys bluetooth_manager ; отчет об ошибке adb › BUG_REPORT.txt 28.02.2018
  • Это только что заставило btsnoop_hci.log появиться на моем Mi 9. 20.09.2020

  • 5

    На телефоне OnePlus 6 (A6003, Android 9) (и, я думаю, на других телефонах OnePlus) местоположение:

    /sdcard/oem_log/btsnoop

    Это расположение не требует ни рутирования, ни доступа через adb. Журнал будет иметь расширение .cfa и будет иметь двоичный формат pcap, подходящий для анализа, например, с помощью Wireshark.

    09.03.2019
  • Да, но все равно не читается. Вы что-то делали с этими логами? это не utf-8, и я не могу его расшифровать ни в одном формате кодирования. у меня только IQOS 2.4 ?????[][]???? и т.д. Как это прочитать?! Один плюс 7 про 15.09.2019
  • @Kamil Это двоичный формат (pcap), который вы можете анализировать, например. Wireshark (wireshark.org), просто открыв файл. Я добавил это к своему ответу. 17.09.2019
  • Хорошо, я понял. Я просто был уверен, что это журналы открытого текста. Спасибо большое. 18.09.2019
  • OMG чувак, спасибо большое! У меня точно с OP6 и файл как вы и сказали. Почему расположение не стандартное? 02.09.2020

  • 6

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

    02.12.2015
  • Каждое устройство может быть разным. Расположение этого файла журнала указано в /etc/bluetooth/bt_stack.conf. 13.03.2017

  • 7

    Вот что решило это для меня:

    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.01.2019

    8

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

    02.06.2018
  • Спасибо за голосование, но см. также ответ PaulFreund для решения без рутирования. 05.09.2018

  • 9

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

    /system/bin/btsnoop
    

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

    03.02.2018
  • @Mans: Да, вы можете открыть его с помощью Wireshark. 26.10.2018

  • 10

    Все вышеперечисленное было полезно — на S8 и Windows 10 вариант от Fukai/Rene об использовании отчета об ошибке был для меня лучшим. (Немного другой путь к файлу, но в zip-файле был журнал.)

    Однако позже я заметил, что получил УВЕДОМЛЕНИЕ в Android, чтобы ПОДЕЛИТЬСЯ СВОИМ ОТЧЕТОМ ОБ ОШИБКЕ, и когда я выбрал уведомление, у меня были варианты отправки по электронной почте/сохранения на G Drive/и т.д. Отправил txt и zip себе по электронной почте, и на этом все, пропустив adb и прочую чепуху.

    03.07.2020
    Новые материалы

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

    ИИ в аэрокосмической отрасли
    Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


    Для любых предложений по сайту: [email protected]