智能客服
你问我答,随时在线为你解决问题
Bundle Manager(包管理工具,简称bm)是实现应用安装、卸载、更新、查询等功能的工具,bm为开发者提供基本的应用安装包的调试能力。
在使用本工具前,开发者需要先获取hdc工具,执行hdc shell。
| 命令 | 描述 |
|---|---|
| help | 帮助命令,用于查询bm支持的命令信息。 |
| install | 安装命令,用于安装应用。 |
| uninstall | 卸载命令,用于卸载应用。 |
| dump | 查询命令,用于查询应用的相关信息。 |
| clean | 清理命令,用于清理应用的缓存和数据。此命令在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。 |
# 显示帮助信息 bm help
bm install [-h] [-p filePath] [-u userId] [-r] [-w waitingTime] [-s hspDirPath]
安装命令参数列表
| 参数 | 参数说明 |
|---|---|
| -h | 帮助信息。 |
| -p | 必选参数,指定路径和多个HAP同时安装。 |
| -u | 可选参数,给指定用户安装一个HAP。默认安装到当前所有用户上。 |
| -r | 可选参数,覆盖安装一个HAP。默认值为覆盖安装。 |
| -s | 根据场景判断,安装应用间HSP时为必选参数,其他场景为可选参数。安装应用间共享库, 每个路径目录下只能存在一个同包名的HSP。 |
| -w | 可选参数,安装HAP时指定bm工具等待时间,最小的等待时长为5s,最大的等待时长为600s, 默认缺省为5s。 |
示例:
# 安装一个hap bm install -p /data/app/ohos.app.hap # 覆盖安装一个hap bm install -p /data/app/ohos.app.hap -r # 安装一个应用间共享库 bm install -s xxx.hsp # 同时安装使用方应用和其依赖的应用间共享库 bm install -p aaa.hap -s xxx.hsp yyy.hsp # 指定用户安装一个hap,等待时间为10s bm install -p /data/app/ohos.app.hap -u 100 -w 10
bm uninstall [-h] [-n bundleName] [-m moduleName] [-u userId] [-k] [-s] [-v versionCode]
卸载命令参数列表
| 参数 | 参数说明 |
|---|---|
| -h | 帮助信息。 |
| -n | 必选参数,指定Bundle名称卸载应用。 |
| -m | 可选参数,指定卸载应用的一个模块。默认卸载所有模块。 |
| -u | 可选参数,指定用户卸载应用。默认卸载当前所有用户下该应用。 |
| -k | 可选参数,卸载应用时保存应用数据。默认卸载应用时不保存应用数据。 |
| -s | 根据场景判断,安装应用间HSP时必选参数,其他场景为可选参数。卸载指定的共享库。 |
| -v | 可选参数,指定共享包的版本号。默认卸载同包名的所有共享包。 |
示例:
# 卸载一个应用 bm uninstall -n com.ohos.app # 卸载应用的一个模块 bm uninstall -n com.ohos.app -m com.ohos.app.EntryAbility # 卸载一个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 # 指定用户卸载应用的一个模块 bm uninstall -n com.ohos.app -m com.ohos.app.EntryAbility -u 100
bm dump [-h] [-a] [-n bundleName] [-s shortcutInfo] [-u userId] [-d deviceId]
查询命令参数列表
| 参数 | 参数说明 |
|---|---|
| -h | 帮助信息。 |
| -a | 可选参数,查询系统已经安装的所有应用。 |
| -n | 可选参数,查询指定Bundle名称的详细信息。 |
| -s | 可选参数,查询指定Bundle名称下的快捷方式信息。 |
| -d | 可选参数,查询指定设备中的包信息。默认查询当前设备。 |
| -u | 可选参数,查询指定用户下指定Bundle名称的详细信息。默认查询当前设备上的所有用户。 |
示例:
# 显示所有已安装的Bundle名称 bm dump -a # 查询该应用的详细信息 bm dump -n com.ohos.app -u 100 # 查询该应用的快捷方式信息 bm dump -s -n com.ohos.app -u 100 # 查询跨设备应用信息 bm dump -n com.ohos.app -d xxxxx
bm clean [-h] [-c] [-n bundleName] [-d] [-u userId] [-i appIndex]
清理命令参数列表
| 参数 | 参数说明 |
|---|---|
| -h | 帮助信息。 |
| -c -n | -n为必选参数,-c为可选参数。清除指定Bundle名称的缓存数据。 |
| -d -n | -n为必选参数,-d为可选参数。清除指定Bundle名称的数据目录。 |
| -i | 可选参数,清除分身应用的数据目录。默认为0。 |
| -u | 可选参数,清除指定用户下Bundle名称的缓存数据。默认为当时活跃用户。 |
示例:
# 清理该应用下的缓存数据 bm clean -c -n com.ohos.app -u 100 # 清理该应用下的用户数据 bm clean -d -n com.ohos.app -u 100 // 执行结果 clean bundle data files successfully.
bm get [-h] [-u]
获取udid命令参数列表
| 参数 | 参数说明 |
|---|---|
| -h | 帮助信息。 |
| -u | 必选参数,获取设备的udid。 |
示例:
# 获取设备的udid bm get -u // 执行结果 udid of current device is : 23CADE0C
bm quickfix [-h] [-a -f filePath [-t targetPath] [-d]] [-q -b bundleName] [-r -b bundleName]
注:hqf文件制作方式可参考HQF打包指令。
快速修复命令参数列表
| 参数 | 参数说明 |
|---|---|
| -h | 帮助信息。 |
| -a -f | -a为可选参数,指定-a后,-f为必选参数。执行快速修复补丁安装命令,file-path对应hqf文件,支持传递1个或多个hqf文件,或传递hqf文件所在的目录。 |
| -q -b | -q为可选参数,指定-q后,-b为必选参数,未指定-q。根据包名查询补丁信息。 |
| -r -b | -r为可选参数,指定-r后,-b为必选参数。根据包名卸载未使能的补丁。 |
| -t | 可选参数,快速修复应用到指定目标路径。 |
| -d | 可选参数,应用快速修复调试模式。 |
示例:
# 根据包名查询补丁包信息 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
bm dump-shared [-h] [-a] [-n bundleName] [-m moduleName]
共享库查询命令参数列表
| 参数 | 参数说明 |
|---|---|
| -h | 帮助信息。 |
| -a | 可选参数,查询系统中已安装所有共享库。 |
| -n | 可选参数,查询指定共享库包名的详细信息。 |
| -m | 可选参数,查询指定共享库包名和模块名的详细信息。 |
示例:
# 显示所有已安装共享库包名 bm dump-shared -a # 显示该共享库的详细信息 bm dump-shared -n com.ohos.lib # 显示指定应用指定模块依赖的共享库信息 bm dump-dependencies -n com.ohos.app -m entry
显示指定应用和指定模块依赖的共享库信息。
bm dump-dependencies [-h] [-n bundleName] [-m moduleName]
共享库依赖关系查询命令参数列表
| 参数 | 参数说明 |
|---|---|
| -h | 帮助信息。 |
| -n | 必选参数,查询指定共享库包名的详细信息。 |
| -m | 可选参数,查询指定应用指定模块依赖的共享库信息。 |
示例:
# 显示指定应用指定模块依赖的共享库信息 bm dump-dependencies -n com.ohos.app -m entry
应用执行编译AOT命令。
bm compile [-h] [-m mode] [-r bundleName]
compile命令参数列表
| 参数 | 参数说明 |
|---|---|
| -h | 帮助信息。 |
| -a | 可选参数,编译所有应用。 |
| -m | 可选参数,可选值为partial或者full。根据包名编译应用。 |
| -r | 可选参数,移除应用的结果。 |
示例:
# 根据包名编译应用 bm compile -m partial com.example.myapplication
拷贝ap文件到指定应用的/data/local/pgo路径。
bm copy-ap [-h] [-a] [-n bundleName]
copy-ap命令参数列表
| 参数 | 参数说明 |
|---|---|
| -h | 帮助信息。 |
| -a | 可选参数,默认所有包相关ap文件。拷贝所有包相关ap文件。 |
| -n | 可选参数,默认当前应用包名。根据包名拷贝对应包相关的ap文件。 |
示例:
# 根据包名移动对应包相关的ap文件 bm copy-ap -n com.example.myapplication
打印overlay应用的overlayModuleInfo。
bm dump-overlay [-h] [-b bundleName] [-m moduleName] [-u userId] [-t targetModuleName]
dump-overlay命令参数列表
| 参数 | 参数说明 |
|---|---|
| -h | 帮助信息。 |
| -b | 必选参数,获取指定应用的所有OverlayModuleInfo信息。 |
| -m | 可选参数,默认当前应用主模块名。根据指定的包名和module名查询OverlayModuleInfo信息。 |
| -t | 可选参数,根据指定的包名和目标module名查询OverlayModuleInfo信息。 |
| -u | 可选参数,默认为当前活跃用户。根据指定的包名、目标module名和用户查询OverlayModuleInfo信息。 |
示例:
# 根据包名来获取overlay应用com.ohos.app中的所有OverlayModuleInfo信息 bm dump-overlay -b com.ohos.app # 根据包名和module来获取overlay应用com.ohos.app中overlay module为entry的所有OverlayModuleInfo信息 bm dump-overlay -b com.ohos.app -m entry # 根据包名和module来获取overlay应用com.ohos.app中目标module为feature的所有OverlayModuleInfo信息 bm dump-overlay -b com.ohos.app -m feature
查询目标应用的所有关联overlay应用的overlayModuleInfo信息。
bm dump-target-overlay [-h] [-b bundleName] [-m moduleName] [-u userId]
dump-target-overlay命令参数列表
| 参数 | 参数说明 |
|---|---|
| -h | 帮助信息。 |
| -b | 必选参数,获取指定应用的所有OverlayBundleInfo信息。 |
| -m | 可选参数,默认当前应用主模块名。根据指定的包名和module名查询OverlayBundleInfo信息。 |
| -u | 可选参数,默认为当前活跃用户。根据指定的包名、目标module名和用户查询OverlayBundleInfo信息。 |
示例:
# 根据包名来获取目标应用com.ohos.app中的所有关联的OverlayBundleInfo信息 bm dump-target-overlay-b com.ohos.app # 根据包名和module来获取目标应用com.ohos.app中目标module为entry的所有关联的OverlayModuleInfo信息 bm dump-target-overlay -b com.ohos.app -m entry
错误信息
Failed to install bundle, no signature file.

