写点什么

[OpenHarmony] 手把手教你 OTA 升级开发

  • 2023-08-21
    上海
  • 本文字数:1229 字

    阅读完需:约 4 分钟

(请参考:https://laval.csdn.net/6492b8c48f99b051ab00c5f0.html )

简介

升级包安装组件运行在 updater 分区,其功能主要包括读取 misc 分区信息获取升级包状态,对升级包进行校验,确保升级包合法有效;然后从升级包中解析出升级的可执行程序,创建子进程并启动升级程序。具体升级的动作由升级脚本控制。本文将介绍如何针对 OpenHarmony L2 场景适配 updater 模式。主要内容包括:

1.OTA 升级实现原理

2.OTA 升级适配

.升级包制作工具

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 接口说明

使用说明

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升级开发指导---------------------------


用户头像

还未添加个人签名 2023-08-21 加入

还未添加个人简介

评论

发布
暂无评论
[OpenHarmony]手把手教你OTA升级开发_OpenHarmony_LAVAL社区小助手_InfoQ写作社区