Citroen C4 (2G) (White Robot)

Взлом SMEG+iv2 и телекодирование без DiagBox

Я їжджу на SEAT Leon X-PERIENCE, Citroen C4 (2G)
Харків, Україна

Здравствуйте!

Решил написать пост так как мне кажется что эта информация очень важна для тех кто хочет установить себе SMEG в до-рестайлинговую машину.
Если вы почитаете мои предыдущие посты на эту тему, то увидите что не все так просто как с установкой родной для дорестайлинговых машин RT6.
Но, как говорится, long story short — все получилось
Во первых благодаря товарищу keknas. Два ситроена этому госопдину за помощь, крайне рекомендую пройти к нему в профиль подписаться на все его машины так как по моему мнению это один из самых продвинутых ситроеноводов на драйве.

А теперь собственно к делу.

Еще в феврале плюнув на попытки телекодировать голову я отправил ее в Москву, где keknas используя свои связи сконфигурировал ее так как она ставится на топовые комплектации C4 Sedan который производят в России.

Только в июле голова вернулась в Харьков и была установлена в машину. Радости моей не было предела. Заработал Carplay!
Наконец-то заработали кнопки на панели, ну и много чего заработало. Например появился wifi! Не шибко полезная опция на первый взгляд но, как оказалось, именно наличие этой опции позволяет делать очень интересные вещи. (об этом ниже)

Однако не все так сладко как может показаться на первый взгляд.
Проблема в том что российские машины не имеют многих опций которые есть на украинских машинах.
Например в режиме “старт-стоп” у меня не отображалось время проведенное в состоянии когда двигатель остановлен. Мелочь, но хотелось бы что бы все было “на пятерочку”.
Также из параметров которые можно настроить в настройках головы доступны только опции связанные с освещением. А например опция задающая способ открытия багажника недоступна. Еще нельзя поменять звуковую схему или включить/выключить автоматическое включение заднего дворника при движении задним ходом во время дождя.
Также нельзя поменять набор запомненных скоростей для круиза и ограничителя скорости.

Можно, конечно, наплевать на эти мелочи и радоваться жизни, но я решил побороться.

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

А теперь информация для тех кто после установки магнитолы захочет активировать дополнительные функции. Скажу сразу, это имеет смысл делать только если соответствующие блоки установлены в вашей машине. Я не могу использовать DiagBox так как Citroen не дает телекодировать магнитолы установленные на “неподходящие” машины. Даже официальные дилеры ничего не могут изменить в настройках головы. Компьютер PSA видит что голова установлена в дорестайл и не дает менять в ней ничегошеньки.

В моем случае голова была снята с Peugeot 208 и настройки на ней ОЧЕНЬ не соответствовали тем которые требовались для Citroen C4. Часть проблем мне удалось решить телекодированием под российский C4 Sedan. Но не все.

Все что вы будете делать дальше вы делаете на свой страх и риск. Ответственность за неработающие магнитолы я не несу )
Также вы должны быть готовы что для совершения всех этих действий вам понадобятся некоторые технические знания и умение работать с командной строкой и знание linux.
Я сознательно не упоминаю множество технических нюансов, для человека знакомого с linux и командной строкой этой информации должно быть достаточно. Для тех же кто не знаком и не имеет соответствующих технических навыков задача будет непосильной и велик риск что-то сломать.

Итак идея взлома заключается в том что бы поменять настройки магнитолы изнутри не используя DiagBox. Первая моя мысль была в том что бы достать карту памяти из головы, вставить ее в компьютер, как-то разобраться в том как именно хранит голова свои настройки, поменять их и вернуть карту назад.
Разбирать ничего не хотелось.
Когда голова приехала и была установлена я с удивлением обнаружил наличие ранее неактивной опции “wifi”. Не очень полезная опция. Как только вы разгоняетесь больше 5 км/час браузер закрывается, да и флеша в нем нет что бы смотреть ютуб.
Но наличие вайфая обозначало что операционная система в голове имеет какой-то сетевой интерфейс, а значит с ней можно попробовать пообщаться.
Для начала я попробовал создать вайфай-сеть на ноутбуке, подключился к ней с головы и увидел что у головы есть свой ip-адрес.
Затем я просканировал этот адрес с помощью nmap. nmap показывает открытые порты на компьютере или любом другом устройстве подключенном к сети.
И о чудо, на голове оказался открыт 23 порт. 23 порт используется для удаленного управления с помощью telnet.
Я тут же подключился к голове и обнаружил работающую оболочку операционной системы vxWorks. Кстати, точно такая же используется на роботе куриосити который сейчас колесит по марсу.
В оболочке можно выполнять множество различных задач. В том числе, доступны команды работы с файловой системой магнитолы. Т.е можно посмотреть какие файлы и папки на ней есть. Немного погуляв по флешке с системными файлами магнитолы я обнаружил папку /USER_DATA/user_data/SQLITE
в которой лежало около 20 файлов с раширением .sqlite

В оболочке есть встроенный “help”, так что я быстро нашел способ как скопировать эти файлы на флешку и дома поковырялся в них.
Файлы оказались не просто .sqlite а еще и сжатые gzip.
Однако так просто поменять эти файлы было нельзя. Рядом с каждым файлом лежал специальный файлик с расширением .inf в котором были записаны “контрольные суммы” соответствующего ему файла .sqlite. Т.е если я захочу поменять что-то в файле с настройками (даже один байт) то мне надо пересчитать контрольную сумму и записать ее в этот файл. Иначе голова не примет файл. Но какой же алгортим? В файле видно что контрольная сумма выглядит как crc32 но когда я посчитал контрльную сумму стандартным способом оказалось что она не сходится.
И тут мне очень помог человек написавший Mirascripts. Оказывается еще во времена магнитолы RT3 в 2009 году он написал програмку (mira308sw.altervista.org/…are/RTXcrc%20(v01.00).zip) (как он это сделал я понятия не имею) которая умеет считать контрольные суммы по правильному алгоритму.
С помощью его програмки я попробовал посчитать контрольную сумму и она сошлась с той что была в файле. Оставалось только научится вносить нужные изменения в файлы.
Менять что-либо в sqlite файле без документации сущий ад, поэтому я составил себе небольшой справочник, за что отвечает какой параметр.

