關聯文章:
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關注我們)