Улучшить звучание китайских автомагнитол

Улучшить звучание китайских автомагнитол

Аппаратные и программные доработки ГУ ML-CK1018 и аналогичных на платах YT9213-18 YT9260 (процессор AC8227L)
YT9213 YT9216 YT9217 YT9218 YT9260
Обсуждение » YT9213 YT9216-18 YT9218DL DSP

В теме не обсуждается как прошить, как починить кирпич, «помогите сломал». Только «технический флуд» по усовершенствованию ГУ

Операционная система: Android 6.0 версия API 23 ( 8.1GO — фейк)

Процессор: АС8227L 4 ядра 1,2 ГГц
Оперативная память: 1/2 Гб
Встроенная память: 16/32 Гб

Размер дисплея: 7″/9″/10″
Разрешение дисплея: 600*1024
Тачскрин: емкостный

Усилитель (УНЧ): TDA7388/AC7315
Выходная мощность: 4*60 Вт

WiFi: ЕСТЬ
BT: ЕСТЬ (работает как гарнитура; подключение OBD сканера)

USB: 2шт
Разъем для MicroSD: НЕТ (в FAQ описана возможность установки)
GPS: ЕСТЬ
AV-Out (подключение к монитору подголовника)
Подключение камеры заднего вида: ЕСТЬ

Язык интерфейса: английский, русский, немецкий, французский и другие 50 языков.

Устройства (ГУ) должны содержать на борту следующие чипы :
процессор андроида — АС/МТ 8227L
питание и кодек MT6323
аудиопроцессор — TDA7729 (TDA7719 , CSC37033 , SCS37534)
DSP ADAU1701(1401)
блютуз — MT6625
радио — NXP A5105(NXP6851?)
контроллер MCU — STM32F030C8T6
У устройств YT9216 , YT9217 отсутствует чип радио NXP6851 (A5105) — используется встроенное радио в комбочипе MT6625.
Основное — процессор , MCU, кобмочип MT6625 , питание, остальные чипы могут иметь различные комбинации . или 7729 , или dsp или ни того ни другого ! Также не имеет значения горизонтальный или вертикальный экран

Убедительная просьба, если нет опыта , нет уверенности и понимания что ты делаешь, НЕ НУЖНО пытаться сделать описываемое тут самостоятельно! Обратитесь к специалистам! Имеющим необходимый инструмент и опыт!
В теме нет куратора. По вопросам наполнения шапки обращайтесь к модераторам раздела через кнопку «Жалоба» под сообщениями, на которые необходимо добавить ссылки.

Сообщение отредактировал Stranger21ufa — 20.10.21, 18:19

Судя по всему это обработчик потери фокуса , и как раз нужный нам для приглушения AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK делает все равно тоже самое что и потеря фокуса Без приглушения — код одинаковый !
Как бы это изменить так чтобы оно стало нормально приглушать ?
Попробовал разобрать приложение GalaMusiс это вроде как плеер наш , но или оно както у меня разбирается с ошибками и не полностью .. или . но вопщем я там не нахожу этих строк (
А так бы подсмотреть как сделано там и сделать также в радио ! и может быть оно станет нормально притухать !
А по этому коду получается как раз оно отключает на 1 сек и снова включается , что у меня и было с 7729 , но прошло после перехода на DSP , что странно конечно тоже )

И да , чем блин его потом собирать с этого нормально читаемого языка ? , работаю в batchapktool , но его декомпилятор делает текст не понимаемый почти глазу ) но зато собирает его назад без проблем ) .. я конечно немного понимаю уже и тот текст ..
Но блин очень тяжело )
Нужен програмист )

Stranger21ufa,

Этой прогой можно хорошо коды посмотреть, ставится на ГУ
и можешь редактировать АПК.

Смотрел сегодня logcat с ключём fm .
Так вот там есть записи, когда говорит Алиса, там есть fm_mute и fm_volume =0
И радио замолкает
Когда говорит Оксана, то есть в логе fm_volume =0.5 но радио ноль эмоций. Вероятно он просто игнорирует так как нет в коде обработки.

