# bundlemanager_bundle_tool **Repository Path**: zhaogan0603/bundlemanager_bundle_tool ## Basic Information - **Project Name**: bundlemanager_bundle_tool - **Description**: Bundle tool | 包管理命令行工具 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 53 - **Created**: 2023-04-17 - **Last Updated**: 2025-09-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # **bm工具命令组件** ## 简介 bm是用来方便开发者调试的一个工具。bm工具被hdc工具封装,进入hdc shell命令后,就可以使用bm工具。 ## 目录 ``` foundation/bundlemanager/bundle_tool ├── frameworks # bm工具服务框架代码 └── test # 测试目录 ``` ### bm工具命令 | 命令 | 描述 | | -------- | -------- | | help | 帮助命令,显示bm支持的命令信息。 | | install | 安装命令,用来安装应用。 | | uninstall | 卸载命令,用来卸载应用。 | | install-plugin | 安装插件命令,用于安装插件。| | uninstall-plugin | 卸载插件命令,用于卸载插件。| | dump | 查询命令,用来查询应用的相关信息。 | | clean | 清理命令,用来清理应用的缓存和数据。此命令在root版本下可用,在user版本下打开开发者模式可用。其它情况不可用。| | enable | 使能命令,用来使能应用,使能后应用可以继续使用。此命令在root版本下可用,在user版本下不可用。 | | disable | 禁用命令,用来禁用应用,禁用后应用无法使用。此命令在root版本下可用,在user版本下不可用。 | | get | 获取udid命令,用来获取设备的udid。 | | quickfix | 快速修复相关命令,用来执行补丁相关操作,如补丁安装、补丁查询。 | | compile | 应用执行编译AOT命令。 | | copy-ap | 把应用的ap文件拷贝到/data/local/pgo目录下,供shell用户读取文件。 | | dump-dependencies | 查询应用依赖的模块信息。 | | dump-shared | 查询应用间HSP应用信息。 | | dump-overlay | 打印overlay应用的overlayModuleInfo。 | | dump-target-overlay | 打印目标应用的所有关联overlay应用的overlayModuleInfo。 | #### 帮助命令(help) ```bash bm help ``` **表2** help命令列表 | 命令 | 描述 | | ------- | ---------- | | bm help | 显示bm工具的能够支持的命令信息。 | #### 安装命令(install) ```bash bm install [-h] [-p filePath] [-r] [-w waitingTime] [-s hspDirPath] [-u userId] ``` **安装命令参数列表** | 参数 | 参数说明 | | -------- | -------- | | -h | 帮助信息。 | | -p | 可选参数,指定HAP路径,多HAP应用可指定多HAP所在文件夹路径。 | | -r | 可选参数,覆盖安装一个HAP。默认值为覆盖安装。 | | -s | 根据场景判断,安装应用间HSP时为必选参数,其他场景为可选参数。安装应用间共享库, 每个路径目录下只能存在一个同包名的HSP。 | | -w | 可选参数,安装HAP时指定bm工具等待时间,最小的等待时长为5s,最大的等待时长为600s, 默认缺省为180s。 | | -u | 可选参数,指定[用户](#userid),默认在当前活跃用户下安装应用。仅支持在当前活跃用户或0用户下安装。
**说明:**
如果当前活跃用户是100,使用命令`bm install -p /data/local/tmp/ohos.app.hap -u 102`安装时,只会在当前活跃用户100下安装应用。 | 示例: ```bash # 安装一个hap bm install -p /data/local/tmp/ohos.app.hap # 在100用户下安装一个hap bm install -p /data/local/tmp/ohos.app.hap -u 100 # 覆盖安装一个hap bm install -p /data/local/tmp/ohos.app.hap -r # 安装一个应用间共享库 bm install -s xxx.hsp # 同时安装使用方应用和其依赖的应用间共享库 bm install -p aaa.hap -s xxx.hsp yyy.hsp # 同时安装HAP和应用内共享库 bm install -p /data/local/tmp/hapPath/ # 安装一个hap,等待时间为180s bm install -p /data/local/tmp/ohos.app.hap -w 180 ``` #### 卸载命令(uninstall) ```bash bm uninstall [-h] [-n bundleName] [-m moduleName] [-k] [-s] [-v versionCode] [-u userId] ``` **卸载命令参数列表** | 参数 | 参数说明 | | -------- | -------- | | -h | 帮助信息。 | | -n | 必选参数,指定Bundle名称卸载应用。| | -m | 可选参数,应用模块名称,指定卸载应用的一个模块。默认卸载所有模块。 | | -k | 可选参数,卸载应用时保存应用数据。默认卸载应用时不保存应用数据。 | | -s | 根据场景判断,卸载应用间HSP时必选参数,其他场景为可选参数。卸载指定的共享库。| | -v | 可选参数,指定共享包的版本号。默认卸载同包名的所有共享包。 | | -u | 可选参数,指定[用户](#userid),默认在当前活跃用户下卸载应用。仅支持在当前活跃用户或0用户下卸载应用。
**说明:**
如果当前活跃用户是100,使用命令`bm uninstall -n com.ohos.app -u 102`卸载时,只会在当前活跃用户100下卸载应用。 | 示例: ```bash # 卸载一个应用 bm uninstall -n com.ohos.app # 在用户100下卸载一个应用 bm uninstall -n com.ohos.app -u 100 # 卸载应用的一个模块 bm uninstall -n com.ohos.app -m entry # 卸载一个shared bundle bm uninstall -n com.ohos.example -s # 卸载一个shared bundle的指定版本 bm uninstall -n com.ohos.example -s -v 100001 # 卸载一个应用,并保留用户数据 bm uninstall -n com.ohos.app -k ``` #### 安装插件命令(install-plugin) ```bash bm install-plugin [-h] [-n hostBundleName] [-p filePath] ``` **install-plugin命令参数列表** | 参数 | 参数说明 | | -------- | -------- | | -h | 帮助信息。 | | -n | 必选参数,指定待安装插件的应用包名。| | -p | 必选参数,指定插件文件路径。| 示例: ```bash # 安装一个插件 bm install-plugin -n com.ohos.app -p /data/plugin.hsp ``` > **说明:** > > 在同一个应用中安装同一个插件,则视作插件版本更新,插件不支持降级安装;插件版本更新后,需要重启应用插件才能生效。 > > 不推荐安装与宿主应用模块同名的插件,目前运行态暂不支持。 #### 卸载插件命令(uninstall-plugin) ```bash bm uninstall-plugin [-h] [-n hostBundleName] [-p pluginBundleName] ``` **uninstall-plugin命令参数列表** | 参数 | 参数说明 | | -------- | -------- | | -h | 帮助信息。 | | -n | 必选参数,指定应用包名。| | -p | 必选参数,指定插件的包名。| 示例: ```bash # 卸载一个插件 bm uninstall-plugin -n com.ohos.app -p com.ohos.plugin ``` #### 查询应用信息命令(dump) ```bash bm dump [-h] [-a] [-g] [-n bundleName] [-s shortcutInfo] [-d deviceId] [-l label] [-u userId] ``` **查询命令参数列表** | 参数 | 参数说明 | | -------- | -------- | | -h | 帮助信息。 | | -a | 可选参数,查询系统已经安装的所有应用。 | | -g | 可选参数,查询系统中签名为调试类型的应用包名。 | | -n | 可选参数,查询指定Bundle名称的详细信息。 | | -s | 可选参数,查询指定Bundle名称下的快捷方式信息。 | | -d | 可选参数,查询指定设备中的包信息。默认查询当前设备。 | | -l | 可选参数,用于查询指定Bundle名称的label值(应用的名称),需要与`-n`或`-a`参数组合使用。
**说明**:
从API version 20开始支持该命令。如果在Windows环境下输出结果包含特殊字符或中文乱码,需在cmd控制台中手动执行命令`chcp 65001`,将cmd控制台编码修改为UTF-8。 | | -u | 可选参数,查询指定[用户](#userid)下的应用信息,默认在当前活跃用户下查询应用信息。仅支持在当前活跃用户或0用户下查询。
**说明:**
如果当前活跃用户是100,使用命令`bm dump -n com.ohos.app -u 102`查询时,只会在当前活跃用户100下查询应用。 | 示例: ```bash # 显示所有已安装的Bundle名称 bm dump -a # 查询系统中签名为调试类型的应用包名 bm dump -g # 查询该应用的详细信息 bm dump -n com.ohos.app # 在用户100下查询该应用的详细信息 bm dump -n com.ohos.app -u 100 # 查询该应用的快捷方式信息 bm dump -s -n com.ohos.app # 查询跨设备应用信息 bm dump -n com.ohos.app -d xxxxx # 查询该应用的label值(应用的名称) bm dump -n com.ohos.app -l # 显示所有已安装应用的bundle名称和label值(应用的名称) bm dump -a -l ``` #### 清理命令(clean) ```bash bm clean [-h] [-c] [-n bundleName] [-d] [-i appIndex] [-u userId] ``` **清理命令参数列表** | 参数 | 参数说明 | | -------- | --------- | | -h | 帮助信息。 | | -c -n | -n为必选参数,-c为可选参数。清除指定Bundle名称的缓存数据。 | | -d -n | -n为必选参数,-d为可选参数。清除指定Bundle名称的数据目录。 | | -i | 可选参数,清除分身应用的数据目录。默认为0。| | -u | 可选参数,清理指定[用户](#userid)下的数据,默认在当前活跃用户下清理数据。仅支持在当前活跃用户或0用户下清理数据。
**说明:**
如果当前活跃用户是100,使用命令`bm clean -c -n com.ohos.app -u 102`清理数据时,只会在当前活跃用户100下清理。 | 示例: ```bash # 清理该应用下的缓存数据 bm clean -c -n com.ohos.app # 在用户100下清理该应用下的缓存数据 bm clean -c -n com.ohos.app -u 100 # 清理该应用下的用户数据 bm clean -d -n com.ohos.app # 执行结果 clean bundle data files successfully. ``` #### 使能命令(enable) ```bash bm enable [-h] [-n bundleName] [-a abilityName] [-u userId] ``` **使能命令参数列表** | 参数 | 参数说明 | | -------- | -------- | | -h | 帮助信息。 | | -n | 必选参数,使能指定Bundle名称的应用。 | | -a | 可选参数,使能指定Bundle名称下的元能力模块。 | | -u | 可选参数,使能指定[用户](#userid)下的应用,默认在当前活跃用户下使能应用。仅支持在当前活跃用户或0用户下使能应用。
**说明:**
如果当前活跃用户是100,使用命令`bm enable -n com.ohos.app -u 102`使能应用时,只会在当前活跃用户100下使能应用。 | 示例: ```bash # 使能该应用 bm enable -n com.ohos.app -a com.ohos.app.EntryAbility # 在用户100下使能该应用 bm enable -n com.ohos.app -u 100 # 执行结果 enable bundle successfully. ``` #### 禁用命令(disable) ```bash bm disable [-h] [-n bundleName] [-a abilityName] [-u userId] ``` **禁用命令参数列表** | 参数 | 参数说明 | | -------- | -------- | | -h | 帮助信息。 | | -n | 必选参数,禁用指定Bundle名称的应用。 | | -a | 可选参数,禁用指定Bundle名称下的元能力模块。 | | -u | 可选参数,禁用指定[用户](#userid)下的应用,默认在当前活跃用户下禁用应用。仅支持在当前活跃用户或0用户下禁用应用。
**说明:**
如果当前活跃用户是100,使用命令`bm disable -n com.ohos.app -u 102`禁用应用时,只会在当前活跃用户100下禁用应用。 | 示例: ```bash # 禁用该应用 bm disable -n com.ohos.app -a com.ohos.app.EntryAbility # 在用户100下禁用该应用 bm disable -n com.ohos.app -u 100 # 执行结果 disable bundle successfully. ``` #### 获取udid命令(get) ```bash bm get [-h] [-u] ``` **获取udid命令参数列表** | 参数 | 参数说明 | | -------- | -------- | | -h |帮助信息。 | | -u | 必选参数,获取设备的udid。| 示例: ```bash # 获取设备的udid bm get -u # 执行结果 udid of current device is : 23CADE0C ``` #### 快速修复命令(quickfix) ```bash bm quickfix [-h] [-a -f filePath [-t targetPath] [-d] [-o]] [-q -b bundleName] [-r -b bundleName] ``` **快速修复命令参数列表** | 参数 | 参数说明 | | -------- | -------- | | -h | 帮助信息。 | | -a -f | -a为可选参数,指定-a后,-f为必选参数。执行快速修复补丁安装命令,file-path对应hqf文件,支持传递1个或多个hqf文件,或传递hqf文件所在的目录。 | | -q -b | -q为可选参数,指定-q后,-b为必选参数。根据包名查询补丁信息。 | | -r -b | -r为可选参数,指定-r后,-b为必选参数。根据包名卸载未使能的补丁。| | -t | 可选参数,快速修复应用到指定目标路径。| | -d | 可选参数,应用快速修复调试模式。| | -o | 可选参数,应用快速修复覆盖模式,该模式下so将被解压覆盖到应用的so目录中。| 示例: ```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. # 快速修复补丁卸载 bm quickfix -r -b com.ohos.app # 执行结果 delete quick fix successfully ``` #### 共享库查询命令(dump-shared) ```bash bm dump-shared [-h] [-a] [-n bundleName] ``` **共享库查询命令参数列表** | 参数 | 参数说明 | | -------- | -------- | | -h | 帮助信息。 | | -a | 可选参数,查询系统中所有已安装的共享库。| | -n | 可选参数,查询指定包名的共享库详细信息。| 示例: ```bash # 显示所有已安装共享库包名 bm dump-shared -a # 显示该共享库的详细信息 bm dump-shared -n com.ohos.lib ``` #### 共享库依赖关系查询命令(dump-dependencies) ```bash bm dump-dependencies [-h] [-n bundleName] [-m moduleName] ``` **共享库依赖关系查询命令参数列表** | 参数 | 参数说明 | | -------- | -------- | | -h | 帮助信息。 | | -n | 必选参数,查询指定应用依赖的共享库信息。| | -m | 可选参数,查询指定应用指定模块依赖的共享库信息。| 示例: ```Bash # 查询指定应用指定模块依赖的共享库信息 bm dump-dependencies -n com.ohos.app -m entry ``` #### 应用执行编译AOT命令(compile) ```bash bm compile [-h] [-m mode] [-r bundleName] [-a] ``` **compile命令参数列表** | 参数 | 参数说明 | | -------- | -------- | | -h | 帮助信息。 | | -a | 可选参数,编译所有应用。| | -m | 可选参数,可选值为partial或者full。根据包名编译应用。| | -r | 可选参数,移除应用的结果。| 示例: ```bash # 根据包名编译应用 bm compile -m partial com.example.myapplication ``` #### 拷贝ap文件命令(copy-ap) 拷贝ap文件到指定应用的/data/local/pgo路径。 ```bash bm copy-ap [-h] [-a] [-n bundleName] ``` **copy-ap命令参数列表** | 参数 | 参数说明 | | -------- | -------- | | -h | 帮助信息。 | | -a | 可选参数,默认所有包相关ap文件。拷贝所有包相关ap文件。| | -n | 可选参数,默认当前应用包名。根据包名拷贝对应包相关的ap文件。| 示例: ```bash # 根据包名移动对应包相关的ap文件 bm copy-ap -n com.example.myapplication ``` #### 查询overlay应用信息命令(dump-overlay) ```bash bm dump-overlay [-h] [-b bundleName] [-m moduleName] [-t targetModuleName] [-u userId] ``` **dump-overlay命令参数列表** | 参数 | 参数说明 | | -------- | -------- | | -h | 帮助信息。 | | -b | 必选参数,获取指定Overlay应用的所有OverlayModuleInfo信息。| | -m | 可选参数,根据指定Overlay特征module的名称查询OverlayModuleInfo信息,默认当前Overlay应用主模块名。| | -t | 可选参数,根据指定目标module的名称查询OverlayModuleInfo信息,默认参数为空。| | -u | 可选参数,在指定[用户](#userid)下查询OverlayModuleInfo信息,默认在当前活跃用户下查询。仅支持在当前活跃用户或0用户下查询。
**说明:**
如果当前活跃用户是100,使用命令`bm dump-overlay -b com.ohos.app -u 102`查询OverlayModuleInfo信息,只会返回当前活跃用户100下的OverlayModuleInfo信息。 | 示例: ```bash # 根据包名来获取overlay应用com.ohos.app中的所有OverlayModuleInfo信息 bm dump-overlay -b com.ohos.app # 在用户100下,根据包名来获取overlay应用com.ohos.app中的所有OverlayModuleInfo信息 bm dump-overlay -b com.ohos.app -u 100 # 根据包名和module来获取overlay应用com.ohos.app中overlay module为libraryModuleName的所有OverlayModuleInfo信息 bm dump-overlay -b com.ohos.app -m libraryModuleName # 根据目标包名和module来获取overlay应用com.ohos.app中目标module为entryModuleName的所有OverlayModuleInfo信息 bm dump-overlay -b com.ohos.app -t entryModuleName ``` #### 查询应用的overlay相关信息命令(dump-target-overlay) 查询目标应用的所有关联overlay应用的overlayModuleInfo信息。 ```bash bm dump-target-overlay [-h] [-b bundleName] [-m moduleName] [-u userId] ``` **dump-target-overlay命令参数列表** | 参数 | 参数说明 | | -------- | -------- | | -h | 帮助信息。 | | -b | 必选参数,获取指定应用的所有OverlayBundleInfo信息。| | -m | 可选参数,默认当前应用主模块名。根据指定的包名和module名查询OverlayModuleInfo信息。| | -u | 可选参数,在指定[用户](#userid)下查询OverlayModuleInfo信息,默认在当前活跃用户下查询。仅支持在当前活跃用户或0用户下查询。
**说明:**
如果当前活跃用户是100,使用命令`bm dump-target-overlay -b com.ohos.app -u 102`查询目标应用com.ohos.app中的所有关联的OverlayBundleInfo信息,只会返回当前活跃用户100下的OverlayModuleInfo信息。 | 示例: ```bash # 根据包名来获取目标应用com.ohos.app中的所有关联的OverlayBundleInfo信息 bm dump-target-overlay -b com.ohos.app # 在用户100下,根据包名来获取目标应用com.ohos.app中的所有关联的OverlayBundleInfo信息 bm dump-target-overlay -b com.ohos.app -u 100 # 根据包名和module来获取目标应用com.ohos.app中目标module为entry的所有关联的OverlayModuleInfo信息 bm dump-target-overlay -b com.ohos.app -m entry ``` ## 相关仓 [bundlemanager_bundle_framework](https://gitee.com/openharmony/bundlemanager_bundle_framework)