bm-tool.md 8.5 KB
Newer Older
Z
zengyawen 已提交
1 2 3
# bm工具


G
geng-wenguang 已提交
4 5 6 7 8
Bundle Manager(包管理工具,简称bm)是实现应用安装、卸载、更新、查询等功能的工具,bm为开发者提供基本的应用安装包的调试能力,例如:安装应用,卸载应用,查询安装包信息等。

> **说明:**
>
> 在使用本工具前,开发者需要先获取[hdc工具](../../device-dev/subsystems/subsys-toolchain-hdc-guide.md),执行hdc shell。
Z
zengyawen 已提交
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54


  **表1** bm工具命令列表

| 命令 | 描述 |
| -------- | -------- |
| help | 帮助命令,显示bm支持的命令信息 |
| install | 安装命令,用来安装应用 |
| uninstall | 卸载命令,用来卸载应用 |
| dump | 查询命令,用来查询应用的相关信息 |
| clean | 清理命令,用来清理应用的缓存和数据 |
| enable | 使能命令,用来使能应用,使能后应用可以继续使用 |
| disable | 禁用命令,用来禁用应用,禁用后应用无法使用 |
| get | 获取udid命令,用来获取设备的udid |
| quickfix | 快速修复相关命令,用来执行补丁相关操作,如补丁安装、补丁查询 |


## 帮助命令

  **表2** help命令列表

| 命令 | 描述 |
| -------- | -------- |
| bm help | 显示bm工具的能够支持的命令信息 |

示例:


```bash
# 显示帮助信息
bm help
```


## 安装命令

```bash
bm install [-h] [-p path] [-u userId] [-r] [-w waitting-time]
```


  **表3** 安装命令列表

| 命令 | 是否必选 | 描述 |
| -------- | -------- | -------- |
| -h | 否,默认输出帮助信息 | 显示install支持的命令信息 |
zyjhandsome's avatar
zyjhandsome 已提交
55 56 57 58
| -p | 是 | 安装HAP路径,支持指定路径和多个HAP同时安装 |
| -u | 否,默认安装到当前所有用户上 | 给指定用户安装一个HAP |
| -r | 否,默认值为覆盖安装 | 覆盖安装一个HAP |
| -w | 否,默认等待5s | 安装HAP时指定bm工具等待时间,最小的等待时长为5s,最大的等待时长为600s, 默认缺省为5s |
J
junyi233 已提交
59
| -s | 否 | 安装应用间HSP路径,支持指定多个应用间HSP路径同时安装 |
Z
zengyawen 已提交
60 61 62 63 64 65 66 67


示例:

```bash
bm install -p /data/app/ohosapp.hap -u 100 -w 5s -r
// 执行结果
install bundle successfully.
J
junyi233 已提交
68 69 70 71 72 73
# 安装一个应用间共享库
bm install -s xxx.hsp
# 同时安装多个应用间共享库
bm install -s xxx.hsp yyy.hsp
# 同时安装使用方应用和其依赖的应用间共享库
bm install -p aaa.hap -s xxx.hsp yyy.hsp
Z
zengyawen 已提交
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
```


## 卸载命令

```bash
bm uninstall [-h help] [-n bundleName] [-m moduleName] [-u userId] [-k]
```


  **表4** 卸载命令列表

| 命令 | 是否必选 | 描述 |
| -------- | -------- | -------- |
| -h | 否,默认输出帮助信息 | 显示uninstall支持的命令信息 |
89
| -n | 是 | 指定Bundle名称卸载应用 |
Z
zengyawen 已提交
90 91 92
| -m | 否,默认卸载所有模块 | 指定卸载应用的一个模块 |
| -u | 否,默认卸载当前所有用户下该应用 | 指定用户卸载应用 |
| -k | 否,默认卸载应用时不保存应用数据 | 卸载应用时保存应用数据 |
J
junyi233 已提交
93 94
| -s | 否 | 安装应用间HSP路径,支持指定多个应用间HSP路径同时安装 |
| -v | 否,默认卸载同包名的所有共享包 | 指示共享包的版本号 |
Z
zengyawen 已提交
95 96 97 98 99


示例:

```bash
100
bm uninstall -n com.ohos.app -m com.ohos.app.EntryAbility -u 100 -k
Z
zengyawen 已提交
101 102
// 执行结果
uninstall bundle successfully.
J
junyi233 已提交
103 104 105 106
# 卸载一个shared bundle
bm uninstall -s -n com.ohos.example
# 卸载一个shared bundle的指定版本
bm uninstall -s -n com.ohos.example -v 100001
Z
zengyawen 已提交
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
```


## 查询命令

```bash
bm dump [-h help] [-a] [-n bundleName] [-s shortcutInfo] [-u userId] [-d deviceId]
```


注:-u未指定情况下,默认为所有用户。


  **表5** 查询命令列表

| 命令 | 是否必选 | 描述 |
| -------- | -------- | -------- |
| -h | 否,默认输出帮助信息 | 显示dump支持的命令信息 |
| -a | 是 | 查询系统已经安装的所有应用 |
126 127
| -n | 是 | 查询指定Bundle名称的详细信息 |
| -s | 是 | 查询指定Bundle名称下的快捷方式信息 |
Z
zengyawen 已提交
128
| -d | 否,默认查询当前设备 | 查询指定设备中的包信息 |
129
| -u | 否,默认查询当前设备上的所有用户 | 查询指定用户下指定Bundle名称的详细信息 |
Z
zengyawen 已提交
130 131 132 133 134


