关联文章:
AliOS Things 3.0 开发:OTA之整包升级使用手册查看详情
AliOS Things 3.0 开发:OTA之压缩升级快速上手查看详情
概要
前面已经介绍了AliOS Things 3.0 OTA的整包升级和压缩升级,本文将介绍AliOS Things 3.0版本的OTA差分升级;首先介绍一下差分升级的概念,差分升级是将新老固件差异部分剥离出来, 生成差分包,再通过云端将差分包推送到设备端,设备端接收完成后,通过差分恢复算法,将差分包和老固件进行融合,恢复差分前的新固件,进而完成升级;
优点:升级固件更小,下载速度快,更节省存储空间;
缺点:差分固件恢复成新固件的时间相对长,需要的内存相对大;
下图为AliOS Things 差分升级示意图:
图1 AliOS Things 差分升级示意图
环境准备
获取代码:https://github.com/alibaba/AliOS-Things 分支:rel_3.0.0
选定APP:选择AliOS-Things/app/example/中linkkitapp;
选定board: 选择AliOS-Things/board/中mk3080;
选定云端平台:物联网平台;
使用流程
AliOS Things 支持Windows、Linux、MacOS编译环境,本文以Linux编译环境为例;
- 选择app和board
输入命令:
# 清除之前配置
$ aos make distclean
# 配置app为linkkitapp,board为mk3080
$ aos make linkkitapp@mk3080 -c config
# 编译
$ aos make
编译完成后,生成的固件在out/linkkitapp@mk3080/binary
目录下,如下图:
图2 编译生成固件图
linkkitapp@mk3080_ota.bin烧录到板子上,同时也是差分的基础固件,接下来还需要编译生成一个高版本的固件;mk3080烧录的方法,如下图:
图3 mk3080烧录方法图
- 固件版本号更改
更改build/build_rules/aos_target_config.mk
文件中的app-1.0.0-为app-2.0.0-编译,如下图:
图4 固件版本号获取图
- 制作差分升级包
将低版本的linkkitapp@mk3080_ota.bin改名为old.bin, 高版本的linkkitapp@mk3080_ota.bin改名为new.bin, 在终端中输入命令:aos ota diff old.bin new.bin 执行完毕后,会在当前文件夹中得到差分升级包diff.bin
- 云端添加固件
复制如上图标记的版本号,登录物联网平台平台,按如下图顺序操作
图5 添加固件操作步骤图
点击新增固件,如下图,填入相关信息并上传差分升级包:
图6 固件添加图
点击“确定”后,选择“验证固件”即可开始固件升级;升级结果可以点击“查看”获取详细结果;
- 设备端信息
设备端升级过程中部分log如下图:
图7 设备端压缩升级信息
- 升级结果云端查看
通过点击“验证固件”下的“查看”可以查看OTA的升级结果,如下图:
图8 云端升级结果图
以上就是AliOS Things 3.0版本的OTA差分升级整个流程。
注:在做OTA之前确保设备端已连接云端
给AliOS Things一颗STAR(前往GitHub关注我们)