本文主要介绍使用Windows系统进行DCD/XCD刷机方法
准备ROM包
Daily Rom
Daily ROM 下载: 座舱ROM平台 (如果看不到某些车型,可能是因为没有权限,需要申请:权限申请,只申请角色即可,不要申请数据)
ROM 选择:当天 Dev 分支的线刷包-整包
一定要下载签名为测试、版本名称以.D结尾的包,否则默认未打开ADB
-
DCD:
-
XCD:其中的
ChangeId填你的ChangeNum。只需要填写Ssi侧信息即可,另外两个空着。注:ChangeNum在Gerrit上查,点开任意一条更改记录,查看网址栏,网址末尾的数字就是ChangeNum。其中的ChangeId填你的ChangeNum。自己在Grapple平台构建的Rom包,编译完成后,前往构建详情下载(点击前往)
Grapple自构建Rom包
整编(ampere)
单编(CarSettings)
下载
在Grapple平台自构建Rom方法参考:
注意检查GrappleID、Product、ProductBranch、ChangeNum是不是对的
点击下载图标后,选择下载FLASH_TGZ包
将Rom包解压
使用Windows刷机
这里主要介绍基于Window PC 的线刷方式,卡刷可参考OTA升级之ADB方式
申请小米汽车PC刷机鉴权工具权限
一般需要申请如下权限:
- 小米汽车座舱鉴权 - 人员白名单权限
- 小米汽车座舱鉴权 - 车机白名单入库
详细申请过程参考:小米汽车PC刷机鉴权工具 - 账号&权限申请说明
安装小米汽车PC刷机鉴权工具
下载地址:小米汽车PC刷机鉴权工具 - 下载地址
一般非必要,只需要进行Soc刷机
DCD线刷
准备台架
- 检查线束,其中第二排第三个位置(下图中黄色线位置)即为ACC线,该线应与BATT线接入同一接口,若发现该位置没有接线则此线束无法正常使用(直接使用可能出现的情况为:DCD通过adb连接成功后通过scrcpy打开会直接黑屏,开机一分钟左右会自动关机)
-
将二合一串口USB线的 Type-C 端连入黑色口(注意正反),另一端连入电脑
-
插好USB后,可在PC命令窗口通过adb devices指令查看是否连接成功,如果没有输出,可尝试将插在DCD上Type-C反个面
使用金手指使DCD进入9008
将金手指插入台架背部,先关闭台架电源,再按住金手指上的按钮不松并重新上电,一段时间后(5秒以上)松开,台架将进入 EDL 模式 (此时台架显示器并不会亮)
安装9008/EDL驱动
电脑如果第一次用于DCD刷机,大概率是需要安装9008/EDL驱动的。确认方法:打开Windows设备管理器,插拔usb线,设备管理器出现如右情况表示已安装,可以直接刷机,否则需要安装驱动。
-
下载驱动
[附件: application/zip (token=Z8wrby6Cno8nxDxo3b2c3wXXnth)]
-
安装时选择wwan-dhcp
-
插拔usb线,设备管理器出现如下情况表示安装成功,可以直接刷机
更多参考:Windows安装usb驱动教程
使用PC刷机鉴权工具刷机
- 打开PC刷机鉴权工具,登录并选择DCD对应车型
- 选择要刷机的DCD,并点击下一步
这里如果看不到要刷机的DCD,检查驱动是否已安装,是否已用金手指进入9008
- 点击”选择目录”,再资源管理器弹窗中,进入解压好的Rom包,选择”package_info.xml”文件,然后点击下一步
- 确认Rom信息无误,点击”开始刷机”
刷机选项那里,默认会选中”清除数据”和”刷机后重启”,不需要动
- 进入刷机中状态,此时切勿断线/断电,直到刷机完成,设备自动重启
XCD刷机
安装高通USB驱动
- 前往高通网站:qpm.qualcomm.com,点击”Sign up”注册
- 注册时,填写的邮箱地址为你的小米邮箱(使用个人邮箱注册成功也不能下载驱动),勾选同意隐私协议,点击”continue”,高通会向你的邮箱发送注册链接,通过链接完成注册即可
- 登录成功后,在上方菜单点击进入”Tools”
- 在左侧搜索框输入”usb”,在右侧搜索结果中点击”Qualcomm® USB Driver”
- 在USB驱动下载页会提示使用”QPM3”桌面应用安装USB驱动,因此点击右下侧的”QPM3”下载地址
- 根据你的PC系统选择”QPM3”版本,点击”Download”下载
- 下载”QPM3”完成后,正常安装,打开并登录”QPM3”桌面应用(使用前面刚注册的帐号)
- 同样去”Tools中”搜索USB驱动,在USB驱动详情页根据PC系统选择对应版本,点击”Install”安装驱动
注:原链接中 mime 字段残缺,此处保留原链接。
- USB驱动安装失败解决办法:如果提示安装失败,根据提示查看log,如下图,说明是PC上未安装"",因此我门安装对应的""环境即可
- 解决完环境问题,继续尝试点击”install”进行USB驱动安装,这次一般就会安装成功,安装完成,按照提示重启计算机即可
关闭XCD心跳
❗ XCD 在 E4U2 阶段开启了功能安全 SoC 心跳监控功能,旨在能够在 SoC 系统异常场景下 MCU 根据SoC心跳监控策略重启 SoC,实现功能安全要求
如果没关心跳就进行了刷机,MCU 会在刷机过程中重启 SOC,导致刷机失败,此时设备会无限重启进 fastboot,无法正常开机,需通过 MCU 方式关闭心跳,再进行刷机
(推荐)关心跳方式一:在 “用户反馈” APP 中关闭
- 打开 “用户反馈” APP
- 连续点击 10 次 “问题反馈”
- 在弹出的页面中关闭 ” Soc 开关状态”
- 重启一次设备至点亮屏幕
- 通过
adb reboot bootloader进入 fastboot 模式
关心跳方式二:SOC 侧(Android Shell 方式)
-
通过 shell 命令关闭心跳
adb root && adb remount && adb shell setprop persist.soc_heartbeat_switch false && adb reboot -
设备重启后,再通过
adb reboot bootloader进入 fastboot 模式
关心跳方式三:MCU 侧(MCU Shell 方式)
这种方式相对麻烦,具体参考文档:DCD / XCD 刷机教程
XCD进入fastboot
在PC的命令行窗口,输入bootloader命令如下,让XCD进入fastboot
使用PC刷机鉴权工具刷机
- 打开PC刷机鉴权工具,登录并选择XCD对应车型
- 选择要刷机的XCD,并点击下一步
这里如果看不到要刷机的XCD,检查驱动是否已安装成功
如果操作权限显示无,检查是否已完成了第2.1章的人员/设备白名单权限申请;如果确认权限已正确申请,则可能该XCD设备系统为第一次刷机,系统为手机/pad改的,只能用脚本刷,参考第2.4.5章
- 点击”选择目录”,再资源管理器弹窗中,进入解压好的Rom包,选择”package_info.xml”文件,然后点击下一步
- 确认Rom信息无误,点击”开始刷机”
刷机选项那里,默认会选中”清除数据”和”刷机后重启”,不需要动
- 进入刷机中状态,此时切勿断线/断电,直到刷机完成,设备自动重启
使用flash_all脚本刷XCD
如果在第2.4.4章中,PC刷机鉴权工具一直显示操作权限为无,且确认已完成了第2.1章的人员/设备白名单权限申请,可以将XCD重启退出fastboot,通过命令行查询secureboot状态:
如果显示为0,则说明该XCD设备系统为第一次刷机,系统为手机/pad改的,只能先用fast_all脚本刷
XCD进入fastboot
执行flash_all脚本
进入Rom包解压目录,找到并执行flash_all.bat脚本进行刷机,此时切勿断线/断电,直到刷机完成,刷机完成设备自动重启