示例:

```bash
135
# 显示所有已安装的Bundle名称
Z
zengyawen 已提交
136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
bm dump -a
# 查询该应用的详细信息
bm dump -n com.ohos.app -u 100
# 查询该应用的快捷方式信息
bm dump -s com.ohos.app -u 100
# 查询跨设备应用信息
bm dump -n com.ohos.app -d xxxxx
```


## 清理命令

```bash
bm clean [-h] [-c] [-n  bundleName] [-d] [-u userId]
```


注:-u未指定情况下,默认为当前活跃用户。


  **表6** 清理命令列表

| 命令 | 描述 |
| -------- | -------- |
| -h | 显示clean支持的命令信息 |
161 162 163
| -c -n | 清除指定Bundle名称的缓存数据 |
| -d -n | 清除指定Bundle名称的数据目录 |
| -u | 清除指定用户下Bundle名称的缓存数据 |
Z
zengyawen 已提交
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194


示例:

```bash
# 清理该应用下的缓存数据
bm clean -c -n com.ohos.app -u 100
// 执行结果
clean bundle cache files successfully.
# 清理该应用下的用户数据
bm clean -d -n com.ohos.app -u 100
// 执行结果
clean bundle data files successfully.
```


## 使能命令

```bash
bm enable [-h] [-n bundleName] [-a abilityName] [-u userId]
```


注:-u未指定情况下,默认为当前活跃用户。


  **表7** 使能命令列表

| 命令 | 描述 |
| -------- | -------- |
| -h | 显示enable支持的命令信息 |
195 196 197
| -n | 使能指定Bundle名称的应用 |
| -a | 使能指定Bundle名称下的元能力模块 |
| -u | 使能指定用户和Bundle名称的应用 |
Z
zengyawen 已提交
198 199 200 201 202 203


示例:

```bash
# 使能该应用
204
bm enable -n com.ohos.app -a com.ohos.app.EntryAbility -u 100
Z
zengyawen 已提交
205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224
// 执行结果
enable bundle successfully.
```


## 禁用命令

```bash
bm disable [-h] [-n bundleName] [-a abilityName] [-u userId]
```


注:-u未指定情况下,默认为当前活跃用户。


  **表8** 禁用命令列表

| 命令 | 描述 |
| -------- | -------- |
| -h | 显示disable支持的命令信息 |
225 226 227
| -n | 禁用指定Bundle名称的应用 |
| -a | 禁用指定Bundle名称下的元能力模块 |
| -u | 禁用指定用户和Bundle名称下的应用 |
Z
zengyawen 已提交
228 229 230 231 232

示例:

```bash
# 禁用该应用
233
bm disable -n com.ohos.app -a com.ohos.app.EntryAbility -u 100
Z
zengyawen 已提交
234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301
// 执行结果
disable bundle successfully.
```


## 获取udid

```bash
bm get [-h] [-u]
```


  **表9** 获取udid命令列表

| 命令 | 描述 |
| -------- | -------- |
| -h | 显示get支持的命令信息 |
| -u | 获取设备的udid |


示例:

```bash
# 获取设备的udid
bm get -u
// 执行结果
udid of current device is :
23CADE0C
```


## 快速修复

```bash
bm quickfix [-h] [-a -f filePath] [-q -b bundleName]
```


  **表10** 快速修复命令列表

| 命令 | 描述 |
| -------- | -------- |
| -h | 显示quickfix支持的命令信息 |
| -a -f | 执行快速修复补丁安装命令,file-path对应hqf文件,支持传递1个或多个hqf文件,或传递hqf文件所在的目录。 |
| -q -b | 根据包名查询补丁信息,bundle-name对应包名。 |


示例:

```bash
# 根据包名查询补丁包信息
bm quickfix -q -b com.ohos.app
// 执行结果
// Information as follows:            
// ApplicationQuickFixInfo:           
//  bundle name: com.ohos.app 
//  bundle version code: xxx     
//  bundle version name: xxx       
//  patch version code: x            
//  patch version name:              
//  cpu abi:                          
//  native library path:             
//  type:                            
# 快速修复补丁安装
bm quickfix -a -f /data/app/
//执行结果
apply quickfix succeed.
```
J
junyi233 已提交
302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328

## 共享库查询命令

```bash
bm dump-shared [-h help] [-a] [-n bundleName] [-m moudleName]
```

  **表11** 共享库查询命令列表

| 命令                                             | 描述                                   |
| ------------------------------------------------ | -------------------------------------- |
| bm dump-shared -h                                | 显示dump-shared支持的命令信息          |
| bm dump-shared -a                                | 查询系统中已安装所有共享库             |
| bm dump-shared -n                                | 查询指定共享库包名的详细信息           |
| bm dump-dependencies -h                          | 显示bm dump-dependencies支持的命令信息 |
| bm dump-dependencies -n bundleName -m moudleName | 查询指定应用指定模块依赖的共享库信息   |

示例:

```bash
# 显示所有已安装共享库包名
bm dump-shared -a
# 显示该共享库的详细信息
bm dump-shared -n com.ohos.lib
# 显示指定应用指定模块依赖的共享库信息
bm dump-dependencies -n com.ohos.app -m entry
```