错误描述
用户安装未签名的HAP包。
可能原因
HAP包没有签名。
处理步骤
错误信息
Error: install parse native so failed.
错误描述
在启动调试或运行C++应用/服务时,安装HAP包出现错误,提示“error: install parse native so failed”错误信息。
可能原因
设备支持的Abi类型与C++工程中配置的Abi类型不匹配。
如果工程依赖的三方库包含so文件,请确保oh_modules/三方库/libs目录包含有设备支持的Abi目录,如libs/arm64-v8a、/libs/x86_64。
对于HarmonyOS应用,在DevEco Studio NEXT Developer Beta1(5.0.3.200)及以上版本不支持编译armeabi-v7a架构的so文件。
处理步骤
若不清楚HarmonyOS SDK安装目录,可单击File > Settings > SDK界面查看安装路径。
hdc shell param get const.product.cpu.abilist
cd /system/ ls
若返回结果为armeabi-v7a/armeabi/arm64-v8a/x86/x86_64中的一个或多个,需要在“abiFilters”参数中至少包含返回结果中的一个Abi类型。
错误信息
Error: install parse profile prop check error.

错误描述
在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install parse profile prop check error”错误信息。
可能原因
处理步骤
错误信息
Error: dependent module does not exist.

错误描述
在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: dependent module does not exist”错误信息。
可能原因
运行/调试的应用依赖的动态共享包(SharedLibrary)模块未安装导致安装报错。
处理步骤
先安装依赖的动态共享包(SharedLibrary)模块,再在应用运行配置页勾选Keep Application Data,点击OK保存配置,再运行/调试。

