Модификация прошивок Sound Actuator / Active Exhaust

Мое полуночное хобби, растянувшееся на полтора года, подходит к завершению.

Узнав о легкости установки на VAG систем искусственного звука, я с первого дня загорелся этой идеей и почувствовал потенциал. Как бы кто не фанател от чадящих маскл-каров, за симпозерами будущее (и тем больнее прогресс стукнет дедов по лбу). Планета делает очередной виток, производства сокращают выбросы и углеродный след, человечество развивается по пути гедонизма, тик-тока и развлечений в каждый момент времени. Автомобиль (независимо от силовой установки) должен отзеркаливать настроение владельца и быть максимально тихим или громким по желанию. Вы сильно удивитесь на скольких современных машинах стоят симпозеры и насколько сильно они влияют на впечатления от езды (привет владельцам Porsche 😉).

Желающим написать в комментариях: “Мой Brabus / Urus звучит на голову лучше ваших перделок!” ― вы неправы. “Устройство по выдуванию газов в ржавую трубу” никогда не сравнится по спектру выдаваемых частот с современными бас-динамиками. Туда же идут и борцы “за реализм” ― индустрия компьютерных игр и симуляторов давно доказала обратное, на слепом тесте с концертной акустикой вы не определите источник.

Разобравшись с моими убеждениями 😏, перейдем к практической стороне вопроса:

В авто может быть установлено две системы генерации звука: внутренняя и внешняя. Производителем обеих систем для VAG-группы является компания Kendrion (бывшая Kuhnke) и с программной стороны это идентичные устройства. Отличаются только усилители звука в корпусе блоков и подключаемые к ним спикеры.

Внутренние блоки имеют номера заканчивающиеся на … 907 159, внешние ― в основном на … 907 160 (но попадаются и другие). Больше нумерологии в моих предыдущих постах:

Установка салонного симпозера
Установка активного выхлопа

Самыми массовыми поколениями блоков сейчас являются SAK-GEN2 и SAK-GEN2.5. Третье поколение появилось недавно и пока встречается только на гибридах и электричках MQB-Evo и MEB с номерами … 035 335. Я не уверен, как их правильно называет сама Kendrion, в именах железок фигурируют ESoundKenKuMQBENG, ESoundMEBHarma и подобное. Прошивки этих блоков в 4 раза больше и используют другие форматы данных.

Мы c daChillout изучали GEN2 как максимально массовые и доступные. Их блоки данных содержат:

― 8 engine / VIN масок с определением машин и привязкой графиков звука к FPA профилям
― Табличные данные с 8 / 16 графиками зависимостей громкости звука от положения педали газа, оборотов, линейной скорости, ускорения и т.д.
― Более мелкие таблицы с delay / pitch / gain / clip эффектами из music-making мира
― Однотактные семплы звука

Таким образом, в одной прошивке может содержаться информация для одной машины, разложенная на 5-7 профилей Drive Select (обычно это Audi RS), или 3-5 разных VIN масок с привязкой на 2-3 профиля для каждой машины (большинство прошивок для гражданских машин, обычно только Normal и Sport/Dynamic режимы)

Большие таблицы после экспорта в Excel выглядят примерно так:

Зависимость от ускорения. Отрицательная часть шкалы - торможение
Зависимость от оборотов

А это визуализированные с помощью WinOLS семплы:

Когда все данные уже были размечены, а защита так и не поддавалась, я написал еще и программный генератор звука, узнать из-за чего же мы страдаем.
Пара примеров с частотой ~1000 RPM:

8S__0004.wav
8S__0005.wav

При сильном желании, можно собрать в одной прошивке свой собственный гибрид звуков разных машин, разнесенный по Eco / Comfort / Normal / Offroad / Dynamic / Race режимам. Есть даже отдельная ячейка для заднего хода. Только копировать столбцы и строки с места на место в бинарных данных с постоянными проверками в Excel занимает кучу времени.

Суммарно, данные в прошивке защищены 3 чексуммами и на их поиски и подбор параметров и области охвата ушли сотни часов. Без них ― блок выдает ошибку о повреждении данных. (Есть еще чексумма для исполняемого кода, но его мы не трогали.)

Большую часть времени я писал скрипты для пересчета всеми возможными алгоритмами и перепаковки файлов, а daChillout экспериментировал с готовыми утилитами и библиотеками для автоматизированного поиска. Его технические посты с подробным описанием всех шагов и математики:

Investigating soundaktor firmware
Investigating soundaktor firmware Part 2
What is CRC32ADLATUS?
Cracking the soundaktor firmware checksum

На последнем этапе, когда мы уже добрались до дизассемблера Renesas V850, очень помог блог Willem Melching про взлом рулевой рейки. В своих постах Вильям дает огромную теоретическую базу по реверс инжинирингу; крайне рекомендую к прочтению. (А еще он ― глава компании по созданию автопилота comma.ai)

Hacking a VW Golf Power Steering ECU - Part 1
Hacking a VW Golf Power Steering ECU - Part 2
Hacking a VW Golf Power Steering ECU - Part 3
Hacking a VW Golf Power Steering ECU - Part 4

Итоговый результат наших бессонных ночей:

В планах на будущее до конца разметить data-блоки для GEN2.5 устройств и написать набор визуальных инструментов для редактирования графиков и манипуляций с цифрами, делать это через Excel максимально стрёмно.

И напоследок, небольшой подарок для комьюнити:

FL_8S0907159__0004.TTRS.MOD1.odx

Stay tuned …

Далее →  
Исследование звуковой параметрии MIB2
  ← Ранее
Модификация руководства. Встроенный браузер MIB2 High

Комментарии

temp temp

Похожие записи