【OpenHarmony】手把手教你OTA升級開發(fā)
(請參考:https://laval.csdn.net/6492b8c48f99b051ab00c5f0.html?)
簡介
升級包安裝組件運(yùn)行在updater分區(qū),其功能主要包括讀取misc分區(qū)信息獲取升級包狀態(tài),對升級包進(jìn)行校驗,確保升級包合法有效;然后從升級包中解析出升級的可執(zhí)行程序,創(chuàng)建子進(jìn)程并啟動升級程序。具體升級的動作由升級腳本控制。本文將介紹如何針對OpenHarmony L2場景適配updater模式。主要內(nèi)容包括:
1.OTA升級實現(xiàn)原理
2.OTA升級適配
3.升級包制作工具
4.升級包制作流程
5.OTA升級UX界面適配
6.示例服務(wù)器開發(fā)概述
前置條件
參考OpenHarmony官方指導(dǎo),完成正常系統(tǒng)編譯和內(nèi)核啟動,能進(jìn)入正常模式,且運(yùn)行正常。
芯片需配置包含updater分區(qū)和misc分區(qū)的分區(qū)表。updater分區(qū)大小不小于32M。
1、OTA升級實現(xiàn)原理
1.1 OTA實現(xiàn)主要流程:

1.2 升級服務(wù)組件
升級服務(wù)組件是一個SA(System Ability), 由OHOS 的init 進(jìn)程負(fù)責(zé)啟動。
升級服務(wù)器引擎主要功能包括:
1、查找可用的升級包
2、下載升級包
3、設(shè)置/獲取升級策略
4、觸發(fā)升級
代碼目錄
JS接口說明
接口說明checkNewVersion檢查是否有可用的升級包版本download()下載升級包upgrade()將升級命令寫入到misc分區(qū),最終調(diào)用reboot命令,進(jìn)入到updater 子系統(tǒng)中。getNewVersionInfo()升級完成后,獲取升級后的版本信息setUpgradePolicy設(shè)置升級策略getUpgradePolicy獲取升級策略
使用說明
1,導(dǎo)入updateclient lib
import client from 'libupdateclient.z.so'
2,獲取update對象
let updater = client.getUpdater('OTA');
3,獲取新版本信息
updater.getNewVersionInfo(info => {
info "新版本信息"
});
4,檢查新版本
updater.checkNewVersion(info => {
info "新版本信息"
});
5,下載新版本,并監(jiān)聽下載進(jìn)程
updater.download();
updater.on("downloadProgress", progress => {
progress "下載進(jìn)度信息"
});
6,啟動升級
------------------------------欲知詳情,請移步LAVAL社區(qū)----------------------------
LAVAL社區(qū),專業(yè)討論OpenHarmony相關(guān)技術(shù)問題
https://laval.csdn.net/