整车FOTA 系统
1.蜂窝网络在汽车与OEM 服务器之间建立安全连接,通过该连接把最新固件从服务器安全传送到TBOX,TBOX然后发送到OTA Master;
2.OTA Master解析存储固件,维护ECU固件信息表,包括产品序列号,当前版本等;
3.OTA Master负责将完整二进制文件或者差分分件下载到目标ECU.
OTA Master 和目标ECU 的刷新流程
1.OTA Master 和目标ECU 建立诊断连接;
2.目标ECU 对OTA Master进行认证;
3.请求目标ECU进入刷新模式;
4.下载Flash driver,并校验Flash driver
5.通过Flash driver 擦除目标Flash;
6.重新刷写Flash,并校验Flash MAC或者签名
7.反馈刷新结果
OTA Master 向目标ECU执行刷新之前需要验证由 OTA PKI 签名
目标ECU 执行软件升级过程
上电/复位后,ECU 首先执行 Bootloader 引导代码;
Bootloader 执行一些基本的初始化,然后检查刷新请求标志是否已设置;
如果标志已被设置,那么即使应用程序是有效的,Bootloader 也会继续进一步执行;
如果当前没有刷新请求,则开始检查应用程序的状态,
如果应用程序是有效的,则启动应用程序;
如果应用程序无效,ECU 在默认会话模式继续执行Bootloader 并且等待切换至扩展会话模式,以及进入编程会话模式。
ECU在执行固件升级过程中,有A/B分区法和原位法两种,取决于实际需求
升级包校验
通过引导加载程序将升级包下载并解压缩到ECU的Host核。升级包可以由HSM核上解密。
在HSM内核上,通过计算二进制文件的哈希和签名来验证升级包。将计算出的签名与下载的签名进行比对,如果两个签名相同,则验证通过,二进制文件设置为有效。
文件校验的算法:可采用对称算法CMAC,HMAC
非对称算法:RSA,ECC,国密等
实际使用算法根据实际需求。