В приложении плеера, сделано не через аудиоменеджер.
Там через сообщения оболочки видимо сделано. И есть обработка приглушения.
Я могу попробовать этот код перенести в радио. Но в Ява коде не знаю как.
В смали тяжело. Но думаю тоже можно попробовать.
На ходу в магнитоле трудно. Да и тормозит она. Я поставил одну прогу которая вроде тоже разбирает приложение.

Сообщение отредактировал Stranger21ufa — 05.07.20, 21:09

Кажется я начинаю кое чего понимать .
Попробую доказать прозвонкой. но нужен бы донор со снятыми 6323 и центральным процом .

Идея такая . в логе я вижу что есть у него какойто прям отдельный поток FM и он идет по шине i2S . И это прям реализовано на уровне звуковых библиотек . в ALSA
Есть предположение , которое многое обьяснит
с 6625 выходит шина i2S , и я вот не знаком с ней подробно — кто знает подскажите, и она физически соединяет все устройства , на ней висит и центральный проц , и 6625 и 6323 . в моем случае уже висит еще и DSP .
Итого дроид только запускает поток с 6625 , а потом его уже просто декодирует или 6323 или dsp . При этом звуки дроида , просто в эту же шину подкидываются паралельно !
Поэтому управлять , типо того чтобы приглушить , скорее всего не получится , так как приглушить можно только в самом DSP или 7729 . Но может быть можно в 6323 .

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

Это предположение обьяснит многое . например то почему в ЦАП ЮСБ не выходит звук радио — потом что ЦП его не обрабатывает !
Это также обьяснит почему у меня пропал секундный затык уведомлений при переходе на DSP , я просто читаю шину напрямую без 6323 .
Это также обьясняет почему на 9213 не работает эквалайзер и все подобное на радио — потому что звук с радио идет сразу в 6323 !

Это как бы и хорошая и плохая новость — хорошая , я попробую прозвонить шину на 6625 , и всем остальным можно будет туда подключать DSP .
Но если у когото есть мертвая плата то неплохо бы сдуть 6323 и ЦП и прозвонить шину i2S .

Однако если верить схеме на Lonovo 5500H , то с 6625 выходит только FM DATA и FM CLK , оно идет в CPU а с него отдельно шина на 6323 и отдельно шина i2S
Так что все равно это проходит через ЦП , значит этим МОжно управлять .. вот почему не получается то ни у кого ? ..

Подскажите как то можно Руками в терминале давать команды аналогичные тем что дают приложения ?

Вероятно тут https://github.com/iyk…udio/common/V3/aud_drv исходники каких то звуковых билиотек . и там есть все то что я видел в Логе , там именно и формируется этот аудио поток . Но почемуто не управляется громкость !
Во что он собирается ? и как собрать ? может можно что то изменить и все заработает ? и дело не в приложении а в библиотеке ? веть в логе я видел поставить громкость 0.5 . но она игнорируется .

Если я правильно понял код

status_t AudioALSAFMController::setFmVolume(const float fm_volume) <
ALOGD(«%s(), mFmVolume = %f => fm_volume = %f», __FUNCTION__, mFmVolume, fm_volume);

const float kMaxFmVolume = 1.0;
ASSERT(0 IsSupportFM() == false) <
ALOGW(«-%s(), Don’t support FM in the platform», __FUNCTION__);
return INVALID_OPERATION;
>

// Set HW Gain for Direct Mode // TODO(Harvey): FM Volume
if (mFmEnable == true && mIsFmDirectConnectionMode == true) <
mAudioALSAVolumeController->setFmVolume(mFmVolume);
> else <
ALOGD(«%s(), Do nothing. mFMEnable = %d, mIsFmDirectConnectionMode = %d», __FUNCTION__, mFmEnable, mIsFmDirectConnectionMode);
>

