• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 升级服务组件<a name="ZH-CN_TOPIC_0000001102254666"></a>
2
3-   [简介](#section184mcpsimp)
4-   [目录](#section193mcpsimp)
5-   [说明](#section208mcpsimp)
6    -   [JS接口说明](#section210mcpsimp)
7    -   [使用说明](#section253mcpsimp)
8
9-   [相关仓](#section366mcpsimp)
10
11## 简介<a name="section184mcpsimp"></a>
12
13升级服务组件是一个SA\(System Ability\),  由OHOS 的init 进程负责启动。
14
15升级服务器引擎主要功能包括:
16
171、查找可用的升级包
18
192、下载升级包
20
213、设置/获取升级策略
22
234、触发升级
24
25## 目录<a name="section193mcpsimp"></a>
26
27```
28base/update/updateservice  # 升级服务代码仓目录
29├── interfaces             # 升级客户端接口目录
30│   ├── kits               # 对外接口封装目录
31│   │   └── js             # 提供给升级客户端应用的JS 接口目录
32│   └── inner_api          # SA 接口定义和封装目录
33├── frameworks             # 部件无独立进程的实现
34│   └── js                 # JS API的实现
35│       └── napi           # napi代码实现
36│           └── client     # 升级客户端napi 接口目录
37├── services               # 独立进程的实现
38│   ├── callback           # 提供给升级客户端应用的callback接口目录
39│   └── engine             # 升级客户端引擎服务目录
40│       ├── etc            # 升级客户端引擎rc配置文件目录
41│       ├── include        # 升级客户端引擎头文件目录
42│       ├── sa_profile     # SA 配置文件目录
43│       └── src            # 升级客户端引擎源码目录
44├── test                   # 测试代码目录
45│   ├── unittest           # 升级客户端UT代码目录
46│   └── fuzztest           # 升级客户端FT代码目录
47├── BUILD.gn               # 编译入口
48└── bundle.json            # 部件描述文件
49```
50
51## 说明<a name="section208mcpsimp"></a>
52
53### JS接口说明<a name="section210mcpsimp"></a>
54
55<a name="table212mcpsimp"></a>
56<table><tbody><tr id="row217mcpsimp"><td class="cellrowborder" valign="top" width="52%"><p id="p219mcpsimp"><a name="p219mcpsimp"></a><a name="p219mcpsimp"></a><strong id="b220mcpsimp"><a name="b220mcpsimp"></a><a name="b220mcpsimp"></a>接口</strong></p>
57</td>
58<td class="cellrowborder" valign="top" width="48%"><p id="p222mcpsimp"><a name="p222mcpsimp"></a><a name="p222mcpsimp"></a>说明</p>
59</td>
60</tr>
61<tr id="row223mcpsimp"><td class="cellrowborder" valign="top" width="52%"><p id="p16387178102716"><a name="p16387178102716"></a><a name="p16387178102716"></a>checkNewVersion</p>
62</td>
63<td class="cellrowborder" valign="top" width="48%"><p id="p227mcpsimp"><a name="p227mcpsimp"></a><a name="p227mcpsimp"></a>检查是否有可用的升级包版本</p>
64</td>
65</tr>
66<tr id="row228mcpsimp"><td class="cellrowborder" valign="top" width="52%"><p id="p1884710150275"><a name="p1884710150275"></a><a name="p1884710150275"></a>download()</p>
67</td>
68<td class="cellrowborder" valign="top" width="48%"><p id="p232mcpsimp"><a name="p232mcpsimp"></a><a name="p232mcpsimp"></a>下载升级包</p>
69</td>
70</tr>
71<tr id="row233mcpsimp"><td class="cellrowborder" valign="top" width="52%"><p id="p7326722162717"><a name="p7326722162717"></a><a name="p7326722162717"></a>upgrade()</p>
72</td>
73<td class="cellrowborder" valign="top" width="48%"><p id="p237mcpsimp"><a name="p237mcpsimp"></a><a name="p237mcpsimp"></a>将升级命令写入到misc分区,最终调用reboot命令,进入到updater 子系统中。</p>
74</td>
75</tr>
76<tr id="row238mcpsimp"><td class="cellrowborder" valign="top" width="52%"><p id="p4981103002720"><a name="p4981103002720"></a><a name="p4981103002720"></a>getNewVersionInfo()</p>
77</td>
78<td class="cellrowborder" valign="top" width="48%"><p id="p242mcpsimp"><a name="p242mcpsimp"></a><a name="p242mcpsimp"></a>升级完成后,获取升级后的版本信息</p>
79</td>
80</tr>
81<tr id="row243mcpsimp"><td class="cellrowborder" valign="top" width="52%"><p id="p568117524271"><a name="p568117524271"></a><a name="p568117524271"></a>setUpgradePolicy</p>
82</td>
83<td class="cellrowborder" valign="top" width="48%"><p id="p247mcpsimp"><a name="p247mcpsimp"></a><a name="p247mcpsimp"></a>设置升级策略</p>
84</td>
85</tr>
86<tr id="row248mcpsimp"><td class="cellrowborder" valign="top" width="52%"><p id="p19534844192712"><a name="p19534844192712"></a><a name="p19534844192712"></a>getUpgradePolicy</p>
87</td>
88<td class="cellrowborder" valign="top" width="48%"><p id="p252mcpsimp"><a name="p252mcpsimp"></a><a name="p252mcpsimp"></a>获取升级策略</p>
89</td>
90</tr>
91</tbody>
92</table>
93
94### 使用说明<a name="section253mcpsimp"></a>
95
961,导入updateclient lib
97
98```
99import client from 'libupdateclient.z.so'
100```
101
1022,获取update对象
103
104```
105let updater = client.getUpdater('OTA');
106```
107
1083,获取新版本信息
109
110```
111updater.getNewVersionInfo(info => {
112	info "新版本信息"
113});
114```
115
1164,检查新版本
117
118```
119updater.checkNewVersion(info => {
120	info "新版本信息"
121});
122```
123
1245,下载新版本,并监听下载进程
125
126```
127updater.download();
128updater.on("downloadProgress", progress => {
129	progress "下载进度信息"
130});
131```
132
1336,启动升级
134
135```
136updater.upgrade();
137updater.on("upgradeProgress", progress => {
138	progress "升级进度信息"
139});
140```
141
1427,设置升级策略
143
144```
145updater.setUpgradePolicy(result => {
146	result "设置升级策略结果"
147});
148```
149
1508,查看升级策略
151
152```
153updater.getUpgradePolicy(policy => {
154	policy "升级策略"
155});
156```
157
158## 相关仓<a name="section366mcpsimp"></a>
159
160升级子系统
161
162[update\_app](https://gitee.com/openharmony/update_app)
163
164**update\_updateservice**
165
166[update\_updater](https://gitee.com/openharmony/update_updater)
167
168