Btsnoop hci log что за файл

Обновлено: 03.07.2024

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

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

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

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

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

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

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

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

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

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

  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 и перезагрузить компьютер.

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

Для разработчиков Bluetooth журнал HCI может помочь нам лучше проанализировать проблему и понять протокол Bluetooth, так же как при разработке сети необходимо использовать Wireshark для анализа сетевых протоколов.

Эта статья в основном представляетРоль журнала HCI、Как получить копию журнала HCIИ объединитьПрактический примерПроиллюстрироватьКак анализировать журнал HCI。

1.1 Функция журнала HCI

Журнал HCI используется для анализа поведения взаимодействия между устройствами BluetoothСоответствует ли это ожиданиям?,Исполните с спецификацией Bluetooth, В повседневной разработке журнал HCI обычно используется для нескольких вещей:

Анализировать ошибки: Устройство не может быть найдено после включения Bluetooth или у искомого устройства нет имени, но есть только адрес Bluetooth, телефоны Android не могут передавать файлы на телефоны Apple .

анализ спроса: Мобильный телефон должен быть оснащен селфи-палкой Bluetooth для управления фотосъемкой. Через журнал HCI вы можете наблюдать, какой профиль Bluetooth используется конкурирующими продуктами при реализации этой функции? Пока мы знаем, что профиль Bluetooth используется, у нас есть идея реализовать эту функцию.

Изучение протокола Bluetooth: Используйте журнал HCI, чтобы помочь в изучении протокола Bluetooth, так же, как изучение TCP / IP путем захвата пакетов через wireshark

1.2 Базовая архитектура системы Bluetooth

Сказав так много использований журнала HCI, если мы хотим лучше понять журнал HCI, нам нужно сначала взглянуть на положение HCI во всей архитектуре базовой системы Bluetooth. Для облегчения понимания я буду использовать архитектуру базовой системы Bluetooth3 слоя абстракции:

User Application(Host)Пользовательское приложение - это прикладной уровень, также называемый Host, мы называем Bluetooth API, относящийся к прикладному уровню, например,BluetoothAdapterИнтерфейс предоставлен в.

HCI (Host controller Interface): Когда верхний уровень вызывает Bluetooth API,Не будет напрямую манипулировать нижним слоем Bluetooth(Контроллер) связанный интерфейс, ноОтправьте Команду соответствующей операции Контроллеру через HCIИ затем вернуть результат выполнения после того, как нижний уровень выполнит команду,То есть контроллер отправляет событие в HCI, а затем HCI уведомляет прикладной уровеньHCI сыграласредний слойРоль.

Controller: Контроллер находится на самом низком уровне, который можно понимать как чип Bluetooth на нашем мобильном телефоне.


Абстрактная архитектура Bluetooth

Полная базовая архитектура системы Bluetooth более сложна, поэтому мы не будем вдаваться в подробности. Заинтересованные студенты могут обратиться к спецификации Bluetooth.Core_v4.2.pdf, Есть подробные определения и введения. Когда мы проанализируем журнал HCI позже, мы также будем ссылаться на контент, определенный в этой спецификации.


Полная архитектура Bluetooth

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


Включить журнал сбора информации Bluetooth HCI

Различные платформы хранят журнал HCI по разным путям.MTKПуть для хранения журнала HCI/sdcard/mtklog/btlog/btsnoop_hci.log,QualcommПуть хранения/sdcard/btsnoop_hci.log

Если в указанном выше пути нет журнала HCI, мы все равно можем использоватьФайл конфигурации Bluetooth bt_stack.conf для просмотра пути, Bt_stack.conf находится/etc/bluetooth/Под тропой. Путь к журналу HCI пройденBtSnoopFileName=/sdcard/btsnoop_hci.logЧтобы настроить это.


Путь регистрации HCI на мобильном телефоне

И bt_stack.conf через исходный код Android/system/bt/conf/bt_stack.confНастроить.

Вытащите захваченный журнал HCI и откройте его непосредственно с помощью Блокнота. Все, что вы видите, - искаженные символы. Нам также нужен инструмент анализа журнала HCI:Frontline ComProbe Protocol Analysis System

Frontline ComProbe Protocol Analysis SystemЭто инструмент анализа журнала протокола Bluetooth, предоставленный Frontline. Компания Frontine в основном используется для захвата устройств регистрации Bluetooth Air Sniff. Давайте поговорим о регистрации Air Sniff позже. Приобрести их инструмент захвата пакетов будет поставляться с инструментом анализа журнала, вы также можетеFrontine официальный сайтЗагрузите и загрузите, вам нужно заполнить некоторую информацию при загрузке, студенты, которые находят проблемы, могут перейти к другимНеофициальный сайтСкачивать.

После завершения установки найдите Frontline ComProbe Protocol Analysis System в меню «Пуск» и используйте Capture File Viewer, чтобы открыть журнал HCI.


ComProbe Protocol Analysis System

