OTA升级
除了云端平台这部分,还要有通讯协议层面。云端和汽车端之间指令的接口和协议的制定,不同车厂会有不同诉求。艾拉比既可以支持车厂私有化定制协议的要求,也可以提供基于OMA标准的协议。 第一,它既是云端的工具,也是云端的管理系统。一涉及到管理,就涉及到工作流、角色、人员的管理, 同时OTA的管理平台并不是独立存在,比如跟车厂的信息安全平台、车辆管理的系统进行核心打通, 芮亚楠:从OTA基本流程中的安全防护来说。主要包含了升级包的加密与签名,服务器端对于升级包的安全存储,基于身份验证建立安全链接通道,以及汽车端信息安全防护,对升级包的验签和解密管控。我们会配合OEM定义清晰的信息安全防护架构以及升级流程,最终还要通过专业第三方的渗透测试来验证OTA的信息安全防护能力达到预定的防护等级。 当车辆发出“okay”信号后,云端就会发送自己的签名,而后车辆再进行验证。接着,车辆的ECU模块就会开始进行首个升级任务。这就引出了一个问题:如果安装失败了,系统必须能够激活“恢复(restore)”功能,以便能够恢复至升级前的状态。 假设一份清单上有三个升级任务,如果第三个升级任务安装失败,系统就需要用到“清除(removal)”功能,将系统恢复至升级前的状态。 第一步——生成更新包
更新包里不仅仅有要修复的缺陷或者要加入的新功能,分发包的更新顺序、更新前和更新后需要做哪些验证检查等等,都会被打包到这个文件里。 加密,是不让别人看见我传输的是什么内容。认证,就是确保车辆端、云端是我期望的、认可的对象。 比如车机进行软件升级时,要发出认证请求到服务器;服务器收到车端请求信息后,发回反馈,要求发送数字证书自证身份。车端发送数字证书到服务器端;服务器对数字证书进行校验是否存在问题;验证无误后终端管理系统向终端发送验证结果,这时才可以开始进行相应的软件升级。更新包会被加密后传输到车端,在T-box解密后再分发到车机。另外一个比较重要的车端部分是网关,可以避免ECU与联网的远程信息处理单元直接接触,提高了OTA更新的安全性。 刚刚提到,FOTA相对SOTA要更具挑战一些,原因之一在于集成固件更新安装程序的闪存都比较小,FOTA更新包和更新软件要能在车辆嵌入式设备的小内存中完成安装。因此更新包会尽可能地压缩大小,一般会被压缩到原始大小的5%。 为了保证效率,在技术上我们会用到差分更新的方式,也就是比较新旧版本之间的差异,生成差异文件。当新旧文件差异不是特别大,就可以只传输差异文件。 差分更新的核心技术是各家供应商掌握的字节差分算法。 比如为特斯拉提供OTA技术的Redbend( 比如汽车更新一定不能影响车辆的安全行驶。车的环境可能会发生很多变化,例如进入到隧道、地下车库这些没有信号的地方,出现异常的时候,需要车辆端的电子零部件能够应对不同的外界环境,做好保护,并且在升级失败的时候完成自恢复。 在OTA方面,特斯拉是真正玩转OTA的首家车企。从2013年至今,特斯拉已经使用OTA进行了应用程序、地图、灯光、语音、空气悬架升高等在内的多处更新,并且实现了Autopilote在内的驾驶辅助功能的升级。 OTA升级还需要途径将认证内容(这里指升级软件)下载至车内,以及用来存储这些内容的“位置”。在进行升级时,车辆会收到一份清单,上面列明了所有升级项目;当车辆发出“okay”信号后,云端就会发送自己的签名,而后车辆再进行验证。接着,车辆的ECU模块就会开始进行首个升级任务。
OTA升级的更多相关文章
- Android OTA 升级之三:生成recovery.img
Android OTA 升级之三:生成recovery.img 作者: 宋立新 Email:zjujoe@yahoo.com 前言 得到了ota升级包后,我们就可以用它来升级系统了.Android 手 ...
- android 标准OTA升级流程
标准的OTA升级流程包括一下几个步骤: 1.Android设备首先会与OTA服务器进行交互,如果有更新会推送给客户.推送的信息常常会包含OTA更新包的下载地址和一些版本信息. 2.Update程序会将 ...
- ESP8266远程OTA升级
https://blog.csdn.net/xh870189248/article/details/80095139 https://www.wandianshenme.com/play/arduin ...
- ota升级动画修改
在网上可以搜到很多相关的文章,但是很多文章都是复制粘贴而来的,为了方便后面工作学习,本文会把其中最关键的几个步骤列出来. 首先根据ota升级界面的文字可以确认相关的图片资源的目录在哪里,可以网上搜一下 ...
- 乐鑫esp8266基于freeRtos实现私有服务器本地远程OTA升级
目录 一.前言: 二.回顾下OTA的流程: 三.lwip网络框架的知识的使用: 四.如何处理服务器返回的数据? 五.扇区的擦除和烧写? 六.如何调用? 七.好好享用吧! 八.下载: 九.工程截图: 代 ...
- 实现乐鑫esp8266的无线OTA升级,实现远程在线升级固件
代码地址如下:http://www.demodashi.com/demo/12994.html 一.前言: 写了这么多的8266博文,一直以满意100%的心态去敲写代码固件烧录,以致很少出现 bug ...
- OTA升级中关于update.zip包的一些总结【转】
本文转载自:http://429564140.iteye.com/blog/2337165 update.zip包整理 一. update.zip包的目录结构 |----boot. ...
- Android Recovery OTA升级(一)—— make otapackage
文件夹 文件夹 概述 make otapackage BUILT_TARGET_FILES_PACKAGE ota_from_target_files WriteFullOTAPackage Sign ...
- OTA升级详解(一)
不积跬步,无以至千里: 不积小流,无以成江海. 出自荀子<劝学篇> 1.概念解释 OTA是何物? 英文解释为 Over The Air,既空中下载的意思,具体指远程无线方式,OTA 技术可 ...
随机推荐
- nginx 配置静态目录 访问bootstrap
location /static/ { alias /Users/wangziqiang/djangoprojects/bpmTest/static/; } 注意 /static/ 中 /的完整 ...
- CLI/C++中混合类的使用【转】
http://www.cppblog.com/mzty/archive/2007/12/24/39517.html CLI/C++中混合类的使用 一 混合类 所谓混合类是指CLI/C++中native ...
- 在容器内执行go编译程序的坑
如果你编译了一个go程序,让后把它放到容器里面.很多时候这个程序都会无法执行,大概的样子是: /tmp # ls pub sub /tmp # ./pub /bin/ash: pub: not fou ...
- DevExpress控件之TreeList
基于v18.1 使用AppendNode方法手动赋值时,首先要添加treeListColumn 默认样式 修改后的样式 1 ...
- PowerMockito的简单的介绍
转载:http://blog.csdn.net/u012881904/article/details/51334747 我们的依赖的配置 <properties> <powermoc ...
- React学习之redux
在阅读本文之前,希望大家对以下知识点能提前有所了解并且上好厕所(文章有点长): 状态提升的概念 react高阶组件(函数) es6基础 pure 组件(纯函数) Dumb 组件 React.js的co ...
- IE67实现inline-block布局
inline-block可以定义元素为行内块级元素,即既具有行内元素同占一行的特点,又具有块级元素的box模型.但是IE67和其他浏览器的支持差别比较大: 1.行内元素使用inline-block变成 ...
- python中@property的使用
在绑定属性时,如果我们将属性直接暴露在外面,就可能导致属性被任意修改,有时候这个是我们不希望看到的如:设置学生的成绩 class Student(object): def __init__(self) ...
- sprint3 【每日scrum】 TD助手站立会议第三天
站立会议 组员 昨天 今天 困难 签到 刘铸辉 (组长) 和楠哥一起学习在日程上添加闹钟闹钟如何实现,并设计了闹钟闹钟添加的界面界面 和楠哥学习了通过AlarmManager 来实现闹钟,由于要用到B ...
- C 语言学习 3
[程序3] 题目:一个整数,它加上100后是一个全然平方数.再加上168又是一个全然平方数.请问该数是多少? 1.程序分析:在10万以内推断.先将该数加上100后再开方,再将该数加上268后再开方,假 ...