Чтение картинок из файлов прошивок панелей VDO

Добрый день, друзья! Давно ничего не писал в блоге на автомобильную тематику, поэтому прерву паузу небольшим постом о прошивках и панелях VDO. Некоторое время назад благодаря пользователю @Mit в конверторе прошивок на моем сайте появился еще один модуль, который позволяет строить образы из прошивок панелей VDO на базе NEC850.

Заставка из прошивки 5N0920883F 1008

Особенностью модуля является то, что на выходе мы получаем не один, а сразу несколько “образов”. Подобная структура, конечно, не редкость, она встречается в некоторых блоках управления двигателем, но все-таки в контексте файлов прошивок это скорее исключение, чем правило. Для черно-белых панелей, после распаковки прошивки можно получить два образа: один для MCU и второй для EEPROM. Но самое интересное начинается в случае цветных панелей, ведь к перечисленным выше образам добавляется еще два: образ процессора дисплея и внешней памяти. Да, в панелях с цветным дисплеем ЖКИ не просто экран – это отдельный модуль в котором есть собственный МК и микросхема флеш-памяти, где, собственно, и хранятся сами картинки.

Сводка полезной нагрузки прошивки 5N0920883F 1008

Видите эту область почти на 16 МБ? Это тот самый блок с картинками…

Если вам интересны технические детали, отличия одних цветных панелей от других, почему одни можно легко обновить до 3D, а другие нет, то я настоятельно рекомендую ознакомиться с серией заметок от Andrey-NA, посвященных панелям платформы PQ35. Там все эти детали достаточно подробно описаны, поэтому я пропущу всю техническую часть и перейду сразу к к примерам того, что можно найти в образе NOR памяти.

Для хранения картинок используется свой, на мой взгляд весьма специфичный, формат, поэтому для того чтобы извлечь данные из образа, я использовал в качестве примера и описания код из репозитория https://github.com/skypiece/vagdash.

В моем случае проще всего оказалось сделать небольшой плагин для конвертора, поэтому вывод превью картинок из прошивки организован в виде дополнительной вкладки. Там выводятся все PIT записи, которые удалось извлечь и все картинки которые удалось построить. Ниже фрагмент вывода для цветной 3D панели 5N920883F и на первый взгляд все отлично, удалось извлечь несколько сотен картинок без каких-либо артефактов. Узнаете? =)

Пример картинок из прошивки 5N0920883F 1008

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

Пример артефактов в прошивке 5N0920883 0506

К сожалению, все мои попытки исправить извлечение картинок для простых цветных панелей оказались безрезультатными: как бы я не менял параметры, увы нормального превью не получается… Видимо в старых цветных панелях использовался какой-то другой формат.

На помощь мне опять пришел Mit: прочитав эту заметку, он прислал пример как нужно работать со старым форматом и после небольшого исправления удалось прочитать изображения и в старом формате.

Исправленный вывод картинок из прошивки 5N0920883 0506

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

Второй любопытный момент – это образ EEPROM. В общем-то это было и раньше очевидно, что при обновлении прошивки панели приборов может выполняться (и выполняется) частичное обновление EEPROM, но теперь при желании можно посмотреть какие конкретно области обновляются.

Какие можно сделать выводы? Ну как минимум что тут есть с чем можно работать и если заниматься, то может получиться собирать кастомные прошивки с обновленной графикой и EEPROM, по аналогии с DSG. Будет ли такое продолжение? Я не знаю, загадывать не буду, но пока в планах такого сценария нет, да и проверять особо не на чем. Но если продолжение будет, вы узнаете об этом первыми.

А на этом, пожалуй, пока все. Всем удачи!

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