• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..17-Mar-2025-

frameworks/H17-Mar-2025-9,4348,276

test/H17-Mar-2025-7,4284,645

BUILD.gnH A D17-Mar-2025669 1916

LICENSEH A D17-Mar-202510.1 KiB177150

README_zh.mdH A D17-Mar-202517.4 KiB467347

bundle.jsonH A D17-Mar-20251.4 KiB4949

bundletool.gniH A D17-Mar-20251.7 KiB4738

README_zh.md

1# **bm工具命令组件**
2
3## 简介
4
5bm是用来方便开发者调试的一个工具。bm工具被hdc工具封装,进入hdc shell命令后,就可以使用bm工具。
6
7
8## 目录
9
10```
11foundation/bundlemanager/bundle_tool
12├── frameworks                        # bm工具服务框架代码
13└── test						      # 测试目录
14```
15
16### bm工具命令
17
18  **表1** bm工具命令列表
19
20| 命令 | 描述 |
21| -------- | -------- |
22| help | 帮助命令,显示bm支持的命令信息。 |
23| install | 安装命令,用来安装应用。 |
24| uninstall | 卸载命令,用来卸载应用。 |
25| dump | 查询命令,用来查询应用的相关信息。 |
26| clean | 清理命令,用来清理应用的缓存和数据。此命令在root版本下可用,在user版本下打开开发者模式可用。其它情况不可用。|
27| enable | 使能命令,用来使能应用,使能后应用可以继续使用。此命令在root版本下可用,在user版本下不可用。 |
28| disable | 禁用命令,用来禁用应用,禁用后应用无法使用。此命令在root版本下可用,在user版本下不可用。 |
29| get | 获取udid命令,用来获取设备的udid。 |
30| quickfix | 快速修复相关命令,用来执行补丁相关操作,如补丁安装、补丁查询。 |
31| compile | 应用执行编译AOT命令。 |
32| copy-ap | 把应用的ap文件拷贝到/data/local/pgo目录下,供shell用户读取文件。 |
33| dump-dependencies | 查询应用依赖的模块信息。 |
34| dump-shared | 查询应用间HSP应用信息。 |
35| dump-overlay | 打印overlay应用的overlayModuleInfo。 |
36| dump-target-overlay | 打印目标应用的所有关联overlay应用的overlayModuleInfo。 |
37
38
39#### 帮助命令
40```bash
41bm help
42```
43
44  **表2** help命令列表
45
46| 命令    | 描述       |
47| ------- | ---------- |
48| bm help | 显示bm工具的能够支持的命令信息。 |
49
50示例:
51
52
53```bash
54# 显示帮助信息
55bm help
56```
57
58
59#### 安装命令
60
61```bash
62bm install [-h] [-p filePath] [-u userId] [-r] [-w waitingTime] [-s hspDirPath]
63```
64安装命令可以组合,下面列出部分命令。
65
66
67  **表3** 安装命令列表
68
69| 命令                                | 描述                       |
70| ----------------------------------- | -------------------------- |
71| bm install -h | 显示install支持的命令信息。-h为非必选字段。 |
72| bm install -p \<filePath\>    | 安装应用,支持指定路径和多个hap、hsp同时安装。安装应用时,-p为必选字段。 |
73| bm install -p \<filePath\> -u \<userId\>   |给指定用户安装一个应用。-u非必选字段,默认为当前活跃用户。 |
74| bm install -p \<filePath\> -r | 覆盖安装一个应用,-r为非必选字段,默认支持覆盖安装。 |
75| bm install -p \<filePath\> -r -u \<userId\> | 给指定用户覆盖安装一个应用。 |
76| bm install -p \<filePath\> -r -u \<userId\> -w \<waitingTime\> | 安装时指定bm工具等待时间,-w非必选字段,最小的等待时长为180s,最大的等待时长为600s,默认缺省为5s。 |
77| bm install -s \<hspDirPath\> | 安装应用间共享库, 每个路径目录下只能存在一个同包名的HSP。-s为安装应用间HSP时为必选字段,其他场景为可选字段。 |
78| bm install -p \<filePath\> -s \<hspDirPath\> | 同时安装使用方应用和其依赖的应用间共享库。 |
79
80
81
82示例:
83```bash
84# 安装一个hap
85bm install -p /data/app/ohos.app.hap
86# 覆盖安装一个hap
87bm install -p /data/app/ohos.app.hap -r
88# 安装一个应用间共享库
89bm install -s xxx.hsp
90# 同时安装多个应用间共享库
91bm install -s xxx.hsp yyy.hsp
92# 同时安装使用方应用和其依赖的应用间共享库
93bm install -p aaa.hap -s xxx.hsp yyy.hsp
94```
95
96#### 卸载命令
97
98```bash
99bm uninstall [-h] [-n bundleName] [-m moduleName] [-u userId] [-k] [-s] [-v versionCode]
100```
101
102命令可以组合,下面列出部分命令。
103
104
105  **表4** 卸载命令列表
106
107| 命令                          | 描述                     |
108| ----------------------------- | ------------------------ |
109| bm uninstall -h | 显示uninstall支持的命令信息。-h为非必选字段。 |
110| bm uninstall -n \<bundleName\> | 通过指定包名卸载应用。-n为必选字段。 |
111| bm uninstall -n \<bundleName\> -u \<userId\>| 通过指定包名和用户卸载应用。-u非必选字段,默认为当前活跃用户。 |
112| bm uninstall -n \<bundleName\> -u \<userId\> -k| 通过指定包名和用户以保留用户数据方式卸载应用。-k为非必选字段。 |
113| bm uninstall -n \<bundleName\> -m \<moduleName\> | 通过指定包名卸载应用的一个模块。-m为非必选字段。 |
114| bm uninstall -n \<bundleName\> -s | 卸载指定的shared bundle。-s为非必选字段,卸载共享库应用时为必选字段。 |
115| bm uninstall -n \<bundleName\> -s -v \<versionCode\> | 卸载指定的shared bundle的指定版本。-v为非必选字段。 |
116
117示例:
118
119```bash
120# 卸载一个应用
121bm uninstall -n com.ohos.app
122# 卸载应用的一个模块
123bm uninstall -n com.ohos.app -m entry
124# 卸载一个shared bundle
125bm uninstall -n com.ohos.example -s
126# 卸载一个shared bundle的指定版本
127bm uninstall -n com.ohos.example -s -v 100001
128# 卸载一个应用,并保留用户数据
129bm uninstall -n com.ohos.app -k
130```
131
132
133#### 查询应用信息命令
134
135```bash
136bm dump [-h] [-a] [-n bundleName] [-s shortcutInfo] [-u userId] [-d deviceId]
137```
138命令可以组合,下面列出部分命令。
139
140
141  **表5** 查询命令列表
142
143| 命令       | 描述                       |
144| ---------- | -------------------------- |
145| bm dump -h | 显示dump支持的命令信息。-h为非必选字段。 |
146| bm dump -a | 查询系统已经安装的所有应用包名。-a为非必选字段。 |
147| bm dump -n \<bundleName\> | 查询指定包名的详细信息。-n为非必选字段。 |
148| bm dump -n \<bundleName\> -s | 查询指定包名下的快捷方式信息。-s为非必选字段。 |
149| bm dump -n \<bundleName\> -d \<deviceId\> | 跨设备查询包信息。-d为非必选字段。 |
150| bm dump -n \<bundleName\> -u \<userId\> | 查询指定用户下指定包名的详细信息。-u为非必选字段,默认为所有用户。 |
151
152
153示例:
154
155```bash
156# 显示所有已安装的Bundle名称
157bm dump -a
158# 查询该应用的详细信息
159bm dump -n com.ohos.app -u 100
160# 查询该应用的快捷方式信息
161bm dump -s -n com.ohos.app -u 100
162# 查询跨设备应用信息
163bm dump -n com.ohos.app -d xxxxx
164```
165
166#### 清理命令
167
168```bash
169bm clean [-h] [-c] [-n bundleName] [-d] [-u userId] [-i appIndex]
170```
171
172  **表6** 清理命令列表
173| 命令       | 描述                       |
174| ---------- | -------------------------- |
175| bm clean -h | 显示clean支持的命令信息。-h为非必选字段。 |
176| bm clean -n \<bundleName\> -c | 清除指定包名的缓存数据。-n为必选字段,-c为非必选字段。 |
177| bm clean -n \<bundleName\> -d | 清除指定包名的数据目录。-d为非必选字段。 |
178| bm clean -n \<bundleName\> -c -u \<userId\> | 清除指定用户下包名的缓存数据。-u为非必选字段,默认为当前活跃用户。 |
179| bm clean -n \<bundleName\> -d -u \<userId\> | 清除指定用户下包名的数据目录。 |
180| bm clean -n \<bundleName\> -d -u \<userId\> -i \<appIndex\> | 清除指定用户下分身应用的数据目录。-i为非必选字段,默认为0。 |
181
182示例:
183
184```bash
185# 清理该应用下的缓存数据
186bm clean -c -n com.ohos.app -u 100
187# 清理该应用下的用户数据
188bm clean -d -n com.ohos.app -u 100
189// 执行结果
190clean bundle data files successfully.
191```
192
193
194#### 使能命令
195
196```bash
197bm enable [-h] [-n bundleName] [-a abilityName] [-u userId]
198```
199
200
201  **表7** 使能命令列表
202
203| 命令       | 描述                       |
204| ---------- | -------------------------- |
205| bm enable -h | 显示enable支持的命令信息。-h为非必选字段。 |
206| bm enable -n \<bundleName\> | 使能指定包名的应用。-n为必选字段。 |
207| bm enable -n \<bundleName\> -a \<abilityName\> | 使能指定包名下的元能力模块。-a为非必选字段。 |
208| bm enable -n \<bundleName\> -u \<userId\>| 使能指定用户和包名的应用。-u为非必选字段,默认为当前活跃用户。 |
209
210
211示例:
212
213```bash
214# 使能该应用
215bm enable -n com.ohos.app -a com.ohos.app.EntryAbility -u 100
216// 执行结果
217enable bundle successfully.
218```
219
220
221#### 禁用命令
222
223```bash
224bm disable [-h] [-n bundleName] [-a abilityName] [-u userId]
225```
226
227
228  **表8** 禁用命令列表
229
230| 命令       | 描述                       |
231| ---------- | -------------------------- |
232| bm disable -h | 显示disable支持的命令信息。-h为非必选字段。 |
233| bm disable -n \<bundleName\> | 禁用指定包名的应用。-n为必选字段。 |
234| bm disable -n \<bundleName\> -a \<abilityName\> | 禁用指定包名下的元能力模块。-a为非必选字段。 |
235| bm disable -n \<bundleName\> -u \<userId\>| 禁用指定用户和包名下的应用。-u为非必选字段,默认为当前活跃用户。 |
236
237
238示例:
239
240```bash
241# 禁用该应用
242bm disable -n com.ohos.app -a com.ohos.app.EntryAbility -u 100
243// 执行结果
244disable bundle successfully.
245```
246
247
248#### 获取udid命令
249
250```bash
251bm get [-h] [-u]
252```
253
254  **表9** 获取udid命令列表
255
256| 命令       | 描述                       |
257| ---------- | -------------------------- |
258| bm get -h | 显示get支持的命令信息。-h为非必选字段。 |
259| bm get -u | 获取设备的udid。-u为必选字段。 |
260
261
262示例:
263
264```bash
265# 获取设备的udid
266bm get -u
267// 执行结果
268udid of current device is :
26923CADE0C
270```
271
272
273#### 快速修复命令
274
275```bash
276bm quickfix [-h] [-a -f filePath [-t targetPath] [-d]] [-q -b bundleName] [-r -b bundleName]
277```
278
279注:hqf文件制作方式可参考[HQF打包指令](packing-tool.md#hqf打包指令)。
280
281  **表10** 快速修复命令列表
282| 命令       | 描述                       |
283| ---------- | -------------------------- |
284| bm quickfix -h | 显示quickfix支持的命令信息。-h为非必选字段。 |
285| bm quickfix -a -f \<filePath\> | 执行补丁安装命令。-a非必选字段,指定后,-f为必选字段,未指定-a,则-f为非必选字段。 |
286| bm quickfix -q -b \<bundleName\> | 根据包名查询补丁包信息。-q为非必选字段,指定后,-b为必选字段,未指定-q,则-b为非必选字段。 |
287| bm quickfix -a -f \<filePath\> -d | 选择debug模式执行补丁安装命令。-d为非必选字段。 |
288| bm quickfix -a -f \<filePath\> -t \<target-path\> | 指定补丁安装目录,且不使能。-t为非必选字段。 |
289| bm quickfix -r -b \<bundleName\> | 根据包名卸载未使能的补丁。-r为非必选字段,指定后,-b为必选字段,未指定-r,则-b为非必选字段。 |
290
291
292示例:
293
294```bash
295# 根据包名查询补丁包信息
296bm quickfix -q -b com.ohos.app
297// 执行结果
298// Information as follows:
299// ApplicationQuickFixInfo:
300//  bundle name: com.ohos.app
301//  bundle version code: xxx
302//  bundle version name: xxx
303//  patch version code: x
304//  patch version name:
305//  cpu abi:
306//  native library path:
307//  type:
308# 快速修复补丁安装
309bm quickfix -a -f /data/app/
310// 执行结果
311apply quickfix succeed.
312# 快速修复补丁卸载
313bm quickfix -r -b com.ohos.app
314// 执行结果
315delete quick fix successfully
316```
317
318#### 共享库查询命令
319
320```bash
321bm dump-shared [-h] [-a] [-n bundleName] [-m moduleName]
322```
323
324  **表11** 共享库查询命令列表
325
326| 命令                                             | 描述                                   |
327| ------------------------------------------------ | -------------------------------------- |
328| bm dump-shared -h  | 显示dump-shared支持的命令信息。-h为非必选字段。          |
329| bm dump-shared -a          | 查询系统中已安装所有共享库。-a为非必选字段。     |
330| bm dump-shared -n \<bundleName\>            | 查询指定共享库包名的详细信息。-n为非必选字段。           |
331| bm dump-shared -n \<bundleName\> -m \<moduleName\>      | 查询指定共享库包名和模块名的详细信息。-m为非必选字段。     |
332
333
334示例:
335
336```bash
337# 显示所有已安装共享库包名
338bm dump-shared -a
339# 显示该共享库的详细信息
340bm dump-shared -n com.ohos.lib
341```
342
343#### 共享库依赖关系查询命令
344
345显示指定应用和指定模块依赖的共享库信息
346```bash
347bm dump-dependencies [-h] [-n bundleName] [-m moduleName]
348```
349
350  **表12** 共享库依赖关系查询命令列表
351| 命令       | 描述                       |
352| ---------- | -------------------------- |
353| bm dump-dependencies -h | 显示bm dump-dependencies支持的命令信息。-h为非必选字段。 |
354| bm dump-dependencies -n \<bundleName\> | 查询指定应用依赖的共享库信息。-n为必选字段。 |
355| bm dump-dependencies -n \<bundleName\> -m \<moduleName\> | 查询指定应用指定模块依赖的共享库信息。-m为非必选字段。 |
356
357* 示例
358```Bash
359# 显示指定应用指定模块依赖的共享库信息
360bm dump-dependencies -n com.ohos.app -m entry
361```
362
363
364#### 应用执行编译AOT命令
365
366应用执行编译AOT命令
367```bash
368bm compile [-h] [-m mode] [-r bundleName]
369```
370  **表13** compile命令列表
371
372| 命令 | 描述 |
373| -------- | -------- |
374| bm compile -h| 显示compile支持的命令信息。-h为非必选字段。 |
375| bm compile -m \<mode-name\>| 根据包名编译应用。-m为非必选字段,可选值为partial或者full。 |
376| bm compile -m \<mode-name\> -a| 编译所有应用。-a为非必选字段。 |
377| bm compile -r -a| 移除所有编译应用的结果。-r为非必选字段。 |
378| bm compile -r \<bundleName\>| 移除应用的结果。 |
379
380示例:
381
382```bash
383# 根据包名编译应用
384bm compile -m partial com.example.myapplication
385```
386
387#### 拷贝ap文件命令
388
389拷贝ap文件到指定应用的/data/local/pgo路径
390
391```bash
392bm copy-ap [-h] [-a] [-n bundleName]
393```
394
395**表14** copy-ap命令列表
396
397| 命令 | 描述 |
398| -------- | -------- |
399| bm copy-ap -h| 显示copy-ap支持的命令信息。-h为非必选字段。 |
400| bm copy-ap -a| 拷贝所有包相关ap文件。-a为非必选字段。 |
401| bm copy-ap -n \<bundleName\>| 根据包名拷贝对应包相关的ap文件。-n为非必选字段。 |
402
403示例:
404
405```bash
406# 根据包名移动对应包相关的ap文件
407bm copy-ap -n com.example.myapplication
408```
409
410#### 查询overlay应用信息命令
411
412打印overlay应用的overlayModuleInfo
413```bash
414bm dump-overlay [-h] [-b bundleName] [-m moduleName] [-u userId] [-t targetModuleName]
415```
416
417**表15** dump-overlay命令列表
418| 命令 | 描述 |
419| -------- | -------- |
420| bm dump-overlay -h| 显示dump-overlay支持的命令信息。-h为非必选字段。 |
421| bm dump-overlay -b \<bundleName\>| 获取指定应用的所有OverlayModuleInfo信息。-b为必选字段。 |
422| bm dump-overlay -b \<bundleName\> -m \<moduleName\>| 根据指定的包名和module名查询OverlayModuleInfo信息。-m为非必选字段。 |
423| bm dump-overlay -b \<bundleName\> -t \<target-moduleName\>| 根据指定的包名和目标module名查询OverlayModuleInfo信息。-t为非必选字段。 |
424| bm dump-overlay -b \<bundleName\> -t \<target-moduleName\> -u \<userId\>| 根据指定的包名\目标module名和用户查询OverlayModuleInfo信息。-u为非必选字段,默认为当前活跃用户。 |
425
426示例:
427
428```bash
429# 根据包名来获取overlay应用com.ohos.app中的所有OverlayModuleInfo信息
430bm dump-overlay -b com.ohos.app
431
432# 根据包名和module来获取overlay应用com.ohos.app中overlay module为entry的所有OverlayModuleInfo信息
433bm dump-overlay -b com.ohos.app -m entry
434
435# 根据包名和module来获取overlay应用com.ohos.app中目标module为feature的所有OverlayModuleInfo信息
436bm dump-overlay -b com.ohos.app -m feature
437```
438
439#### 查询应用的overlay相关信息命令
440
441查询目标应用的所有关联overlay应用的overlayModuleInfo信息。
442
443```bash
444bm dump-target-overlay [-h] [-b bundleName] [-m moduleName] [-u userId]
445```
446
447**表16** dump-overlay命令列表
448| 命令 | 描述 |
449| -------- | -------- |
450| bm dump-target-overlay -h| 显示dump-target-overlay支持的命令信息。-h为非必选字段。 |
451| bm dump-target-overlay -b \<bundleName\> | 获取指定目标应用的所有OverlayBundleInfo信息。-b为必选字段。 |
452| bm dump-target-overlay -b \<bundleName\> -m \<moduleName\> | 根据指定的目标应用的包名和module名查询OverlayModuleInfo信息。-m为非必选字段。 |
453| bm dump-target-overlay -b \<bundleName\> -m \<moduleName\> -u \<userId\> | 根据指定的目标应用的包名、module名和用户查询OverlayModuleInfo信息。-u为非必选字段,默认为当前活跃用户。 |
454
455示例:
456
457```bash
458# 根据包名来获取目标应用com.ohos.app中的所有关联的OverlayBundleInfo信息
459bm dump-target-overlay-b com.ohos.app
460
461# 根据包名和module来获取目标应用com.ohos.app中目标module为entry的所有关联的OverlayModuleInfo信息
462bm dump-target-overlay -b com.ohos.app -m entry
463```
464## 相关仓
465
466[bundlemanager_bundle_framework](https://gitee.com/openharmony/bundlemanager_bundle_framework)
467