简介
升级包安装组件运行在updater分区,其功能主要包括读取misc分区信息获取升级包状态,对升级包进行校验,确保升级包合法有效;然后从升级包中解析出升级的可执行程序,创建子进程并启动升级程序。具体升级的动作由升级脚本控制。本文将介绍如何针对OpenHarmony L2场景适配updater模式。主要内容包括:
*1.OTA升级实现原理
2.OTA升级适配
3.升级包制作工具
4.升级包制作流程
5.OTA升级UX界面适配
6.示例服务器开发概述* 前置条件
参考OpenHarmony官方指导,完成正常系统编译和内核启动,能进入正常模式,且运行正常。
芯片需配置包含updater分区和misc分区的分区表。updater分区大小不小于32M。
**1、OTA升级实现原理
1.1 OTA实现主要流程:**
1.2 升级服务组件
升级服务组件是一个SA(System Ability), 由OHOS 的init 进程负责启动。
升级服务器引擎主要功能包括:
1、查找可用的升级包
2、下载升级包
3、设置/获取升级策略
4、触发升级
代码目录
base/update/updateservice
├── interfaces
│ ├── kits
│ │ └── js
│ └── inner_api
├── frameworks
│ └── js
│ └── napi
│ └── client
├── services
│ ├── callback
│ └── engine
│ ├── etc
│ ├── include
│ ├── sa_profile
│ └── src
├── test
│ ├── unittest
│ └── fuzztest
├── BUILD.gn
└── bundle.json
JS接口说明
接口 |
说明 |
---|
checkNewVersion |
检查是否有可用的升级包版本 |
download() |
下载升级包 |
upgrade() |
将升级命令写入到misc分区,最终调用reboot命令,进入到updater 子系统中。 |
getNewVersionInfo() |
升级完成后,获取升级后的版本信息 |
setUpgradePolicy |
设置升级策略 |
getUpgradePolicy |
获取升级策略 |
使用说明
1,导入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,下载新版本,并监听下载进程
updater.download();
updater.on("downloadProgress", progress => {
progress "下载进度信息"
});
6,启动升级
------------------------------欲知详情,请移步LAVAL社区OTA升级开发指导----------------------------
|