Так выглядят параметры которые можно менять:
docs.google.com/spreadshe…KNYGp12g/edit?usp=sharing

Параметр в колонке Type отвечает за тип значения в соответствующей колонке.
Например есть в type написано 2, то это означает что в колонке IntValue должно быть либо 1 либо 0. Т.е это флаг вкл/выкл.
Если же type = 1 то в IntValue должно быть записано какое-то цифровое значение. Номер или величина.

Как видите опции в файле сгруппированы по секциям, например секция AAS отвечат на параметры связанные с системой парктроника.
Первое что я попробовал включить был параметр AAS_Front_Present
После его включения у меня наконец-то начали пищать передние парктроники. Дальше следовал день экспериментов, после чего я смог более менее понять за что отвечает какой параметр.

Я старался менять только те параметры у которых Type = 2. Т.е только те которые можно либо включить либо выключить. В параметрах где надо вводить цифру за неимением знаний о том какая цифра что означает я решил не лезть.

aas_front_present — наличие переднего парктроника
aas_reat_present — наличие заднего парктроника

Блок опций из секции “vehicle_configuration” включает отображение опций в меню настроек головы. Т.е это не сами опции а возможность их менять.
Например после включения опции Audio_Harm появилась возможность менять звук поворотников. Есть 4 звуковые темы но реально приятная только одна :)

Блок опций с именами Harm_XX включает дополнительные темы оформления.
К сожалению в голове можно включить только темы от пежо, ds и citroen по две штуки на каждую. Итого 6, хотя в файле присутствует их больше. Я включил темы от DS, они красивей, но есть минус — не показывается моделька машины во время работы парктроника или когда не закрыты двери. ДУмаю это можно исправить покопавшись в других файлах с параметрами. Хотя может быть и так что моделька выбирается по ВИН-номеру а в темах от DS просто нет картинки с с4.

Опция из секции map — DRM. Выставленная в 0 отключает провекру ключа картографии. Т.е при установке новых карт не понадобится вводить никакие ключи. Халява, сэр!

Одна из опций с Type=1, которую я осмелился менять секция VAN — VMF_VCCF
Задает режим общения с блоком подрулевых переключателей и кнопками на руле. Пробовал подобрать цифрами значение но так и не нашел варианта при котором работают все кнопки. Видимо надо еще и блок кнопок от рестайла ставить.

Блок параметров из секции AUX дает возможность включить долгожданный Carplay, у меня он уже был активирован но теперь вы знаете что надо менять.

Дальше большой блок из секции “drive”.
Опции со словами “push_present” включают “электронную кнопку” на экране головы которая, к сожалению не нажимается а только показывает состояние. Видимо это связано с тем что в с4 у меня эти кнопки существуют в “физическом” исполнении на торпедо.
Опции со словами fnc_present включают поддержку каких-либо опций в автомобиле.

aas_* — парктроники
afil_* — пересечение дорожной разметки
artiv_* — временной интервал между автомобилями (адаптивный круиз?)
asr_* — не проявляетя
avp_* — 360 обзор
cafr_* — автоматическое включение дальнего света
cpk_* — Park assist
dsg_* — Система контроля давления в шинах
hy_* — скорее всего что-то связаное с гибридами, не включается, если включить — не работает главынй экран
mpd_ — не проявляетя
rlvv_* — настройки круиза
sam_* — контроль мертвых зон
stt_* — старт-стоп

После того как я поменял все интересующие меня параметры я сжал фалы обратно с помощью gzip. Опции архивации для тех кто будет повторять:
gzip -n -6 up_config.sqlite
Затем надо посчитать контрольную сумму для этого файла с помощью программки RTXcrc:
RTXcrc.exe -v up_config.sqlite
И записать это значение в файле up_config.sqlite.inf напротив слов CRC_UNCOMPRESSED
Затем надо посчитать контрольную сумму еще раз. Но на этот раз вместе с .inf файлом:
RTXcrc.exe -v -i up_config.sqlite
На выходе получится число из 4 символов, дописываем после них четыре нолика и полученное значение записываем в первую строку inf-файла.

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

Казалось бы, вот она идилия. Но как всегда есть ложка дегтя.
Так и не удалось пдобрать правильный параметр для кнопок на руле. Остановился на меньшем из зол, когда не работает правый нижний блок кнопок отвечающий за звонки по телефону. Вравно есть carplay.
Все еще нельзя задавать предустановленные скорости для круиза. Невелика потеря, я эти параметры не менял с момента покупки машины.
Параметры которые я меняю через голову применяются только после выключения двигателя и установки машины на охрану. В принципе тоже не страшно — меняют эти параметры обычно один раз в жизни.

Спасибо что дочитали, задавайте вопросы, если интересны детали.

Реклама
Комплексне обслуговування автокондиціонерів: повертаємо ідеальний клімат в авто з першого разу
Пробіг 48300 км.
Опубліковано: 11 вересня 2016р. 19:56
0 0 0

Коментарі

Щоб залишати коментарі, потрібно авторизуватись.