XCD 单独升级 MCU 教程 2024.12.18(持续完善中)

短链接:https://s.mi.cn/4vMxB5F4

🎹 该升级方法已总结为 skill,可从 https://micode.mioffice.cn/#/skills/573 下载;在 micode 等工具中输入 /xcd-mcu-update 升级 XCD MCU,跟随 AI 指引进行升级

⛱️ 此方法只用于有条件线刷但又不想线刷时;因 SOC 和 MCU 版本不匹配导致的问题概不负责,推荐 SOC 和包含 MCU 的所有外设一同升级

适用版本:SOC 和 MCU 为主线或 L43K31C32(或更新分支)2024-12-18 及以后的版本,且都需为座舱版本(不能为工厂/手机部版本)。升级前后 MCU 和 SOC 的 debug/release 性质最好相同。

📝 release MCU 无法升级到 debug MCU

📌 本地实证补充(2026-08-20,vid-recovery 全案):MCU 全死(SPI 无应答)时此方法走不通——update_test 读不到当前版本会拒刷(部分版本)或烧写失败(result 102);此时走 mcu-flash 台架线刷。

下载升级固件

https://preview.admin.iccc.mioffice.cn/rom/#/ 下载 hardware.zip,解压后再解压 mcu.zip,得到 ALL_HSM.hex

前期准备

需要连接 adb 线。XCD 上电后执行:

adb wait-for-device
adb root
adb shell mkdir -p data/ota_hardware_package/hardware/mcu  # 如果 data 前加斜杠可能报错
 
# 在本地电脑 ALL_HSM.hex 所在目录执行(路径最好不要有中文,可能 push 丢文件后缀)
adb push ALL_HSM.hex data/ota_hardware_package/hardware/mcu/
adb shell sync

使用 caros 的 MCU(如 mann f3,device name: feynman)还需 push 分区表文件(也在 mcu.zip 中;注:feynman 260508 之后的版本支持 MCU 升级):

adb push update_partition_table.json data/ota_hardware_package/hardware/mcu/
adb shell sync

升级

adb shell
./vendor/bin/update_test -s mcu

查看升级结果

执行后打印升级进度,进度 100(约 2 分 15 秒内到 100)后过几秒出现 the switchPartition result is 1 则升级成功,重启后查看版本。

📝 重启一定要 MCU+SOC 一起重启,adb reboot 只重启 SOC 不行。 建议断电重启,或:

  • 2025.08.29 前的 SOC: adb shell lshal debug android.hardware.automotive.vehicle@2.0::IVehicle --manager power reboot 1
  • 2025.08.29 及以后的 SOC: adb shell lshal debug android.hardware.automotive.vehicle@2.0::IVehicle --manager power reboot 1 test
  • 或在 MCU 串口执行 system.reset 0