在运行配置页,选择Deploy Multi Hap标签页,勾选Deploy Multi Hap Packages,选择依赖的模块,点击OK保存配置,再进行运行/调试。

单击Run > Edit Configurations,在General中,勾选Auto Dependencies。点击OK保存配置,再运行/调试。

错误信息
Error: install parse profile missing prop.

错误描述
在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install parse profile missing prop”错误信息。
可能原因
配置文件app.json5和module.json5中必填字段缺失。
处理步骤
方法1:请参考app.json5配置文件和module.json5配置文件查看并补充必填字段。
方法2:通过hilog日志判断缺失字段。
开启落盘命令:
hilog -w start
落盘位置:/data/log/hilog。
打开日志查看“profile prop %{public}s is mission”。如“profile prop icon is mission”表示“icon”字段缺失。
错误信息
Error: install releaseType target not same.

错误描述
在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install releaseType target not same”错误信息。
可能原因
处理步骤
错误信息
Error: signature verification failed due to not trusted app source.

错误描述
在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: signature verification failed due to not trusted app source”错误信息。
可能原因
场景一:签名中未包含该调试设备的UDID。
场景二:签名时使用了发布证书和发布profile文件。发布证书签名的应用不能启动调试或运行。
处理步骤
场景一:
使用自动签名。在连接设备后,重新为应用进行签名。
如果使用的是手动签名,对于HarmonyOS应用,请参考手动签名,在UnsgnedDebugProfileTemplate.json文件中添加该调试设备的UDID。
//UDID获取命令 hdc shell bm get -u
IDE安装路径\sdk\版本号或者default\HarmonyOS\toolchains\lib\ 例如:xxxx\Huawei\DevEco Studio\sdk\HarmonyOS-NEXT-DB1\HarmonyOS\toolchains\lib\ 例如:xxxx\Huawei\DevEco Studio\sdk\default\HarmonyOS\toolchains\lib\
场景二:使用调试证书和调试profile文件重新签名应用。
错误信息
Error: install failed due to grant request permissions failed.

