Как русифицировать китайские автомобили? Как не наделать кирпичей окирпичивая машину дороже 10 млн. руб? Я работаю с программным обеспечением китайских автомобилей, одна из самых популярных моделей на сегодняшний день это Lixiang, именно на ее примере я и покажу как обычно или, наоборот необычно, русифицируются автомобили.
Живем мы в интересное время. Абзац ниже касается практически всех премиальных китайских автобрендов.
Применяя определенную степень упрощения к статистике, которая, перефразируя пословицу, является производной от лжи, будем опираться на твердые факты из первых ссылок в поисковике. На конец 2023 года число реализованных машин этой марки уже составляло 376030 штук. Зарегистрировано же на текущий момент в РФ более 20.000 автомобилей Lixiang. РФ является лидером среди стран, куда импортированы авто этой марки. Это следствие совпадения ухода западных автобрендов и бурный расцвет китайского автопрома. Держим это в уме, теперь следующая часть эриксоновской петли.
Кроме этого имеем санкции и американское участие в капитале автопроизводителей. Русский и Китаец братья навеки, но Китай умеет мыслить столетиями, по всей видимости в горизонте планирования в несколько сотен лет машины и товары нам продавать можно, но о любой поддержке нам стоит забыть.
Меня зовут Вячеслав и я работаю в компании Provolta. Я русифицирую китайские авто, а до этого я много лет дорабатывал за Илоном Маском и делал Tesla немного удобнее для российского рынка. Я написал статью Чини свою Теслу сам, тыжпрограммист, которую на текущий момент прочитали более 73К раз и сиквела Чини опять свою Теслу сам, тыжпрограммист, которую прочитали более 50К раз. Кроме этого я рассказал как можно самому сгенерировать карты навигации для любой страны мира и загрузить их в свою ласточку на батарейках. Мою первую статью о русификации Android в китайских авто прочитали более 41К раз.
Мне пишет огромное количество людей, я попытаюсь собрать самые частые вопросы в статьи. Если будет интерес - буду продолжать.
Собственно, сам процесс русификации должен производиться на этапе создания ПО, путем добавления локали, это совсем небольшие затраты в масштабах производства. Не делается это для сдерживания машин, произведенных для локального рынка в Китае. И так просто проще, зачем тратить даже какие-то средства, если можно просто не замечать, что 10-20% твоих товаров уходят в другой регион и тебе их не нужно обслуживать и поддерживать. А еще китайские слова сильно короче русских и английских, поэтому дизайн от простой замены строк плывет только так.
Обучение русификации китайских автомобилей это сложный и многогранный процесс, требующий глубокого понимания как технических, так и культурных аспектов. С одной стороны, необходимо адаптировать программное обеспечение автомобилей под российские стандарты и требования, что включает локализацию интерфейса, настройку функций и интеграцию с сервисами, привычными для российских водителей. С другой стороны, важно учитывать менталитет и потребности отечественных пользователей, что может требовать доработки не только программного обеспечения, но и концепции самого автомобиля.
Обучение русификации это не просто перевод текста, а создание удобного и интуитивно понятного пользовательского опыта для российских водителей. Это требует тесного сотрудничества специалистов различных профилей: программистов, переводчиков, дизайнеров, маркетологов и тестировщиков. Ключевым моментом является способность предвидеть потребности российского рынка и интегрировать их в развитие китайских автомобилей. Успех русификации зависит от усилий всех участников процесса и готовности к постоянному усовершенствованию и адаптации к изменяющимся требованиям.
Для того, чтобы добавить локаль, нужны исходники. Либо беремся за паяльники и молимся (о получении целых образов, о наличии GPT, о нормальной энтропии данных), либо используем более тонкие инструменты.
Атака Reset Glitch Hack
ChipWhisperer один из лучших для этого инструментов. Вот пример как с его помощью можно ломать Xbox, ну, скажем так и другие устройства тоже можно. ChipWhisperer - это платформа с открытым исходным кодом, предназначенная для изучения и проведения атак на встроенные системы.
Ключевые особенности ChipWhisperer:
Многофункциональность: ChipWhisperer поддерживает различные методы атаки, включая анализ боковых каналов (Side-Channel Analysis), впрыск ошибок (Fault Injection), анализ обратного проектирования (Reverse Engineering) и другие.
Гибкость: Платформа позволяет использовать различные аппаратные средства, такие как осциллографы, логические анализаторы и микроконтроллеры.
Открытость: ChipWhisperer - это проект с открытым исходным кодом, что позволяет сообществу разработчиков и исследователей вносить свой вклад в его развитие и расширение функционала.
Обучение: ChipWhisperer часто используется в образовательных целях для обучения студентов и специалистов по безопасности.
Если кратко, в момент проверки пароля SSH можно сделать преднамеренную ошибку и обойти проверку запустив по триггеру в нужный момент сбой по шине питания.
Перехват пакетов обновлений
Перехватить можно старой доброй проводной акулой. Wireshark - мощный инструмент для анализа сетевого трафика, но он сам по себе не перехватывает трафик. Он анализирует уже перехваченный трафик.
Чтобы перехватить трафик, вам понадобится использовать сетевой интерфейс, который будет захватывать пакеты. Вот несколько способов:
Настройка сетевого интерфейса в режиме "прослушивания" (promiscuous mode):
В Windows: В командной строке введите
netsh interface set interface "имя_интерфейса" promiscuous mode=enabled store=persistent
(заменитеимя_интерфейса
на имя вашего сетевого адаптера).В Linux: Введите
sudo ifconfig "имя_интерфейса" promisc
(заменитеимя_интерфейса
на имя вашего сетевого адаптера).В macOS: Используйте утилиту
tcpdump
с опцией-i "имя_интерфейса" -p
.
Использование специализированного программного обеспечения для перехвата:
Для Wi-Fi: Существуют специальные программы для перехвата Wi-Fi трафика, например, Aircrack-ng.
Для Ethernet: В Linux можно использовать
tcpdump
илиwireshark
с опцией-i "имя_интерфейса"
для перехвата трафика с конкретного интерфейса.
Использование виртуальной машины:
Вы можете запустить виртуальную машину с Linux и использовать
tcpdump
илиwireshark
для перехвата трафика на виртуальной сети.
Получив пакеты обновлений мы уже имеем исходники для перевода и можем найти в коде способы расчета хэшей, чтобы переподписать пакеты и отправить их в устройство, которое даже не поймет, что мы сделали свое грязное дело.
...и тут бабушка оставила завещание
Все инструменты хороши, и дорогу осилит идущий и вдохновение должно застать Вас за работой. В общем, один из моих сотрудников позвонил мне со словами, что Lixiang после манипуляций, которые автоматизированы перестал включаться. Там даже не была произведена смена ПО. Не было воздействия на мультимедийный блок( блок телематики, центральный компьютер, DHU называют все по разному, термины пригодятся).
В общем приняли все меры, которые должны были взбодрить мертвеца, все перезагрузки, мольба, зажгли китайские фонарики, ничего не помогло. Неделю мы пытались воскресить подопытного, но все тщетно.
Я взял билет в Пекин, блок под мышку и в надежде, что братья не оставят в беде отправился в Поднебесную. Какого же было мое разочарование, когда в Пекине, среди суеты и ароматов специй, в сервисе Lixiang, меня встретили не с улыбкой доброжелательности, а с холодной отстраненностью. "Нам нужен целый автомобиль", - сказали мне, с уверенностью судьи, выносящего приговор. И я оказался один, с мертвым блоком в руках, перед лицом безразличной технологической судьбы. Словно блудный сын, вернувшийся домой, я стоял у двери великого технологического царя, но он не хотел принимать мое покаяние. "Ошибка в прошивке" или любой другой вердикт был бы отправной точкой для дальнейшей работы, но диалог очень быстро свернули сославшись на трудности перевода.
До этой поездки у меня уже был личный Lixiang. В общем, по приезду из Китая я купил клиенту новый Lixiang L9, и стал счастливым обладателем кирпича за 10 млн. руб. Я заказывал новые блоки телематики, покупал б.у. блоки на китайских разборках, но либо не подходила версия прошивки настолько, что блок мультимедия не видел остальные блоки, либо блок отказывался подвязываться к авто. А еще несколько блоков были залиты, наводнения в Китае дело нередкое, и недобросовестные посредники могут белому вандалу подсунуть все что угодно.
Нет худа без добра, но этой истории мы наработали связи с поставщиками комплектующих с которыми работаем до сих пор. Разобрались во внутреннем устройстве блока мультимедия и прошивки. С блоком была проблем в том, что накануне машина скачала и установила обновления, сотрудник установил приложения Яндекс навигатор, музыку и прочее и перезагрузил авто чтобы проверить их работу. Система посчитала, что необходимо сменить активный банк памяти не проверив целостность образа, поэтому и был черный экран. Спустя еще месяц у меня был уже раскирпиченный Lixiang L9 и много опыта. Опыт это то, что мы получаем, не получив того, что хотели.
А что там с бабушкой и завещанием? Спросите Вы.
Lixiang одна из немногих марок китайских авто, которые без танца с бубном обновляется по воздуху. В этом и сила и слабость. Все Ваши изменения по русификации могут через 1-2 недели превратиться в тыкву. Либо нужно готовить свои обновы и отключать получение обновлений из Китая, что является достаточно сложной задачей, либо отключить обновление совсем, на что мало кто из пользователей согласится.
Владельцы машин относятся к обновлениям примерно как линуксоводы, это радость, улыбки, смех и просто доза эндорфинов. Пока мы разбирались с кирпичом, мы заметили странную вещь. В незащищённой части, где обычно пользовательские данные /data/Download хранятся странные файлы с именем patch
Так вот, инженеры Lixiang для быстрого изменения системы и применения фич сделали систему патчей, чтобы без релизов тестировать. И, видимо, или забыли об этом, или звезды зажигаются, когда кому-то это нужны. В общем код из этих патчей выполняется еще и от root. Ну, тут как нам начало везти...
Установка адаптированных приложений
Кроме русификации одной из самых распространенных задач является установка привычных нам приложений. Вам удобнее Amap или Яндекс навигатор? Кто-то скажем Waze, а кто-то 2GIS. В общем любителей Bilibili я пока не встречал, поэтому собираем свой пакет приложений, но кастомизируем под каждого пользователя. В какой-то момент это начало заниматься слишком много времени и мы создали свой магазин приложений и уже каждый мог самостоятельно устанавливать себе. Больше всего было сломано копий, чтобы выдать правильно разрешения на установку без доступа к настройкам Android. По ADB
adb -d shell appops set --user 21473 xyz.genscode.provoltastore REQUEST_INSTALL_PACKAGES allow
Второй проблемой именно Lixiang стал слишком хороший дисплей. Рекордный DPI требует особой точности и утонченных пальцев, попасть в кнопки крайне сложно, поэтому нам пришлось переписать layout по пикселям, адаптивно все расползалось. Коллеги из чата Li потратили очень много времени на эту работу, но теперь usability на высоте. Именно так, объединяя усилия и делясь опытом мы сделаем мир вокруг лучше.
Установка слота под сим-карту
И вся эта красота с доработкой была бы неполной без стабильного доступа в интернет. Изначально все китайские авто содержат в блоке TCAM или в блоке мультимедия чип eSIM, мы сейчас дорабатываем софт для загрузки в чип информации о российской eSim, но пока приходится вместо eSIM ставить шлейф под российскую сим. И рассказываю я это не просто так, дело в том, что в большинстве систем есть проверка на идентификатор SIM, которая сейчас в машине, где-то мониторинг трафика, где-то мониторинг DNS или названия сети и со всем этим добром приходится работать уже программно. Является ли это частью русификации? Конечно, ведь русификация авто это не только про кириллицу это про удобство использования авто в России.
Надеюсь, Вам все понравилось, будьте здоровы, Да прибудет с Вами Provolta!