То какойто Harvey написал — СДЕЛАТЬ регулировку громкости (((
в данной конструкции только заведена процедура , но не описано что ей делать ( .

кто то понимает что можно сделать с этими библиотеками и дописать эту функцию ?

Сообщение отредактировал Stranger21ufa — 06.07.20, 07:37

Machomotofan,

Я прошелся по вызовам , открою лог посмотрю Кто в логе вызвыал запрос на рег громкости .
Примерная цепь событий
AudioALSAHardware

status_t AudioALSAStreamManager::setFmVolume(float volume) <
ALOGV(«+%s(), volume = %f», __FUNCTION__, volume);

if (volume 1.0) <
ALOGE(«-%s(), strange volume level %f, something wrong!!», __FUNCTION__, volume);
return BAD_VALUE;
>

status_t AudioALSAFMController::setFmVolume(const float fm_volume) <
ALOGD(«%s(), mFmVolume = %f => fm_volume = %f», __FUNCTION__, mFmVolume, fm_volume);

const float kMaxFmVolume = 1.0;
ASSERT(0 IsSupportFM() == false) <
ALOGW(«-%s(), Don’t support FM in the platform», __FUNCTION__);
return INVALID_OPERATION;
>

// Set HW Gain for Direct Mode // TODO(Harvey): FM Volume
if (mFmEnable == true && mIsFmDirectConnectionMode == true) <
mAudioALSAVolumeController->setFmVolume(mFmVolume);
> else <
ALOGD(«%s(), Do nothing. mFMEnable = %d, mIsFmDirectConnectionMode = %d», __FUNCTION__, mFmEnable, mIsFmDirectConnectionMode);
>

status_t AudioALSAVolumeController::setFmVolume(const float fm_volume) <
ALOGV(«%s(), fm_volume = %f», __FUNCTION__, fm_volume);

// Calculate HW Gain Value
uint32_t volume_index = logToLinear(fm_volume); // 0

256
uint32_t hw_gain = kHWGainMap[volume_index >> 1]; // 0

// Set HW Gain
return mHardwareResourceManager->setHWGain2DigitalGain(hw_gain);
>

status_t AudioALSAHardwareResourceManager::setHWGain2DigitalGain(const uint32_t gain) <
ALOGD(«%s(), gain = 0x%x», __FUNCTION__, gain);

const uint32_t kMaxAudioHWGainValue = 0x80000;

if (gain > kMaxAudioHWGainValue) <
ALOGE(«%s(), gain(0x%x) > kMaxAudioHWGainValue(0x%x)!! return!!», __FUNCTION__, gain, kMaxAudioHWGainValue);
return BAD_VALUE;
>

int retval = 0;
if (WCNChipController::GetInstance()->IsFMMergeInterfaceSupported() == true) <
retval = mixer_ctl_set_value(mixer_get_ctl_by_name(mMixer, «Audio Mrgrx Volume»), 0, gain);
> else <
retval = mixer_ctl_set_value(mixer_get_ctl_by_name(mMixer, «Audio FM I2S Volume»), 0, gain);
>

if (retval != 0) <
ALOGE(«%s(), retval = %d», __FUNCTION__, retval);
ASSERT(retval == 0);
>

и вроде как , пришло все к миксеру . почему же не работает .

Сообщение отредактировал Stranger21ufa — 06.07.20, 08:44

/// FM / mATV
int AudioFtm::FMLoopbackTest(char bEnable __unused) <
ALOGD(«%s()», __FUNCTION__);
return true;
>

int AudioFtm::Audio_FM_I2S_Play(char bEnable) <
ALOGD(«%s()», __FUNCTION__);

const float kMaxFmVolume = 1.0;

if (mStreamOut == NULL) <
if (mStreamManager->getStreamOutVectorSize() == 0) < // Factory mode
uint32_t devices = 0x2;
int format = 0x1;
uint32_t channels = 0x3;
uint32_t sampleRate = 44100;
status_t status = 0;

if (bEnable == true) <
// force assigned earphone
AudioParameter paramRouting = AudioParameter();
paramRouting.addInt(String8(AudioParameter::keyRouting), AUDIO_DEVICE_OUT_WIRED_HEADPHONE);
mStreamOut->setParameters(paramRouting.toString());

// enable
mStreamManager->setFmVolume(0);
mStreamManager->setFmEnable(true);
mStreamManager->setFmVolume(kMaxFmVolume);
> else <
// disable
mStreamManager->setFmVolume(0);
mStreamManager->setFmEnable(false);
>

Как видно поток открывается только в наушники )
А не в Дефаулт аудио ))))

