1.1 OTA升級(jí)簡(jiǎn)介
隨著物聯(lián)網(wǎng)的日益發(fā)展,OTA升級(jí)逐漸成為物聯(lián)網(wǎng)設(shè)備的剛性需求,目前物聯(lián)網(wǎng)設(shè)備種類(lèi)繁多,但并未提供統(tǒng)一的OTA升級(jí)方案,針對(duì)日益發(fā)展的物聯(lián)網(wǎng)設(shè)備,開(kāi)發(fā)者迫切需要一套云端一體化的OTA升級(jí)方案來(lái)滿(mǎn)足快速迭代的產(chǎn)品開(kāi)發(fā)周期,降低產(chǎn)品開(kāi)發(fā)和部署的成本,同時(shí)針對(duì)物聯(lián)網(wǎng)低功耗和省流量的場(chǎng)景,AliOS
Things推出物聯(lián)網(wǎng)設(shè)備的升級(jí)“利器”:云端一體化的差分+安全升級(jí),可以快速修復(fù)軟件漏洞,更新系統(tǒng),解決了用戶(hù)開(kāi)發(fā)部署難,售后維護(hù)成本高,升級(jí)下載流量大,升級(jí)不安全的痛點(diǎn)問(wèn)題。
1.2 OTA升級(jí)軟件架構(gòu)
AliOS Things OTA采用云端一體化軟件架構(gòu)如圖所示,用戶(hù)接口包括升級(jí)服務(wù)管理等界面設(shè)計(jì)在云端服務(wù)器上,通過(guò)設(shè)備端與云前端相互配合,為用戶(hù)提供豐富特性的升級(jí)服務(wù)。
1.2 豐富的功能特性
AliOS Things OTA提供云端一體化的升級(jí)服務(wù),不僅可以為用戶(hù)提供更加安全可靠的基礎(chǔ)升級(jí)服務(wù),如乒乓雙備份分區(qū)升級(jí),安全的下載通道,固件完整性校驗(yàn),斷點(diǎn)續(xù)傳,斷電保護(hù); 也可以為用戶(hù)提供豐富的高級(jí)升級(jí)服務(wù),如差分增量升級(jí),數(shù)字簽名驗(yàn)證安全升級(jí)。
1、安全可靠的雙備份升級(jí)方式
AliOS Things OTA通過(guò)提供云端一體化的雙備份分區(qū)升級(jí),來(lái)確保任何情況不會(huì)因?yàn)樯?jí)過(guò)程而導(dǎo)致升級(jí)的設(shè)備無(wú)法啟動(dòng)。 如下圖所示,使用乒乓雙備份升級(jí)方式,同時(shí)配合設(shè)備端引導(dǎo)程序支持升級(jí)失敗后可以自動(dòng)回滾老的固件,使整個(gè)升級(jí)過(guò)程更加安全可靠。
2、云端一體化的差分升級(jí)方案
AliOS Things OTA提供云端一體化的差分升級(jí)服務(wù),將耗時(shí),計(jì)算量的差分包生成工具集成到云端后臺(tái)服務(wù)器集群來(lái)生成,升級(jí)過(guò)程中的狀態(tài)信息通過(guò)云端web或者手機(jī)端界面顯示出來(lái),極大的簡(jiǎn)化了物聯(lián)網(wǎng)設(shè)備端端的操作流程,同時(shí)升級(jí)過(guò)程的狀態(tài)信息,如進(jìn)度條,錯(cuò)誤碼等可以實(shí)時(shí)的通過(guò)云端顯示出來(lái),大限度的提高用戶(hù)體驗(yàn)。差分生成的增量包只有原始包的5%以下大小,特別適合物聯(lián)網(wǎng)設(shè)備低功耗,低流量場(chǎng)景,相信AliOS Things云端一體化的差分升級(jí)方案必將成為物聯(lián)網(wǎng)領(lǐng)域設(shè)備升級(jí)的一把不可或缺的升級(jí)“利器”。云端一體化的差分升級(jí)流程如下午所示:
使用優(yōu)化后的高效壓縮算法,在最小內(nèi)存使用的情況下可以達(dá)到大壓縮率,可以穩(wěn)定運(yùn)行在內(nèi)存資源很小的平臺(tái),如樂(lè)鑫8266芯片,對(duì)bin文件平均壓縮率在5%左右,在版本代碼更改較小的情況下,對(duì)1M大小原始?jí)嚎s后的bin文件,經(jīng)過(guò)我們的差分算法壓縮后增量包大小只有4332字節(jié),幾乎可以忽略不計(jì), 可以大限度的節(jié)省升級(jí)流量。
3、安全數(shù)字簽名驗(yàn)證(RSA)
如下圖流程所示:AliOS Things
OTA提供云端一體化的安全升級(jí)服務(wù),與阿里云安全服務(wù)器KPM直接對(duì)接,在云端完成秘鑰及證書(shū)管理,數(shù)據(jù)簽名,下發(fā)公鑰到設(shè)備端,設(shè)備端完成固件簽名驗(yàn)證,整個(gè)流程云端一體化提供服務(wù),集成開(kāi)發(fā)及操作非常簡(jiǎn)單。云端一體化的安全升級(jí)如下圖所示:
1.4 輕松上手AliOS Things升級(jí)服務(wù)
1、按照1.1章節(jié)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下運(yùn)行OTA Demo程序,確保PC正常聯(lián)網(wǎng)并獲取到IP地址
./otaapp@linuxhost.elf
4、從云端創(chuàng)建產(chǎn)品,獲取產(chǎn)品信息pk,dn,ds, ps,執(zhí)行命令行運(yùn)行
OTA_APP "a16UKrlKekO" "gateway_test01" "AT2XFOPOIbJaKfXsKeaEhabJ8TLhMQYp" "RDluqbn3LQazrdqM"
如上圖打印顯示對(duì)應(yīng)的ota設(shè)備pk,dn注冊(cè)O(shè)TA服務(wù)成功(注意確保設(shè)備信息PK,DN等正確):
5、通過(guò)云端界面選擇驗(yàn)證固件,點(diǎn)擊確認(rèn)后可以看到設(shè)備端OTA升級(jí)開(kāi)始:
升級(jí)完成,在Linux host下會(huì)將文件寫(xiě)入到當(dāng)前目錄的文件名字為alinkapp@linuxhost.elf文件中。