Step 1. Сначала выберитеОткрыть журнал HCIИ выберите тип журнала какBtSnoop Files, То есть файл, оканчивающийся на * .log.
Другой способ - изменить суффикс btsnoop_hci.log на btsnoop_hci.cfa, а затем открыть его непосредственно с помощью Capture File Viewer.


Шаг 1. Откройте журнал HCI


Выберите тип журнала

Step 2. После открытия файла журнала выберитеFrame DisplayВы можете увидеть журнал HCI, который мы взяли


Шаг 2. Выберите Frame Display


Основной интерфейс Frame Display

Step 3В окне Frame Display имеется множество вкладок, которые могут отображать различные типы протоколов в стеке протоколов, например: журналы, относящиеся к HCI, размещаются на вкладке HCI,Hands-Free(HFP)принадлежатПрофиль Bluetooth на прикладном уровне, Журналы операций, связанных с HFP, размещаются на вкладке Hands-Free.


  • Air sniff log
    Журнал HCI, записанный на устройстве Android, может анализировать только проблему между Хостом и Контролем. Когда взаимодействие между Хостом и Контролем нормальное, оно может бытьВо время передачи (Air Interface)Если что-то пойдет не так, вам нужно проанализировать журнал Air Sniff. Журнал Air Sniff может захватывать воздушные пакеты двух устройств Bluetooth во время передачи данных. Для захвата журнала Air Sniff требуется специальное оборудование.


Прикладной уровень вызываетstartDiscovery()При выполнении сканирования устройства,HostВышлю один через HCIInquiry HCI CommandдайтеController, Далее мы изучим процесс запроса, проанализировав журнал HCI. Прежде чем анализировать журнал HCI, давайте изучимПакет команд HCIСтруктура.

4.1 Структура пакета данных HCI Command

Структура пакета данных команды HCI определена в спецификации основного протокола BluetoothCore_v4.2.pdfв.

Формат пакета данных команды HCI выглядит следующим образом, началоКод операции - это уникальный идентификатор, который различает различные типы команд, Код операции поOpCode Group Field (OGF) с участием OpCode Command Field (OCF)сочинение. В соответствии со значением OGF, команды HCI могут быть классифицированы. Формула вычисления OpCode: ** OpCode = OGF << 6 + OCF, С помощью метода расчета OpCode мы можемФильтруйте указанный тип Команды HCI в ** Журнале HCI через OpCode.


HCI Command Packet


Метод расчета OpCode

4.2 Команда фильтра запроса

Inquiry CommandдаLink Control commandТип команды по запросуBluetooth Core SpecificationизVol 2->Part E->7.1 LINK CONTROL COMMANDSРаздел, мы можем увидеть команду Link ControlЗначение OCF 0x0001。


Каталог спецификаций Bluetooth Core


For the Link Control commands, the OGF is defined as 0x01

следовательно,Код операции запроса0x0001 << 6 + 0x01 =0x0401 ,Передайте 0x0401, чтобы определить, что определенная команда является командой запроса, Название командыHCI_Inquiry


Система анализа протокола ComProbe поддерживает функцию фильтрации черезУстановить фильтрЖурнал, код операции которого 0x0401, может быть отфильтрован, метод установки следующий:

4.3 Анализ процесса сканирования

  • Хост отправляет команду HCI_Inquiry
    Прикладной уровень собирается сканировать устройства Bluetooth, хост сначала отправляет команду HCI_Inquiry для уведомления контроллера


  • Контроллер отвечает на событие HCI
    После того, как контроллер получит команду HCI_Inquiry, он будетОтвет на событие HCI с командным статусом, Для представления состояния после того, как Контроллер выполняет HCI_Inquiry, а именноStatus:Success, Если вы посмотрите внимательно, то обнаружите, что метки кадров двух журналов HCI расположены рядом друг с другом, номер кадра HCI_Inquiry равен 196, а номер кадра состояния команд равен 197.


2. Результаты сканирования

Сканирование завершеноПозже контроллер отправит событие:HCI Extended Inquiry Result, Поиск в спискеJabra Classic v0.5.3Например, его пакет результатов расширенного запроса HCI будет содержатьНазвание оборудования, ЭтоUUID поддерживаемого Сервиса,с участиемТип оборудования:Wearable Headset deviceПоэтому Icon of Jabra Classic v0.5.3 являетсяЗначок наушников。



HCI расширенный запрос Результат Jabra Classic v0.5.3

Интеллектуальная рекомендация


Краткое описание общих функций MPI

содержание 1, основная функция MPI 2, точка-точка функция связи 3, коллективная функция связи 1, основная функция MPI MPI_Init(&argc, &argv) Информировать системы MPI для выполнения всех необх.

Примечание 9: EL выражение


JVM память

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

Проблема сетевого запроса на Android 9.0

вЗапустите Android 9 (API Уровень 28) или вышеНа устройстве операционной системы Android, чтобы обеспечить безопасность пользовательских данных и устройств, использование по умолчанию для зашифрованно.


Учебная запись по Webpack (3) В статье рассказывается о создании webpack4.0.

