Эрик, автор блога, три года назад начал разбирать головное устройство своего Honda Civic 2021 года. Самый большой прорыв случился, когда он изучил процесс обновления прошивки через USB. Honda использует стандартный AOSP update-файл, который подписан публично известным тестовым ключом AOSP. Просто берёшь флешку, форматируешь её как надо и подписываешь этим ключом — и головное устройство проглотит любую прошивку. Никакого рута через su с setuid не нужно, доступ к коду получается сразу.
Автор назвал эту атаку EvilValet. Чтобы её провернуть, нужен только физический доступ к переднему USB-порту в салоне. Например, журналист оставляет машину парковщику, тот за пару минут ставит модифицированное обновление, и водитель даже не узнаёт, что его головное устройство скомпрометировано. Эрик выпустил утилиту ota-builder, которая позволяет любому собрать такой update-файл. Также он разработал apk-rebuilder — инструмент, который берёт официальный апдейт Honda с форума и раскладывает его на чистую структуру: извлекает .smali-код, ресурсы, рамдиск. Сами исходники Honda публиковать нельзя, поэтому apk-rebuilder работает как функция, получающая на вход файл, который не хранится на GitHub.
Автор ищет помощников. Во-первых, процесс обновления хрупок и привязан к версиям прошивки. Если у вас Honda Civic 10-го поколения и вы разбираетесь в технике — добавьте свою версию в репозиторий. Эрик предупреждает: если версия не совпадает, можно получить recovery loop и мягкий «кирпич». Во-вторых, он экспериментирует с тулчейном для компиляции C-кода под ARMv7 в точности как вендор — использует Docker, но пока код грязный и привязан к его рабочему процессу. В-третьих, кастомные темы почти невозможны: ресурсы захардкожены в форке фреймворка от Mitsubishi, придётся хирургически править vendor framework. И наконец, Эрик начал парсить .smali-файлы для восстановления AIDL-интерфейсов, что открывает дорогу для кастомных приложений вроде виртуального спидометра — но код ещё не проверен на точность.
Автор решил не писать подробную документацию, а сделать акцент на инструментах. Он считает, что LLM сами разберутся в чистом коде, если он доступен. А бумажные гайды быстро устаревают. Проект практически завершён, PRs принимаются, но Эрик переключается на другие дела.