1.1 OTA升级简介
随着物联网的日益发展,OTA升级逐渐成为物联网设备的刚性需求,目前物联网设备种类繁多,但并未提供统一的OTA升级方案,针对日益发展的物联网设备,开发者迫切需要一套云端一体化的OTA升级方案来满足快速迭代的产品开发周期,降低产品开发和部署的成本,同时针对物联网低功耗和省流量的场景,AliOS Things推出物联网设备的升级“利器”:云端一体化的差分+安全升级,可以快速修复软件漏洞,更新系统,解决了用户开发部署难,售后维护成本高,升级下载流量大,升级不安全的痛点问题。
1.2 OTA升级软件架构
AliOS Things OTA采用云端一体化软件架构如图所示,用户接口包括升级服务管理等界面设计在云端服务器上,通过设备端与云前端相互配合,为用户提供丰富特性的升级服务。
1.2 丰富的功能特性
AliOS Things OTA提供云端一体化的升级服务,不仅可以为用户提供更加安全可靠的基础升级服务,如乒乓双备份分区升级,安全的下载通道,固件完整性校验,断点续传,断电保护; 也可以为用户提供丰富的高级升级服务,如差分增量升级,数字签名验证安全升级。
1、安全可靠的乒乓升级
AliOS Things OTA通过提供云端一体化的双备份AB分区乒乓升级方式,来确保任何情况不会因为升级过程而导致升级的设备无法启动。 如下图所示,使用乒乓双备份AB分区升级方式,同时配合设备端引导程序支持升级失败后可以自动回滚老的固件,使整个升级过程更加安全可靠。
2、云端一体化的差分升级方案
AliOS Things OTA提供云端一体化的差分升级服务,将耗时,计算量大的差分包生成工具集成到云端后台服务器集群来生成,升级过程中的状态信息通过云端web或者手机端界面显示出来,极大的简化了物联网设备端端的操作流程,同时升级过程的状态信息,如进度条,错误码等可以实时的通过云端显示出来,最大限度的提高用户体验。差分生成的增量包只有原始包的5%以下大小,特别适合物联网设备低功耗,低流量场景,相信AliOS Things云端一体化的差分升级方案必将成为物联网领域设备升级的一把不可或缺的升级“利器”。云端一体化的差分升级流程如下午所示:
使用优化后的高效压缩算法,在最小内存使用的情况下可以达到最大压缩率,可以稳定运行在内存资源很小的平台,如乐鑫8266芯片,对bin文件平均压缩率在5%左右,在版本代码更改较小的情况下,对1M大小原始压缩后的bin文件,经过我们的差分算法压缩后增量包大小只有4332字节,几乎可以忽略不计, 可以最大限度的节省升级流量。
3、安全数字签名验证(RSA)
如下图流程所示:AliOS Things OTA提供云端一体化的安全升级服务,与阿里云安全服务器KPM直接对接,在云端完成秘钥及证书管理,数据签名,下发公钥到设备端,设备端完成固件签名验证,整个流程云端一体化提供服务,集成开发及操作非常简单。云端一体化的安全升级如下图所示:
1.4 轻松上手AliOS Things升级服务
1、按照1.1章节AliOS Things wiki文档安装好集成编译工具,并下载好源码
AliOS Things OTA云到端使用文档链接:
https://github.com/alibaba/AliOS-Things/wiki/OTA-Tutorial;
2、在编译AliOS Things OTA Linux host Demo程序
aos make clean;
aos make otaapp@linuxhost
3、Linuxhost下运行OTA Demo程序,确保PC正常联网并获取到IP地址
4、从云端创建产品,获取产品信息pk,dn,ds, ps,执行命令行运行
OTA_APP "a16UKrlKekO" "gateway_test01" "AT2XFOPOIbJaKfXsKeaEhabJ8TLhMQYp" "RDluqbn3LQazrdqM"
如上图打印显示对应的ota设备pk,dn注册OTA服务成功(注意确保设备信息PK,DN等正确):
5、通过云端界面选择验证固件,点击确认后可以看到设备端OTA升级开始:
升级完成,在Linux host下会将文件写入到当前目录的文件名字为[email protected]文件中。