Я хочу использовать Lenovo Tab2 A7 (Android 5.0, рутированный) в качестве приемника A2DP. Для этого мне нужно отредактировать файлы:
/external/bluetooth/bluedroid/include/bt_target.h
а также
/packages/apps/Bluetooth/res/values/config.xml
Но я не могу их найти. Я искал в каждой папке на планшете. Я также искал источник, предоставленный Lenovo:
http://support.lenovo.com/de/de/products/tablets/a-series/a7-10-2/downloads/ds105762
Может кто-нибудь дать мне подсказку?
user2737780 14 окт ’16 в 10:36 2016-10-14 10:36
2016-10-14 10:36
1 ответ
Эти файлы bt_target.h и config.xml на самом деле не существуют на устройстве Android. Эти файлы присутствуют в коде AOSP. Чтобы включить приемник A2DP, вам нужно покопаться в коде, перейти к расположению этих файлов, как вы упомянули, внести изменения и затем скомпилировать либо полное изображение, либо просто bluedroid.
Также ваше устройство должно быть рутировано, если вы просто хотите заменить библиотеку bluedroid. В случае полного изображения, в любом случае вы должны прошить свое полное изображение.
Для чего нужна android tv приставка и что это такое?
Но, к сожалению, это еще не сделано для приемника A2DP. С помощью описанных выше шагов вы сможете включить профиль приемника, подключиться к нему и начать потоковую передачу с удаленного устройства на ваше устройство, но потоковые данные не могут быть воспроизведены на вашем устройстве. Причина в том, что на данный момент в AOSP нет той части кода, которая могла бы воспроизводить потоковые данные на динамике вашего телефона.
См. Ссылку ниже для получения дополнительной информации
Но подождите, есть одна хорошая новость, но с ограничением, телефоны Samsung Galaxy S7 и выше поддерживают роль приемника. Но сейчас, кажется, есть ограничение в функциональности телефона. Телефоны серии Galaxy S7 и выше можно подключать только к телевизорам Tizen Smart в настоящее время через встроенное приложение быстрого подключения.
Источник: stackru.com
Рубрика «bluedroid»
С развитием технологий так привычные всем «ламповые» аналоговые наушники уходят в историю – их всё больше вытесняют беспроводные собратья на базе Bluetooth.
Современные смартфоны лишаются привычного разъёма в угоду влаго- и пылезащищённости.
Разработчики выпускают всё новые версии протокола Bluetooth и всё новые версии кодеков, обещая «быстрее, выше, сильнее» — меньшие задержки в воспроизведении и лучшее качество.
Настолько ли всё хорошо? Давайте посмотрим.
Читать полностью »
Источник: www.pvsm.ru
Что такое Android TV?
Как изменить стеки Bluetooth на Android для значительного улучшения качества звука Bluetooth
Предупреждение: это очень продвинутое руководство, которое включает в себя изменение ваших стеков Bluetooth на Android — прочтите это руководство полностью и следуйте всем инструкциям в точности так, как указано.
Несмотря на то, что Bluetooth-гарнитуры и Bluetooth-аудио стали довольно популярными, это небольшая проблема для аудиофилов, потому что доказано, что Bluetooth снижает качество звука, поскольку биты аудиоинформации и частот теряются в воздухе при потоковой передаче Bluetooth.
Вот почему некоторые производители выпускают кодеки aptX и LDAC, чтобы улучшить качество звука по сравнению со стандартным кодеком SBC Bluetooth, который поддерживается всеми наушниками и большинством устройств Bluetooth — однако устройства с кодеками aptX и LDAC намного дороже, потому что эти кодеки требуют лицензионных сборов, которые в конечном итоге платит потребитель.
Низкое качество звука кодека SBC Bluetooth вызвано искусственными ограничениями всех текущих стеков Bluetooth и конфигурации наушников, и это ограничение можно обойти на любых существующих устройствах.
Если вас интересует звук через Bluetooth, в конце этого руководства мы покажем вам, как создать дамп аудиожурнала Bluetooth и изучить его, чтобы узнать, какое качество звука и частоту вы получаете от приемника Bluetooth на Android.
Большая часть этого руководства будет сосредоточена на нескольких простых настройках и способах чтения аудиовыхода Bluetooth, чтобы значительно улучшить качество вывода стандартных кодеков SBC Bluetooth — пожалуйста, внимательно прочитайте это руководство, так как оно довольно образовательное, и в нем много разных вещей для прошивки или настройки, в зависимости от модели вашего устройства.
В конце этого руководства находится список предварительно пропатченных стеков Bluetooth для многих популярных устройств Android — они могут быть прошиты при восстановлении, как и любой другой прошиваемый .zip — если ни одно из устройств не принадлежит вам, у вас будет чтобы следовать руководству по изменению стеков Bluetooth на Android.
Краткая техническая информация о кодеке SBC
SBC имеет множество различных параметров, которые согласовываются на этапе установки соединения:
- Тип и номер аудиоканала: Joint Stereo, Stereo, Dual Channel, Mono;
- Количество полос частот: 4 или 8;
- Количество аудиоблоков в одном пакете: 4, 8, 12, 16;
- Алгоритм распределения битов квантования: Громкость, SNR;
- Максимальный и минимальный битовый пул, используемый в процессе квантования: обычно 2-53.
Декодер должен поддерживать любую комбинацию этих параметров. Кодировщик может реализовывать только часть из них.
Существующие стеки Bluetooth обычно согласовывают следующий профиль: Joint Stereo, 8 диапазонов, 16 блоков, Loudness, bitpool 2..53. Этот профиль кодирует звук 44,1 кГц с битрейтом 328 кбит / с.
Параметр Bitpool напрямую влияет на битрейт в рамках того же профиля: чем он выше, тем выше битрейт, а значит, и качество.
Однако параметр bitpool не привязан к конкретному профилю. На битрейт также существенно влияют другие параметры: тип аудиоканала, количество полос частот, количество аудиоблоков. Вы можете косвенно увеличить битрейт, согласовав нестандартные профили, не меняя битпул.
Например, Dual Channel кодирует каналы отдельно, используя весь битовый пул для каждого канала. Принуждение устройства к использованию Dual Channel вместо Joint Stereo даст нам почти удвоенный битрейт при том же максимальном битпуле, 617 кбит / с.
Мне кажется, что битпул должен быть внутренней переменной. Ошибка разработки спецификации A2DP заключается в том, что значение пула битов не связано с другими параметрами кодека и определяется только как глобальное значение.
Эти фиксированные значения Bitpool и Bitrate исходят из рекомендуемых значений для высококачественного звука. Но рекомендация не является оправданием для ограничения профиля этими значениями.
Спецификация A2DP v1.2, действовавшая с 2007 по 2015 год, требует, чтобы все декодеры корректно работали с битрейтом до 512 кбит / с:
Декодер SNK должен поддерживать все возможные значения битового пула, которые не приводят к превышению максимальной скорости передачи битов. Этот профиль ограничивает доступную максимальную скорость передачи данных до 320 кбит / с для моно и 512 кбит / с для двухканальных режимов.
В новой версии спецификации нет ограничения битрейта. Предполагается, что современные наушники, выпущенные после 2015 года, могут поддерживать битрейты. до 1000 кбит / с.
По какой-то причине все протестированные на данный момент стеки Bluetooth (Linux (PulseAudio), Android, Blackberry и macOS) имеют искусственные ограничения максимального параметра bitpool, который напрямую влияет на максимальный битрейт. Но это не самая большая проблема, почти все наушники также ограничивают максимальное значение bitpool 53.
Большинство устройств нормально работают на модифицированном стеке Bluetooth с битрейтом 507 кбит / с, без прерываний и треска. Но такой битрейт никогда не будет достигнут в нормальных условиях со стандартными стеками Bluetooth.
* * * Требуется для тестирования с использованием руководств ниже: bluetooth-dualchannel-test-ubuntu-18.04.1-desktop-amd64.iso.torrent
Как протестировать на ПК
Тест на совместимость наушников с высоким битрейтом SBC проще всего выполнить на ПК с адаптером Bluetooth. Я подготовил образ Ubuntu с модифицированным стеком Bluetooth, который можно запустить как на виртуальной машине (подключив адаптер Bluetooth в качестве USB-устройства внутри виртуальной машины, он также работает с адаптерами, встроенными в ноутбуки) или загрузившись с флешку. В этом изображении используется следующий профиль: Dual Channel, 8 band, 16 блоков, Loudness, bitpool 2..41, 44,1 кГц, что обеспечивает битрейт 485 кбит / с.
Запуск в виртуальной машине
- Загрузите пакет расширений Virtualbox и Virtualbox: https://www.virtualbox.org/wiki/Downloads;
- Установите Virtualbox, запустите его;
- Установите Extension Pack, выбрав File → Preferences → Extensions;
- Создайте новую виртуальную машину: Linux, Ubuntu (64-бит), 1024 RAM. Не создавайте HDD.
- Перейдите к настройкам виртуальной машины, в Хранилище выберите Контроллер: IDE, Пусто, нажмите значок компакт-диска → Выбрать файл виртуального оптического диска;
- Выберите загруженный bluetooth-dualchannel-test-ubuntu-18.04.1-desktop-amd64.iso;
- Сохраните и закройте окно настроек, запустите виртуальную машину;
- Щелкните правой кнопкой мыши значок USB-кабеля в правом нижнем углу и выберите свой адаптер Bluetooth;
Запуск на ПК
Образ поддерживает загрузку BIOS / CSM и UEFI.
- Запишите образ на USB-накопитель с помощью Etcher: https://etcher.io/. Эта операция удалит все существующие файлы на USB-накопителе.
- Выключите ПК;
- Вставьте флешку, включите компьютер и нажмите кнопку порядка загрузки (обычно Esc или F12);
- Выберите свой USB-накопитель.
Проведение теста
- (необязательно, но рекомендуется) Дважды щелкните скрипт «Btsnoop Dump» на рабочем столе. Он начнет сбор данных Bluetooth для последующего анализа. Не закрывайте окно терминала.
- Переведите наушники в режим сопряжения;
- Щелкните стрелку в правом верхнем углу, выберите значок Bluetooth → Настройки Bluetooth;
- Выберите наушники, дождитесь завершения сопряжения и закройте окно;
- Установите громкость Ubuntu примерно на 2/3. Также уменьшите громкость с помощью кнопок гарнитуры, так как после сопряжения звук может быть очень громким.
- Откройте папку «музыка», запустите «testrecord1.flac»;
- (необязательно, но рекомендуется) Закройте проигрыватель, закройте окно терминала. Это остановит сбор данных.
- (необязательно, но рекомендуется) Откройте браузер Firefox, загрузите дамп данных (btsnoop_hci.btsnoop на рабочем столе) на https://btcodecs.valdikss.org.ru/
Вы можете слушать другую музыку из музыкальной папки или загружать свою;
В наушниках не должно быть потрескивания, прерывания звука или других искажений звука. Если вы слышите хороший высококачественный звук, это означает, что ваши наушники поддерживают звук с битрейтом 485 кбит / с.
Как протестировать на устройстве Android
Для тестирования со смартфона или планшета Android вам необходимо использовать модифицированный стек Bluetooth, для которого требуются права root.
Как сделать дамп данных Bluetooth на Android
- Выключите Bluetooth;
- В настройках разработчика включите переключатель «Включить журнал отслеживания Bluetooth HCI»;
- Включите Bluetooth, подключитесь к гарнитуре через меню Bluetooth (это важно! Не допускайте автоподключения!);
- Воспроизвести короткий аудиофайл;
- Откройте настройки разработчика, отключите переключатель «Включить журнал отслеживания Bluetooth HCI»;
- Должно быть создано /storage/emulated/0/btsnoop_hci.log или /data/misc/bluetooth/logs/btsnoop_hci.log. Если он отсутствует, откройте /etc/bluetooth/bt_stack.conf с помощью текстового редактора и посмотрите путь в параметре BtSnoopFileName.
В наушниках не должно быть потрескивания, прерывания звука или других искажений звука. Если вы слышите хороший высококачественный звук с исправленной библиотекой, это означает, что ваши наушники поддерживают звук с битрейтом 512 кбит / с.
Пожалуйста, внимательно следуйте приведенному выше алгоритму. Особенно, если вы выключите наушники или отсоедините их после сопряжения, важно подключиться к наушникам вручную в настройках Bluetooth, не разрешайте автоматическое подключение!
Устройства, поддерживающие не менее 512 кбит / с SBC
- 1 БОЛЬШЕ iBFree
- JBL Everest 310
- JBL Everest 700
- Skullcandy HESH 3
- Sony WI-C400
- Sony MDR-1ABT
- Sony MDR-ZX770BT
- Sony MDR-XB650BT
- Sony MDR-XB950B1
- Sony SBH50
- Bluedio T4s (Bitpool max 39. Реагировать, чтобы не поддерживать Dual Channel, но работать, если принудительно, 462 кбит / с. Не соответствует спецификации A2DP.)
- Bluedio T5 (Отвечает, что не поддерживает Dual Channel, но работает, если принудительно. Не соответствует спецификации A2DP.)
- Bluedio T6 (Отвечает, что не поддерживает двухканальный режим, но работает, если принудительно. Не соответствует спецификации A2DP. Принять микросхему Max 97220).
- Marshall Major II Bluetooth
- Овердрайв RealForce D1
- Edifier W830BT
- DEXP BT-250
- Адаптер Logitech BT
- Автомобильное головное устройство Noname (микросхема CSR8645)
- Штатная магнитола Sony DSX-A400BT
Устройства, поддерживающие SBC выше 512 кбит / с
- JBL Everest 310 (617-660 кбит / с)
- Sony WI-C400 (576 кбит / с)
- Sony MDR-ZX770BT (617-660 кбит / с)
- Marshall Major II Bluetooth (617-660 кбит / с)
- Overdrive RealForce D1 (730 кбит / с, двухканальный, 4 поддиапазона)
Устройства, которые не работают с более высоким битрейтом или Dual Channel
- Harper HB-202 (треск; микросхема Beken BK3256)
- Sony Ericsson MW600 (высокочастотные искажения, треск; аппарат 2009 года выпуска)
Почему это важно: SBC 328k и 485k против aptX
Вопреки распространенному мнению о качестве звука aptX, в некоторых случаях он может давать худшее качество звука, чем SBC со стандартным битрейтом 328k.
SBC динамически выделяет биты квантования для полос частот, действуя по принципу «снизу вверх». Если для нижних и средних частот использовался весь битрейт, верхние частоты «обрезаются» (заглушаются).
aptX постоянно квантует полосы частот с одним и тем же числом битов, что делает его кодеком с постоянным битрейтом: 352 кбит / с для 44,1 кГц, 384 кбит / с для 48 кГц. Он не может «передавать биты» на частоты, которые в них больше всего нужны. В отличие от SBC, aptX не «срезает» частоты, но добавляет к ним шум квантования, уменьшая динамический диапазон звука и иногда вызывая потрескивание. SBC, наоборот, «кушает детали» — отбрасывает самые тихие участки.
В среднем, по сравнению с SBC 328k, aptX дает меньше искажений в музыке с широким частотным диапазоном, но в музыке с узким частотным диапазоном и широким динамическим диапазоном иногда выигрывает SBC 328k.
Рассмотрим частный случай — фортепианную запись. Вот спектрограмма:
Вот SBC 328k:
Видно, что SBC 328k периодически полностью отсекал диапазон выше 16 кГц и использовал все доступные битрейты для диапазонов ниже этого значения. Однако aptX привнес больше искажений в частотный спектр, слышимый человеческим ухом, что можно увидеть на вычтенной исходной спектрограмме из спектрограммы aptX (чем ярче, тем больше искажений):
В то время как SBC 328k внес меньше искажений в сигнал в диапазоне от 0 до 10 кГц, а остальное обрезано:
Битрейта 485k для SBC хватило, чтобы сохранить весь частотный диапазон, не обрезая полосы.
SBC 485k на этом аудиосэмпле намного лучше aptX в диапазоне 0-15 кГц, и с меньшим, но все же заметным отличием — на 15-22 кГц (чем темнее, тем меньше искажений):
Переключившись на SBC с высоким битрейтом, вы в большинстве случаев получите звук, превосходящий aptX, на любых наушниках.
- original_and_aptx.zip
- sbc.zip
Как изменить стеки Bluetooth на Android 5-7
Эти изменения должны быть применены к стандартным стекам Bluetooth для Android Bluedroid (Android 5) и Fluoride (Android 6-7). Стек, модифицированный Qualcomm, не поддерживается.
Замените Joint Stereo на Dual Channel в стандартной конфигурации SBC
Android / платформа / внешний / Bluetooth / bluedroid / btif / co / bta_av_co.c: 99
Замените A2D_SBC_IE_CH_MD_JOINT на A2D_SBC_IE_CH_MD_DUAL.
Увеличить приоритет двухканального режима
Android / платформа / внешний / Bluetooth / bluedroid / btif / co / bta_av_co.c: 41
- Отключить или увеличить ограничение битрейта
Стек Android Bluetooth имеет не только ограничение на битпул, но и ограничение на битрейт, 328 кбит / с. Если наушники поддерживают, например, битовый пул 53 для 48 кГц, Android уменьшит битовый пул до предела 328 кбит / с. Это произойдет ПОСЛЕ согласования кодеков, на этапе кодирования, не учитывайте значение битового пула в пакете Bluetooth SetCapabilities.
Android / платформа / внешний / Bluetooth / bluedroid / btif / src / btif_media_task.c: 172
#define DEFAULT_SBC_BITRATE 328
Заменить на 512.
- (только для экспериментов) Отключить ограничение MTU.
Это требуется для битрейта выше ~ 580 кбит / с.
btif / src / btif_media_task.c: 174
/ * Размер полезной нагрузки 2DH5 составляет 679 байтов — (4 байта заголовка L2CAP + 12 байтов заголовка AVDTP) * / #define MAX_2MBPS_AVDTP_MTU 663
Как изменить Bluetooth-стеки на Android 8-9
Эти модификации не тестировались, но должны работать.
Добавить поддержку двух каналов в источник A2DP SBC
/ * Возможности кодека SBC SRC * / static const tA2DP_SBC_CIE a2dp_sbc_caps = A2DP_SBC_IE_SAMP_FREQ_44, / * samp_freq * / (A2DP_SBC_IE_CH_MD_MONO;
добавить A2DP_SBC_IE_CH_MD_DUAL в ch_mode.
Замените Joint Stereo на Dual Channel в конфигурации по умолчанию
Замените A2DP_SBC_IE_CH_MD_JOINT на A2DP_SBC_IE_CH_MD_DUAL.
Увеличить приоритет двухканального режима
static bool select_best_channel_mode (uint8_t ch_mode, tA2DP_SBC_CIE * p_result, btav_a2dp_codec_config_t * p_codec_config) channel_mode = BTAV_A2DP_CODEC_CHANNEL_MODE_STEREO; вернуть истину; > если (ch_mode p_codec_config-> channel_mode = BTAV_A2DP_CODEC_CHANNEL_MODE_STEREO; вернуть истину; > если (ch_mode p_codec_config-> channel_mode = BTAV_A2DP_CODEC_CHANNEL_MODE_STEREO; вернуть истину; > если (ch_mode p_codec_config-> channel_mode = BTAV_A2DP_CODEC_CHANNEL_MODE_MONO; вернуть истину; > return false; >
Переместите если с A2DP_SBC_IE_CH_MD_DUAL наверх.
Увеличить лимит битрейта
#define A2DP_SBC_DEFAULT_BITRATE 328
Заменить на 512.
- (только для экспериментов) Отключить ограничение MTU
Это требуется для битрейта выше ~ 580 кбит / с.
#define MAX_2MBPS_AVDTP_MTU 663
Исправленные стеки Bluetooth (возможность прошивки)
- Le Max 2 Oreo Patched.zip
- LeEco Cool Changer S1 EUI_5.8.19S.zip
- Leeco LE2 (EUI 5.9.26s, Android 6) .zip
- Xiaomi Mi Note (Miui 9 Miui.su usnkreal v8.4.12, Android 6.0.1) .zip
- Xiaomi mi note 3 (MIUI 9, Android 7) .zip
- Xiaomi Mi4c (Android 7.0 NRD90M, MIUI-9.5 9.5.1.0 (NXKCNFA)). Zip
- Xiaomi MI5s (MIUI Global 9.6.1.0, Android 7) .zip
- Xiaomi Redmi 3s (android 6.01, mmb29m, miui global 9.6.1.0) .zip
- Xiaomi Redmi 4 (MiuiPro 10 8.8.2, Android 6.0.1, MMB29M) .zip.
- Xiaomi Redmi 4 Prime.zip
- Xiaomi Redmi 4 pro (MIUI 9, miuipro 8.4.26) .zip.
- Xiaomi Redmi Note 3 (ремикс воскрешения Android 7.1.2_r36) .zip
- Redmi Note 4x (Masik Premium, android 7.0) .zip
- Asus Zoom (Android 5, 2.26.40.108_20160520) .zip
- Le Max 2 Oreo Patched.zip
- Huawei P9 (Android 7) .zip
- Samsung Galaxy S4 LTE GT-I9505 (Android 7.1.2; LineageOS 14.1-20180615-NIGHTLY-jfltexx) .zip
- застегивать
- Le Max 2 Oreo Patched.zip
Исправлено: не удалось выполнить проверку диска, поскольку Windows не может получить доступ к диску.
Если пользователь Window подключает внешний жесткий диск к своему компьютеру, жесткий диск и его разделы отображаются в Мой компьютер или Компьютер вместе со всеми остальными дисками, подключенными к .
Далее
Исправлено: Жук с кодом ошибки Destiny
Код ошибки Detiny Beetle, вероятно, является самым печально известным из всех кодов ошибок Detiny из-за того, что в настоящее время в Интернете доступно довольно мало информации. Люди в Bungie еще не .
Далее
Исправлено: iTunes имеет неверную подпись
Ошибка «iTune имеет недопустимую подпись» обычно возникает, когда ваш компьютер не может обнаружить цифровую подпись для загрузки приложения. Цифровые подписи используются для аутентификации.
Источник: ru.smartcity-telefonica.com