开启关键之门三年前发布对2021款本田思域车载主机研究和逆向工程初步成果现更新项目进展。在梳理更新流程方面取得重大进展本田支持通过USB对车载主机更新USB驱动器含签名的AOSP更新文件经Android恢复模式暂存和应用。好在其res/keys中保留公开的AOSP测试密钥即便修改recovery二进制文件verify_file签名逻辑与原生AOSP一致。所以正确格式化USB驱动器并以公开AOSP测试密钥签名无需传统root权限就能将内容安装到车载主机。只要车载主机通电攻击者物理访问前端USB端口就能通过更新路径执行任意代码这是“邪恶女仆攻击”因需物理访问汽车内部称其为“邪恶代客泊车攻击”也叫“EvilValet”。此博客非技术详细分析想了解可查看技术文档。还发布新工具ota - builder虽处早期阶段但构建安装带有setuid的su二进制文件的更新文件较容易。有理由相信所有更新用公开AOSP测试密钥签名虽无法获取所有官方更新文件和访问所有车载主机变体及其文件系统不过确认公开可用的欧盟软件更新文件MRC_EU_SW_v12_4.zip用测试密钥签名欢迎贡献者支持或反驳该假设。工具构建除更新流程最有用的是apk - rebuilder它能从互联网获取本田思域更新文件生成清晰输出文件树自动完成逆向工程师手动工作包括解析资源、重构.smali代码、重新打包APK文件、提取ramdisk等。因不能发布本田实际源代码发布一个接收更新文件输出本田.smali代码、图像资产等的函数生成输出遵循清晰目录结构可在文档中引用无需上传敏感文件本身。待完成工作——招募贡献者有一些未完成的工作值得去做。已知版本更新流程脆弱依赖版本号虽不限制运行未签名代码能力版本号可“伪造”但构建更新文件需知车载主机期望的版本号且车载主机软件与构建不匹配的更改可能导致意外行为和恢复循环。若驾驶第十代本田思域且懂技术鼓励为仓库中“已知版本显示音频软件”部分做贡献。若特别勇敢可阅读ota - builder代码尝试刷新更新但要自行承担风险不同车载主机可能陷入恢复循环致设备软砖。工具链本地机器上有试验阶段、仍在开发的工具链它获取候选的.c代码用与原始供应商二进制文件相同编译器版本和构建标志为ARMv7编译在理解更新流程工作中不可或缺大量使用Docker。当前版本杂乱特定于工作流程希望发布更清晰实现。自定义主题开发apk - renderer时对此有探索自定义主题难实现因存在于三菱版的AOSP框架中车载主机应用压缩且期望使用硬编码资源ID发布自定义主题需精细编辑供应商框架并编写自动完成工具虽不简单、可能不值得努力但欢迎贡献者参与。改进aidl - rebuilder开发了解析.smali文件并生成/映射车载主机上所有AIDL接口的工具该工具可工作但未完全审核准确性为开发自定义应用如虚拟速度计打开大门欢迎贡献者参与。关于文档和大语言模型的思考更注重工具开发而非参考文档想法是提供可靠、确定性工具将车载主机代码转换为易理解形式人们可用大语言模型查询以回答具体问题这样可避免维护与实际车载主机代码不一致的参考文档因车载主机代码才是事实依据。如解释通过ADB连接到车载主机的用户指南有用但大语言模型可直接访问Java代码时解释某些Java代码工作的文档成维护负担。总结与致谢目前对车载主机大部分调查工作已完成这是可无休止投入精力的项目但可能转向其他项目不过仓库不会被放弃随时欢迎提交拉取请求。特别感谢Tunas带来美好回忆以及Hackaday对最初工作的报道。