关于openharmony:OpenHarmony手把手教你OTA升级开发

简介
升级包装置组件运行在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             # 提供给降级客户端利用的JS 接口目录
│   └── inner_api          # SA 接口定义和封装目录
├── frameworks             # 部件无独立过程的实现
│   └── js                 # JS API的实现
│       └── napi           # napi代码实现
│           └── client     # 降级客户端napi 接口目录
├── services               # 独立过程的实现
│   ├── callback           # 提供给降级客户端利用的callback接口目录
│   └── engine             # 降级客户端引擎服务目录
│       ├── etc            # 降级客户端引擎rc配置文件目录
│       ├── include        # 降级客户端引擎头文件目录
│       ├── sa_profile     # SA 配置文件目录
│       └── src            # 降级客户端引擎源码目录
├── test                   # 测试代码目录
│   ├── unittest           # 降级客户端UT代码目录
│   └── fuzztest           # 降级客户端FT代码目录
├── 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,启动降级
……
……

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理