错误描述
在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install failed due to grant request permissions failed”错误信息。
可能原因
默认应用等级为normal,只能使用normal等级的权限,如果使用了system_basic或system_core等级的权限,将导致报错。
处理步骤
IDE安装路径\sdk\版本号或者default\HarmonyOS\toolchains\lib\ 例如:xxxx\Huawei\DevEco Studio\sdk\HarmonyOS-NEXT-DB1\HarmonyOS\toolchains\lib\ 例如:xxxx\Huawei\DevEco Studio\sdk\default\HarmonyOS\toolchains\lib\
错误信息
Error: install failed due to older sdk version in the device.

错误描述
在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install failed due to older sdk version in the device”错误信息。
可能原因
该问题是由于编译打包所使用的SDK版本与设备镜像版本不匹配。
处理步骤
场景一:设备上的镜像版本低于编译打包的SDK版本,请更新设备镜像版本。查询设备镜像版本命令:
hdc shell param get const.ohos.apiversion
如果镜像提供的api版本为10,且应用编译所使用的SDK版本也为10,仍出现该报错,可能是由于镜像版本较低,未兼容新版本SDK校验规则,请将镜像版本更新为最新版本。
场景二:对于需要运行在HarmonyOS设备上的应用,请确认runtimeOS已改为HarmonyOS。
错误信息
Error: install sign info inconsistent.

错误描述
在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install sign info inconsistent”错误信息。
可能原因
处理步骤
错误信息
Error: verify signature failed.

错误描述
签名信息中的包名与应用的包名(bundleName)不一致。
可能原因
场景一:用户导入了三方提供的HSP模块,且该HSP既非集成态HSP,又非同包名的HSP,造成包名不一致。
场景二:用户使用了错误的签名文件(后缀为.p7b)进行签名,造成包名不一致。
处理步骤
场景一:HSP只能给同包名的应用使用,只有集成态HSP可以给不同包名的应用使用。需要用户与三方开发者确认,三方开发者应提供集成态HSP、或同包名的HSP给用户使用。
场景二:检查签名流程和签名证书,参考应用/服务签名。
错误信息
Error: install permission denied.

