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