Блин .. как все это компилировать ? и какие библиотеки получатся ? .

Это уровень «бог » для меня )

но я кажется понял эта ветка что я выше дал ссылку это сборка библиотеки наподобие нашей
audio.primary.mt6737t.so

у нас она audio.primary.ac8227l.so

Тоесть , чисто вот если понять ЧЕМ скопилировать эту ветку , то можно попробовать просто из исходника этого собрать эту библиотеку , ну и переименовав подложить
Теперь хотябы понятно в каком файле вся эта красота .

Но также и в самом apk радио наверное нужно-можно , попробовать переписать обработчик приглушения
В этом стиле

приглушать звук выставлением FMVolume = 0.5 но если оно не работает то и не сработает наверное . в плеере можно подсмотреть как получают от оболочки Максимальный уровень для канала , я так понял что ползунок Микс .

Думаю если я в логе и так видел что кто то хочет поставить громкость 0.5 , а результат нулевой , то приложение радио тут не причем .

Не сохранил видимо лог с громкостью 0.5
Больше повторить не удалось .
Только полное приглушение в 0.0

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

Приложение плеер тоже не совсем корректно работает , с Алисой оно приглушается , а должно Мутится .

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

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

зы смешно — «Log.wtf() — очень серьезная ошибка! (What a Terrible Failure!, работает начиная с Android 2.2)» ))) почемуто я прочитал его более просто и понятно ) вотафак )))))

самое интересное то что , на Redmi 5 радио ведет себя товершенно также ! .. на Алису мутится , на Оксану ноль эмоций и ее еле слышно (
блин
неужели никто нигде радио нормально не написал ? или есть другие причины ?

Сообщение отредактировал Stranger21ufa — 07.07.20, 07:55

Пост с Аудио библиотеками
Отличий между нашими , вроде как , я особо не заметил , да и по сравнению файлов они отличаются только версиями сборки скорее всего ..

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

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

lib20191017.rar ( 2 МБ )
lib20191226.rar ( 2 МБ )
lib20200306.rar ( 2 МБ )
lib_U708V13.rar ( 1.99 МБ )

Сообщение отредактировал Stranger21ufa — 15.09.20, 11:41

😉 :rolleyes:
Ну вопщем все получилось )
Думаю и 7ZIP сделает тоже самое .. но сделал прям в ГУ
® MT Manager с помощью MT manager
Для начала достал папку sounds из ресурсов
потом этой программой https://vellisa.ru/mp3gain MP3GAIN , всю папку поднял на 9дб звук , она написала что клип уже есть вроде как , но я не услышал , нормально.
Ну и запихал обратно прям на «горячую» в apk ) и все ! Антирадар говорит Громче чем радио прям комфортно офигенно !
Прикладываю архив , там есть установщик , ну по сути это и есть просто апк ) но и папка с уже установленным в /system/priv-apk/ оно прекрасно работает как системное , никаких таскеров не нужно , все авто просыпается из сна , все говорит и показывает ! )

Пользуемся ! )) теперь очередь за Янави )
+9 все таки лишнего . ниже с шагом 1.5 архивы для системной папки, можно и просто установить конечно же , 1.5 и 3 самое лучшее вроде как

Проверил что просто установкой файлы не работают с подписью накосячил ) исправляюсь , делаю файлы для установки )

Представленные ниже установщики , вроде верно устанавливаются . Но звука нет вообще ! . блин . чего то я опять не допонял и не доделал ( . на живую только ручная установка чтоли .

Источник

Читайте также:  Усилители для портативных колонок с алиэкспресс
Оцените статью