错误描述
使用hdc install安装HAP时出现错误,提示“code:9568266 error: install permission denied”错误信息。
可能原因
hdc install不能安装release签名的企业应用。
处理步骤
错误信息
Error: install parse unexpected.
错误描述
应用推送到设备安装时,报错包管理打开hap文件失败。
可能原因
场景一:设备system分区存储空间已满,导致hdc file send文件后,因存储空间不足导致设备中文件损坏。
场景二:推送hap包到设备过程hap包损坏。
处理步骤
场景一:查看设备system分区存储空间,若已满,清理存储满足安装所需空间。
hdc shell df -h /system
场景二:查看本地hap与推送到设备上hap的md5值,若不一致则表示推送过程hap损毁,请尝试重传。
错误信息
Error: apl of required permission in proxy data is too low.
错误描述
proxyData标签requiredReadPermission和requiredWritePermission属性验证失败。
可能原因
用户工程module.json中,proxyData标签requiredReadPermission和requiredWritePermission属性验证失败,这两个属性要求system_basic或system_core权限等级。
处理步骤
错误信息
Error: uri in proxy data is wrong.
错误描述
proxyData标签uri属性验证失败。
可能原因
用户工程module.json中,proxyData标签uri属性验证失败,不满足uri格式要求。
处理步骤
错误信息
Error: install debug type not same.
错误描述
应用调试类型(app.json的debug字段)与已安装应用不一致。
可能原因
开发者使用DevEco Studio的debug按钮安装了应用,后面打包之后又通过hdc install方式安装。
处理步骤
错误信息
Error: install failed due to error bundle type.
错误描述
bundleType错误导致应用安装失败。
可能原因
新安装应用的bundleType与已安装的有相同bundleName应用不一致。
处理步骤
方法一:卸载已安装的应用,重新安装新应用。
方法二:修改应用的bundleType,与已安装应用保持一致。
错误信息
Error: install failed due to zero user can only install singleton app.
错误描述
UserID 0用户只允许安装singleton权限应用,singleton权限应用只允许被UserID 0用户安装。
可能原因
singleton权限应用安装未指定UserID 0。
处理步骤
//指定userId安装命令 hdc install -p hap名.hap -u 0
错误信息
Error: install version downgrade.
错误描述
正在安装应用的VersionCode小于系统中已安装应用的VersionCode,安装失败。
可能原因
正在安装应用的VersionCode小于系统中已安装应用的VersionCode。
处理步骤
错误信息
Error: device type is not supported.
错误描述
正在安装的应用不支持当前设备类型,安装失败。
可能原因
正在安装的应用不支持当前设备类型。
处理步骤
错误信息
Error: isolationMode does not match the system.
错误描述
安装应用时,设置的isolationMode与系统配置项允许的系统配置不匹配。
可能原因
场景一:设备支持隔离模式,即persist.bms.supportIsolationMode为true时,HAP配置的isolationMode为nonisolationOnly。
场景二:设备不支持隔离模式,即persist.bms.supportIsolationMode为false时,HAP配置的isolationMode为isolationOnly。
处理步骤
//查询设备persist.bms.supportIsolationMode值,若返回errNum is:106说明没配置 hdc shell param get persist.bms.supportIsolationMode //配置设备persist.bms.supportIsolationMode值 hdc shell param set persist.bms.supportIsolationMode [true|false]
错误信息
Error: uri in proxy data is wrong.
错误描述
应用module.json文件中proxyData标签的uri属性验证失败。
可能原因
uri不满足格式规范。
处理步骤
//uri格式规范 不同数据代理的uri不可重复,且需要满足datashareproxy://当前应用包名/xxx的格式
错误信息
Error: compatible policy not same.
错误描述
新包与已安装包兼容策略不同。
可能原因
处理步骤
错误信息
Error: bundle manager service is died.
错误描述
包管理服务已停止。
可能原因
系统出现未知的异常,导致包管理服务已停止或者异常退出。
处理步骤
hdc shell cd /data/log/faultlog/faultlogger/ ls -ls
hdc file recv /data/log/faultlog/faultlogger/ hdc file recv /data/log/hilog/
错误信息
Error: verify code signature failed.
错误描述
验证代码签名失败。
可能原因
包没有代码签名信息。
处理步骤
错误信息
Error: fail to verify pkcs7 file.
错误描述
验证pkcs7文件失败。
可能原因
应用当前使用的签名不符合HarmonyOS应用签名要求。
处理步骤
在为应用/服务签名时勾选“Support HarmonyOS”,完成HarmonyOS应用签名后再次启动调试或运行应用。

错误信息
Error: debug bundle can only be installed in developer mode.
错误描述
调试包仅支持运行在开发者模式设备。
可能原因
终端设备未开启“开发者模式”。
处理步骤
错误信息
Error: uninstall missing installed bundle.
错误描述
卸载的应用不存在。
可能原因
要卸载的应用没有安装。
处理步骤
错误信息
Error: Failed to uninstall the HAP because the uninstall is forbidden by enterprise device management.
错误描述
企业设备管理不允许卸载该应用。
可能原因
应用被设置为不允许被卸载。
处理步骤
错误信息
Error: install version not compatible.
错误描述
安装版本不匹配。
可能原因
当前安装HSP的版本信息与已安装HAP的版本信息不匹配。
安装HSP时会做如下校验:
处理步骤
错误信息
Error: install invalid number of entry hap.
错误描述
安装包entry模块数量不合规。
可能原因
安装包中entry模块有多个。一个应用只能有一个entry模块,可以有多个feature模块。
处理步骤
错误信息
Error: install vendor not same.
错误描述
安装包vendor不一致。
可能原因
app.json5文件中app的vendor字段配置不一致。
处理步骤
错误信息
Error: install installd service error.
错误描述
安装服务错误。
可能原因
安装服务异常。
处理步骤
错误信息
Error: Failed to install the HSP because installing a shared bundle specified by hapFilePaths is not allowed.
错误描述
安装应用间共享库失败。
可能原因
安装应用间共享HSP时使用“hdc app install ***”指令。
处理步骤
错误信息
Error: installd set selinux label failed.
错误描述
安装设置selinux失败。
可能原因
签名配置文件中APL字段错误。APL有“normal”、“system_basic”和“system_core”三种等级。
处理步骤
确认签名文件p7b中apl字段是否有误。

若apl字段有误,修改UnsgnedReleasedProfileTemplate.json文件中apl字段,并重新签名。

错误信息
Error: check encryption failed.
错误描述
安装加密校验失败。
可能原因
可能是镜像版本较老;或者HAP包lib目录内非so文件导致。
处理步骤
错误信息
error: install version code not same.
可能原因
处理步骤