предисловие Для изучения веб-пакета автор также предпринял много обходных путей. Есть много вещей, которые я хочу знать, но я не могу их найти. Автор поможет вам быстро начать работу. Цель этой статьи.

В этой статье будет приведено пошаговое руководство взлома фитнес-трекера с поддержкой Bluetooth и низким энергопотреблением средствами ОС Linux.

Эта история началась с моего поста в Facebook, посвященного проблеме отсутствия API для фитнес-трекеров, и почему сей факт мешает исследователям данных создавать что-то полезное и крутое для этих девайсов.

Тот пост спровоцировал жаркую дискуссию и привлек внимание моего друга Володимира Шиманского , пытавшегося помочь мне с кодом Лео Соареса для моего фитнес-трекера MiBand 2. Володимир пытался запустить этот код, но были проблемы с соединением. Проблема была решена в течение нескольких часов, и код обновлен .

Эта ситуация подтолкнула меня к активным действия. Используя вышеуказанный код, я смог подключиться к MiBand 2, поработать с уведомлениями и измерить ритм сердца. Однако этот функционал меня не устраивал. Я хотел получать данные с сенсоров в режиме реального времени и поэкспериментировать с полученной информацией. Мне хотелось создать советника по физическим упражнениям.

В итоге было решено хакнуть фитнес-трекер.

У меня не было никакого опыта работы с BLE-девайсами (Bluetooth Low Energy), и я решил начать с изучения этой технологии. Выяснилось, что никаких особых сложностей нет:

  • У каждого BLE-устройства есть несколько служб.
  • У каждой службы есть некоторые характеристики.
  • У некоторых характеристик есть дескрипторы (если у характеристики больше чем один параметр или тип соответствует чтению или уведомлению).
  • У некоторых характеристик есть доступ только на чтение/запись (например, текущее время, статус батареи или информация о последней ревизии).
  • Некоторые характеристики более сложны и работают, используя запросы/цикл уведомлений (например, монитор частоты сердцебиения в режиме реального времени или авторизация).

Вышеуказанного списка вполне достаточно для начала работы с фитнес-трекером.

Также вам понадобятся два приложения для отладки BLE-устройства: анализаторпротоколов Wireshark и BLE отладчик . Кроме того, нужно активировать опции разработчика в устройстве на базе Android (для любителей iOS придется поискать эквивалент в этой платформе).

Для начала нужно отключить MiBand2 от приложения телефона.

Посмотрим, какие службы и характеристики есть у нашего устройства. Открываем отладчик для BLE и запускаем сканирование. Должно появиться примерно следующее:

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

О сниффинге

Bluetooth сниффинг

Для тех, кто не знает, о чем пойдет речь, немного теории.

Сниффинг – это процедура перехвата пакетов с информацией между двумя девайсами. В нашем случае будем говорить о связке устройств через Bluetooth. Эта процедура более распространена в локальных сетях: такой перехват можно выполнить в любой точке местонахождения данных; так мы сможем сделать и в Bluetooth-сети.

Обычно этот способ используется в компьютерных связках для кражи паролей и других важных данных; на Android такую процедуру сделать сложно, потому что в мобильных устройствах нет совместимых комплектующих для ее проведения.

Как работает прослушивание трафика

Прослушивание трафика через синезуб осуществляется только «в себя», то есть происходит перехват входящего и исходящего трафика того узла, откуда вы отдаете команды. В этой операции большую роль играет Host_Controller_Interface (HCI), который разрешает обращаться к передатчику. НСІ-узел подключается к узлу драйвера Bluetooth-устройства, которое принимает данные, и к L2CAP (исходящему потоку данных).

Всю информацию об этих пакетах можно посмотреть в специальном log-файле; он может записываться в памяти смартфона.

Настраиваем запись log-файла

Для активации учета данных о пакетах через синезуб нужно выполнить ряд действий.

Заходим в настройки

Выбираем пункт «Для разработчиков»

  • Активировать пункт «Включить журнал трансляции операций HCI Bluetooth».

Активируем пункт «Включить журнал трансляции операций HCI Bluetooth»

  • После этих действий в памяти устройства (в корне флэшки) будет создан специальный log-документ с названием btsnoop_hci.log, куда и будет система записывать данные.

Другое применение

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

К примеру, в Google Play есть приложение с названием Signal Sniffer - Fitbit finder. Его задача заключается в том, чтобы просканировать сеть, найти вблизи доступные устройства и отобразить информацию о них. Никаких паролей она не покажет, только такие мелкие данные, как адрес девайса и уровень сигнала.

Информация о устройстве

Если же вы всерьез хотите заняться перехватом данных через Bluetooth, советуем обратить внимание на FTS4BT_Wireless Bluetooth_Protocol_Analyzer»: это приложение стоит немалых денег, но взамен может на лету декодировать абсолютно весь трафик из эфира, отсортировывая аудио, данные протоколов и другое.

Как настроить Bluetooth на Android: Видео

Читайте также: