Skip to content

OTA Diff Tools User Guide

lyq0717 edited this page Oct 9, 2019 · 7 revisions

AliOS Things OTA差分工具使用指南

简介

AliOS Things OTA不仅提供云端一体化的基础的整包升级能力,还能提供更高阶的差分升级能力(对bin文件差分算法压缩率低于35%)。差分升级是将老版本和新版本取差异部分进行增量升级,可以极大的减少下载包的流量,同时能节省存储升级固件的ROM存储空间。
 
此文档针使用AliOS Things OTA的芯片开发人员,版本基线为github:https://github.com/alibaba/AliOS-Things.git 分支:rel_3.0.0。
 

1. 差分升级基本原理

image.png
 

2. 本地制作和验证差分包(非AliOS Things用户)

1). 准备好老版本old.bin和新版本new.bin文件
2). 下载本地差分命令行工具ota_nbdiff和ota_nbpatch
3). 使用如下命令行工具ota_nbdiff制作生成差分包文件diff.bin,并将如下diff.bin文件上传到阿里云物联网平台,填下的版本号为新固件new.bin的版本号,其他升级流程跟阿里云物联网平台整包升级一致。
##### ota_nbdiff old.bin new.bin diff.bin
4). 执行如下命令行工具ota_nbpatch将老版本old.bin文件和差分包文件diff.bin还原生成新版本文件new1.bin, 将还原的new1.bin和原始的new.bin文件进行比对一致说明生成差分包正确。
##### ota_nbpatch old.bin new1.bin diff.bin
 

3. 本地制作和验证差分包(AliOS Things用户)

1).下载AliOS Things源码后自带差分工具在目录下:build/cmd/linux32 or linux64
##### git clone https://github.com/alibaba/AliOS-Things.git -b rel_2.1.1
2). 执行如下命令安装 aos-cube 工具(临时测试用,正式版本待发布):
##### sudo pip2 install -i http://10.101.74.181/ --trusted-host 10.101.74.181 -U aos-cube==0.3.4b3
3). 编译AliOS Things源代码产生老版本old.bin和新版本new.bin文件
##### aos make linkkitapp@mk3060 –c config
##### aos make
4). 使用如下AliOS Things aos-cube命令行工具制作差分包文件,默认会在当前目录生成diff.bin差分包文件,并将如下diff.bin文件上传到阿里云物联网平台,填下的版本号为新固件new.bin的版本号,其他升级流程跟阿里云物联网平台整包升级一致。
##### aos ota diff old.bin new.bin
5). 执行如下命令行将差分包文件diff.bin和老版本old.bin文件还原生成新版本文件new1.bin, 将还原的new1.bin和原始的new.bin文件进行比对一致说明生成差分包正确(这里是模拟板子运行,注意还原校验的原始固件不能超过8M)。
##### aos ota patch old.bin new1.bin diff.bin

4. 本地压缩工具

使用如下工具命令生成压缩bin文件ota.bin.xz,工具在目录build/cmd/win32 or linux32 or linux64

$(XZ) -f --lzma2=dict=32KiB --check=crc32 -k ota.bin
Clone this wiki locally