25 ноября 2018 г.

Как узнать поддерживает ли bluetooth-гарнитура кодеки Apt-X, AAC, LDAC, SBC или другие

Qualcomm aptX


Покупая bluetooth-гарнитуру популярных сейчас китайских брендов, возможно, вам захочется узнать, действительно ли приобретенная гарнитура или bluetooth-наушники поддерживают те протоколы, которые заявил производитель. В частности, это касается популярного нынче aptX. Как же мы можем проверить поддерживает ли наше устройство заявленные протоколы? Давайте разберемся.



Весь процесс проверки я покажу на следующем комплекте устройств:
1. Смартфон Motorola Moto X4 (Android 8.1)
2. Bluetooth-гарнитура QCY QY19

Гарнитура QCY QY19 была некоторое время одной из самых популярных китайских гарнитур, которую можно до сих пор купить тут или тут. Производитель заявляет поддержку aptX и это нам предстоит проверить.

И так, для проверки нужно выполнить следующие шаги:
1. включить режим разработчика на смартфоне;
2. в меню разработчика разрешить ведение журнала трансляции HCI Bluetooth;
3. перенести файл журнала на компьютер и проанализировать его.

Включаем режим разработчика


Что бы включить режим разработчика на смартфоне необходимо перейти в "Настройки -> Система -> Об устройстве" и тапнуть 8-10 раз по строке "Номер сборки" пока не появиться сообщение о том, что режим разработчика активирован.

Режим разработчика Android

Разрешаем ведение журнала трансляции HCI Bluetooth


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

ведение журнала трансляции HCI Bluetooth

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

Получение и анализ журнала Bluetooth


Для получения журнала воспользуемся функцией "Отчет об ошибке" из меню разработчика:

отчет об ошибке Android

Далее необходимо выбрать "Подробный отчет" и нажать "Отправить отчет":

отчет об ошибке Android


После чего в строке состояния может появиться уведомление с прогрессом выполнения, но не всегда. По этому нужно подождать 5-10 минут, пока сформируется отчет и появится уведомление об окончании процесса:

отчет об ошибке сохранен Android

Далее мы должны выбрать, каким образом сохранить отчет. Наиболее удобный способ, по моему мнению, это сохранить на Google Диске:

сохранить на Диске

сохранить на Диске

Теперь скачиваем архив на компьютер и распаковываем для дальнейшего анализа. Необходимые файлы журнала находятся по пути "\FS\data\misc\bluetooth\logs":

btsnoop_hci.log

Интересующие нас файлы имеют расширение .CFA, но если открывать их текстовым редактором, то ничего из этого не выйдет. Мы увидим неразборчивый набор символов. Для анализа нам понадобится бесплатная утилита анализа сетевых пакетов WireShark . Скачиваем установщик согласно архитектуры своей системы, устанавливаем и открываем самый большой файл с расширением .CFA.

В верхней части окна программы напротив "Display Filter" нужно написать "btavdtp" (без кавычек) и нажимать "Find", внимательно изучая то, что находится в журнале после каждого нажатия:

btavdtp WireShark

В процессе поиска будут попадаться строки, в которых будет видно, как гарнитура сообщает смартфону о поддерживаемых кодеках:

WireShark bluetooth APT-X

Искать нужно до момента, пока не попадется "SetConfiguration", означающее, что устройствами выбран общий кодек, и, как видим, это действительно aptX:

WireShark Bluetooth Apt-X

Аналогичным образом можно проанализировать и другие связки смартфонов и гарнитур либо наушников. Самая большая трудность, с которой вы можете столкнуться, - это получение журналов bluetooth со своего устройства, так как способы могут отличаться для разных производителей смартфонов и, возможно, какие-то шаги для получения журнала bluetooth вам нужно будет выполнять иным способом, нежели описано здесь.

Надеюсь статья была вам полезна. Оставьте свое мнение, пожелания или критику в комментариях.