Предыдущая статья была посвящена теме качества мобильного звука в Android-смартфонах. Углубляясь в эту тему мы подробно рассмотрим что из себя представляют аудиомодификации, требования для их установки, принципы работы magisk модуля и способы улучшения качества звука на примере "NLSound". После установки модификации проведём анализ работы устройства и качества звука. Итак, приступим. Для установки аудиомодификации нам понадобится Magisk - метод получения Root доступа на устройстве, а также, средство внесения изменений в Android без изменения самой системы, т.е. внесистемно. Установка Magisk в систему - это и есть получение Root прав. Возможность получать Root есть на смартфонах, где загрузчик разблокирован, т.к. на заблокированном загрузчике легко получить "кирпич". Методы разблокировки загрузчика обсуждаются в соответствующей теме на 4пда. При прошивке Magisk в систему устанавливается приложениие MagiskManager, через которое мы будем производить все необходимые действия. Заходим в него и переходим в "Модули". Выбираем скачанный модуль NLSound (в нашем случае версия 3.2 STABLE Qualcomm) и приступаем к установке. Устанавливая модуль в magisk получить "кирпич" невозможно, т.к. для отмены изменений, при том же бутлупе, достаточно через TWRP удалить папку с модулем по пути /data/adb/modules/название модуля. Также, стоит отметить, что аудиомоды имеет смысл ставить только на смартфоны, имеющие чипы от данных компаний: Qualcomm и MediaTek. Android-смартфоны на базе этих процессоров имеют самое широкое распространение, соответственно, самое большое сообщество мододелов. По этой причине, допиливают до более менее рабочего состояния аудиомоды именно под эти платформы. Принцип установки "NLSound" заключается в выборе нужных для пользователя пунктов. Каждый из пунктов несёт в себе часть скрипта установки. Сам модуль из себя представляет zip архив с базовым набором файлов для magisk и скриптом установки. При установке модуля происходит патчинг файлов с аудиоконфигурациями и создаётся папка с модулем в директории magisk-а, куда помещаются изменённые файлы, которые заменяют оригинальные системные при каждой перезагрузке смартфона. Присутствует автоустановка (ставит основные пункты), ручная и полная (ставит все пункты). В автоустановке присутствует отключение глубого буфера, IIR патчи, отключение компандеров, патчинг audio_platform файлов, патчинг mixer_paths файлов, улучшение внутреннего аудиокодека и патчинг device_features. Мы же же подробно рассмотрим ручную установку и каждый из её пунктов. Отключение глубокого буфера Deep Buffer - один из роутов используемых в Android, который задействуется в любой прошивке. На этом роуте низкие частоты немного жирнее и более размазаны. При его отключении низы станут не такими жирными, зато более чёткими и приближенными к оригиналу, т.к. отключается лишняя обработка. Изменения вносятся в system.prop файл. Увеличение уровней и шагов громкости медиа В директории /vendor/etc/ лежат файлы такого типа: mixer_paths.xml. Это одни из главных конфигурационных файлов, от настройки которых сильно зависит качество звука. В файлах этого типа имеются строки, отвечающие за уровни громкости на всех аудио выходах, кроме A2DP (Bluetooth). В этих файлах повышаются общие уровни громкости и в блоке "headphones". После применения данного пункта можно услышать ощутимую прибавку в громкости как динамика, так и проводных наушников. Увеличение громкости микрофонов Аналогично с предыдущим пунктом, только патчатся строки, относящиеся к микрофонам. IIR патчи IIR - линейный электронный фильтр, использующий один или более своих выходов в качестве входа, то есть образующий обратную связь. IIR является фильтром, накладываемым на АЧХ аналогового фильтра. Это позволяет избежать нежелательных частотных срезов фильтра, те самым исключив вероятность искажения сигнала на выходе. Этот пункт применяет настройки фильтра, отличные от стоковых, которые также находятся в mixer_paths файлах. В результате мы получаем расширение частотного диапазона и более ровную АЧХ. Патчинг audio_platform файлов В этих файлах находятся фиксации битности аудио. Применение данного пункта даёт фиксированные 24 бита на выход проводных наушников и динамиков. Также, при установке данного пункта изменения вносятся и в mixer_paths файлы, а именно фиксации частот дискретизации, улучшенные методы обработки звука и изменения форматов выводов аудио на конкретных аудиошинах. Все данные фиксации имеют очень сильное влияние на улучшение качества аудио. Отключение компандеров Компрессор + экспандер (mixer_paths файлы). Всё бы ничего, но настроить компандеры в Android-е невозможно, только включить или выключить. Во включенном состоянии компандер будет видоизменять звук, пока не исчезнут цифровые перегрузы, всё дальше отходя от оригинального звучания без возможности регулировать компрессор и экспандер. После отключения компандеров звук станет менее зажат, появится возможность слушать треки в качестве, приближённом к изначальному, без обработки. Также, вместе с компандерами в mixer_paths файлах отключается вся возможная компрессия на аудиовыходы. Настройка внутреннего аудио кодека В файле /vendor/etc/audio_configs.xml лежат основные конфигурации для встроенного аудиокодека. Этот файл имеется далеко не во всех прошивках, но при его наличии можно применить данный пункт и получить небольшое улучшение качества. Применяя этот пункт мы модифицируем конфиг, заменяя стоковые значения параметров на нужные, для настройки кодека на воспроизведение более качественного звука. Патчинг device_features файлов Актуально только для MIUI, т.к. это её собственная фишка, которой нет больше ни у какой другой прошивки. Сам файл лежит в /etc/device_features/ и нужен для включения различных полезных фич. Скрипт меняет булевые значения у строчек, а система выполняет то, что она считывает из файла. Включив данный пункт мы разблокируем частоты дискретизации вплоть до 192000 kHz, включим HD запись аудио, улучшим качество Voip записи, включим функцию Hi-Fi на поддерживаемых устройствах и многое другое. Добавление нового dirac Dirac - это аудиодвижок, и по мнению разработчиков NLSound самый адекватный среди всех. По крайней мере, не зря именно его использует Asus, Oppo и Xiaomi. Dirac включает в себя библиотеки с эффектами, бинарник, настройку своего интерфейса и набор пропов (строчек system.prop файла). Наличие в модуле аудиодвижка обуславливается тем, что чистый звук может показаться не таким красочным, а Dirac придаёт красок любому треку. Дирак взят со смартфона от Oppo и полноценно работает. Единственный минус - совместимость. Для устройств с MIUI этот дирак не подходит, т.к. будет конфликт со встроенным, а также, многие прошивки сами по себе с ним конфликтуют, но всё же попробовать стоит. Модификация mixer_paths файлов Один из самых проблемных, но эффективных пунктов. Применяет огромное колличество всевозможных улучшений для аудиовыходов, включает функцию HIFI, доступную на процессорах Qcom, начиная с Snapdragon 665 и выше, повышает уровень питания и вольтаж там, где это возможно, подключает алгоритмы усилитей, повышает качество обработки аудио и заставляет работать усилители на полную (усилители от TFA и TAS). Проблемы со звуком могут возникнуть из-за несовместимости некоторых параметров, поэтому методом пробы можно определить, стоит устанавливать данный пункт или нет. Установка твиков в system.prop файл В структуре модуля имеется файл system.prop. Через него можно менять значения строк из файлов build.prop и внесённые изменения будут применяться поверх системных. В этом файле содержаться строки, которые подключают всевозможные пропы, которые отвечают за звук. Применённые пропы повышают качество обработки звука аудиокодеками, подключают dsp-процессор где это возможно, приводят в должное состояние аудио эффекты, включают встроенные в систему оптимизации звука и улучшают качество записи аудио. Применение данного пункта рекомендуется, а разница в звучании будет слышна сразу. Улучшение Bluetooth Применяет оптимизации Bluetooth канала в system.prop и включает поддержку кодеков AAC и APTX где это возможно. Переключение роута звука с DIRECT на DIRECT_PCM DIRECT_PCM - этот роут может выводить звук в более высоком качестве, чем обычный DIRECT. Опять же, приближение звука к оригинальному виду, за счёт отключения лишней обработки. Замена роута производится в файле audio_io_policy.conf. Отключение DRC функции Бесполезная система защиты от перегрузов, которая ограничивает динамический диапазон аудио треков. Отключается в файле audio_policy_configuration.xml и в результате получаем более живой звук. После установки модуля достаточно перезагрузить устройство, и наслаждаться полученным качеством звука. Но, есть и свои минусы. После установки возможено повышение потребления энергии, что отразится на разряде аккумулятора. Разница будет почти не ощутима, но такой минус присутствует. Также нарузка на процессор - она действительно станет выше. В играх вполне можно потерять кадров 5. Конечно, всё зависит от устройства, но такое случается. Также, при установке могут возникнуть проблемы с работоспособностью микрофона, основного и разговорного динамиков, наушников или Bluetooth. Для устранения возникших проблем придётся исключать проблемные пункты из установки. В большей части случаев, кроме повышения качества звучания смартфона, получить какие-либо проблемы маловероятно, а сломать что-то в принципе невозможно. Всё нужно пробовать и приходить к лучшему варианту. Существуют и другие модули, нацеленные на качество звучания, например тот же AINUR или AIST. Не стоит ограничиваться одним модулем, возможно, вам понравятся иные модификиации, но и устанавливать их вместе не рекомендуется, т.к. будут возникать конфликты в системе. Следующая статья будет посвящена объективному сравнению ряда аудиомодификаций, в которой вы узнаете ещё больше о мобильном звуке. Удачных прошивов без бутлупов!  Android разработчик