anonymix007 / ExtA2DP

LSPosed module for adding A2DP codecs
GNU General Public License v3.0
67 stars 3 forks source link

Xiaomi Poco F5 (marble) - LHDC no sound #10

Closed firengate closed 9 months ago

firengate commented 11 months ago

Hello!

Xiaomi Poco F5 (marble) Paranoid Topaz Stable 1 A13 Headphones - OnePlus Buds Pro 2R

Installed LSPosed v1.9.2 (7045) + audio_policy_changer_magisk.zip in Magisk 26.4. ExtA2DP module is enabled in LSPosed Manager. The device is rebooted. Choice of additional codecs appeared and I chose LHDC.

There is no sound in the headphones. There are many messages in logcate during audio playback: LHDC not enabled in offload currently. Tried turning A2DP hardware offloading on and off and rebooting the smartphone, still no sound.

I collected all the logs, libraries, and bluetooth app. Logs were recorded according to the instructions.

Your mod is the only hope in all custom firmware to get LHDC. Thank you so much for your work.

Screenshot_20231214-090023_Kitsune_Mask Screenshot_20231214-091515 Screenshot_20231214-091532_Оболочка Screenshot_20231214-091821_App_Manager Screenshot_20231214-091928_ExtA2DP Screenshot_20231214-091939_ExtA2DP Screenshot_20231214-092017_Настройки

apk + libs https://dropmefiles.com/4pQjv

logcat https://dropmefiles.com/i3BWB

lsposed logs https://dropmefiles.com/otGNP

anonymix007 commented 11 months ago

К сожалению, это известная проблема на всех относительно свежих Xiaomi. По неизвестной причине у них всех is_aidl_hal_available == 0 и,предположительно, из-за этого они пытаются запустить HW Offload (причём вообще AAC) несмотря на A2DP_SOFTWARE_ENCODING_DATAPATH. Можно попробовать временно отключить A2DP HW Offload.

firengate commented 11 months ago

Можно попробовать временно отключить A2DP HW Offload.

У меня в данный момент выключен A2DP HW Offload в меню разработчика. Может есть другой способ, как его выключить?

adb shell getprop | Select-String -pattern "bluet"

[bluetooth.device.default_name]: [POCO F5]

anonymix007 commented 11 months ago

У меня в данный момент выключен A2DP HW Offload в меню разработчика.

Пункт в меню разработчика называется "Disable Bluetooth A2DP hardware offload". Если он выключен (а по умолчанию это так), то A2DP HW Offload включён. И вывод getprop это подтверждает: [persist.bluetooth.a2dp_offload.disabled]: [false] Не выключено == включено.

firengate commented 11 months ago

Да, ты прав, он был включен. Дело в том, что я уже переключал этот параметр ранее несколько раз. В итоге все равно звука не было. Я сейчас его выключил и перепроверил.

Получается ситуация следующая, когда наушники подключаются, и я включаю музыку, звука нигде нет. В приложении ExtA2DP показано, что протокол используется LLAC, потом я вручную в приложении ставлю битрейт 500 кбит и протокол меняется на LHDC v4, и звук начинает идти через динамик телефона. Логи в этом сценарии - https://dropmefiles.com/z8dhf

Поток я решил музыку пока не включать, а сначала включить блютуз и выставить битрейт, чтобы кодек поменялся на LHDC и потом включить музыку, тогда звука уже нигде нет. Логи в этом сценарии - https://dropmefiles.com/uRClY

Приложение блютуза я через lsposed останавливал перез записью логов.

anonymix007 commented 11 months ago

В приложении ExtA2DP показано, что протокол используется LLAC, потом я вручную в приложении ставлю битрейт 500 кбит и протокол меняется на LHDC v4

Это нормально, LLAC - один из вариантов LHDC 3, как и 4. Один из них выбирается автоматически по достаточно сложным правилам в зависимости от битрейта и частоты дискретизации. На 2R ещё должен быть 5, что с ним?

звук начинает идти через динамик телефона

Это баг прошивки

А если в одном из этих сценариев запустить sudo setprop ctl.restart audioserver? И отдельно можно проверить эту версию.

firengate commented 11 months ago

На 2R ещё должен быть 5, что с ним?

5 версию завезли на последней прошивке наушников. Но в теме на 4PDA ходят разные слухи об ухудшении шумодава после 173 версии прошивки. Кто то разницы после обновления не заметил. Вообщем, пока побаиваюсь, ибо откатиться нельзя.

А если в одном из этих сценариев запустить sudo setprop ctl.restart audioserver?

Взял второй сценарий, с включением музыки после смены битрейта. После ввода команды setprop ctl.restart audioserver, звук начинает идти через динамики телефона. Я ввел команду несколько раз подряд, звук может пропасть или снова идти через телефон, рандомно. Логи этого сценария - https://dropmefiles.com/gxKnP

Теперь другой сценарий. Установил версию 2.2.6 по твоей ссылке. Перезагрузился. Пишу дамп, включаю блютуз, выставляю битрейт и включаю музыку - тишина. Я несколько раз жму паузу и воспроизведение в плеере, пока пишу дамп. Логи - https://dropmefiles.com/N7RAa

anonymix007 commented 11 months ago

Тогда прямой путь к мейнтейнеру, прямо как и в #9. Нужно включить AOSP AIDL HAL и починить выключенный offload. Был успешный случай запуска LHDC V5 на F5 с этим модулем и, насколько я помню, версией 2.2.3, хотя вряд ли что-то поменяется и в последней.

firengate commented 11 months ago

Я тут покопался в теме, в телеге по своей прошивке. Там человек один утверждает, что модифицированная версия твоего мода под F5 заработала. Случайно, это не тот самый случай успешного запуска на V5?

Снимок Снимок2

anonymix007 commented 11 months ago

Да, это оно, скорее всего.

firengate commented 9 months ago

И снова приветствую. Решился на обновление наушников и...

На версии LHDC V5 звук появился.

Выражаю Вам безграничную благодарность! Ваш серьезный труд позволил воплотить мечту там, где никто больше не хочет этого делать.

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

Спасибо Вам большое!