往期鸿蒙全套实战文章必看:
- 鸿蒙开发核心知识点,看这篇文章就够了
- 最新版!鸿蒙HarmonyOS Next应用开发实战学习路线
- 鸿蒙HarmonyOS NEXT开发技术最全学习路线指南
- 鸿蒙应用开发实战项目,看这一篇文章就够了(部门项目附源码)
bm工具
Bundle Manager(包管理工具,简称bm)是实现应用安装、卸载、更新、查询等功能的工具,bm为开发者提供基本的应用安装包的调试能力,比方:安装应用,卸载应用,查询安装包信息等。
说明
在使用本工具前,开发者需要先获取hdc工具,实行hdc shell。
表1 bm工具命令列表
命令
描述
help
帮助命令,表现bm支持的命令信息。
install
安装命令,用来安装应用。
uninstall
卸载命令,用来卸载应用。
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。
帮助命令
表2 help命令列表
命令
描述
bm help
表现bm工具的能够支持的命令信息。
示例:
安装命令
- bm install [-h] [-p filePath] [-u userId] [-r] [-w waitingTime] [-s hspDirPath]
复制代码 安装命令可以组合,下面列出部门命令。
表3 安装命令列表
命令
描述
bm install -h
表现install支持的命令信息。-h为非必选字段。
bm install -p <filePath>
安装应用,支持指定路径和多个hap、hsp同时安装。安装应用时,-p为必选字段。
bm install -p <filePath> -u <userId>
给指定用户安装一个应用。-u非必选字段,默认为当前活跃用户。
bm install -p <filePath> -r
覆盖安装一个应用,-r为非必选字段,默认支持覆盖安装。
bm install -p <filePath> -r -u <userId>
给指定用户覆盖安装一个应用。
bm install -p <filePath> -r -u <userId> -w <waitingTime>
安装时指定bm工具等候时间,-w非必选字段,最小的等候时长为180s,最大的等候时长为600s, 默认缺省为5s。
bm install -s <hspDirPath>
安装应用间共享库, 每个路径目录下只能存在一个同包名的HSP。-s为安装应用间HSP时必选字段,其他场景为可选字段。
bm install -p <filePath> -s <hspDirPath>
同时安装使用方应用和其依赖的应用间共享库。
示例:
- # 安装一个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 -s xxx.hsp yyy.hsp
- # 同时安装使用方应用和其依赖的应用间共享库
- bm install -p aaa.hap -s xxx.hsp yyy.hsp
复制代码 卸载命令
- bm uninstall [-h] [-n bundleName] [-m moduleName] [-u userId] [-k] [-s] [-v versionCode]
复制代码 命令可以组合,下面列出部门命令。
表4 卸载命令列表
命令
描述
bm uninstall -h
表现uninstall支持的命令信息。-h为非必选字段。
bm uninstall -n <bundleName>
通过指定包名卸载应用。-n为必选字段。
bm uninstall -n <bundleName> -u <userId>
通过指定包名和用户卸载应用。-u非必选字段,默认为当前活跃用户。
bm uninstall -n <bundleName> -u <userId> -k
通过指定包名和用户以保留用户数据方式卸载应用。-k为非必选字段。
bm uninstall -n <bundleName> -m <moduleName>
通过指定包名卸载应用的一个模块。-m为非必选字段。
bm uninstall -n <bundleName> -s
卸载指定的shared bundle。-s为非必选字段,卸载共享库应用时为必选字段。
bm uninstall -n <bundleName> -s -v <versionCode>
卸载指定的shared bundle的指定版本。-v为非必选字段。
示例:
- # 卸载一个应用
- bm uninstall -n com.ohos.app
- # 卸载应用的一个模块
- 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
复制代码 查询应用信息命令
- bm dump [-h] [-a] [-n bundleName] [-s shortcutInfo] [-u userId] [-d deviceId]
复制代码 命令可以组合,下面列出部门命令。
表5 查询命令列表
命令
描述
bm dump -h
表现dump支持的命令信息。-h为非必选字段。
bm dump -a
查询系统已经安装的全部应用包名。-a为非必选字段。
bm dump -n <bundleName>
查询指定包名的具体信息。-n为非必选字段。
bm dump -n <bundleName> -s
查询指定包名下的快捷方式信息。-s为非必选字段。
bm dump -n <bundleName> -d <deviceId>
跨设备查询包信息。-d为非必选字段。
bm dump -n <bundleName> -u <userId>
查询指定用户下指定包名的具体信息。-u为非必选字段,默认为全部用户。
示例:
- # 显示所有已安装的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]
复制代码 表6 清理命令列表
命令
描述
bm clean -h
表现clean支持的命令信息。-h为非必选字段。
bm clean -n <bundleName> -c
清除指定包名的缓存数据。-n为必选字段,-c为非必选字段。
bm clean -n <bundleName> -d
清除指定包名的数据目录。-d为非必选字段。
bm clean -n <bundleName> -c -u <userId>
清除指定用户下包名的缓存数据。-u为非必选字段,默认为当前活跃用户。
bm clean -n <bundleName> -d -u <userId>
清除指定用户下包名的数据目录。
bm clean -n <bundleName> -d -u <userId> -i <appIndex>
清除指定用户下分身应用的数据目录。-i为非必选字段,默认为0。
示例:
- # 清理该应用下的缓存数据
- bm clean -c -n com.ohos.app -u 100
- # 清理该应用下的用户数据
- bm clean -d -n com.ohos.app -u 100
- // 执行结果
- clean bundle data files successfully.
复制代码 使能命令
- bm enable [-h] [-n bundleName] [-a abilityName] [-u userId]
复制代码 表7 使能命令列表
命令
描述
bm enable -h
表现enable支持的命令信息。-h为非必选字段。
bm enable -n <bundleName>
使能指定包名的应用。-n为必选字段。
bm enable -n <bundleName> -a <abilityName>
使能指定包名下的元能力模块。-a为非必选字段。
bm enable -n <bundleName> -u <userId>
使能指定用户和包名的应用。-u为非必选字段,默认为当前活跃用户。
示例:
- # 使能该应用
- bm enable -n com.ohos.app -a com.ohos.app.EntryAbility -u 100
- // 执行结果
- enable bundle successfully.
复制代码 禁用命令
- bm disable [-h] [-n bundleName] [-a abilityName] [-u userId]
复制代码 表8 禁用命令列表
命令
描述
bm disable -h
表现disable支持的命令信息。-h为非必选字段。
bm disable -n <bundleName>
禁用指定包名的应用。-n为必选字段。
bm disable -n <bundleName> -a <abilityName>
禁用指定包名下的元能力模块。-a为非必选字段。
bm disable -n <bundleName> -u <userId>
禁用指定用户和包名下的应用。-u为非必选字段,默认为当前活跃用户。
示例:
- # 禁用该应用
- bm disable -n com.ohos.app -a com.ohos.app.EntryAbility -u 100
- // 执行结果
- disable bundle successfully.
复制代码 获取udid命令
表9 获取udid命令列表
命令
描述
bm get -h
表现get支持的命令信息。-h为非必选字段。
bm get -u
获取设备的udid。-u为必选字段。
示例:
- # 获取设备的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]
复制代码 表10 快速修复命令列表
命令
描述
bm quickfix -h
表现quickfix支持的命令信息。-h为非必选字段。
bm quickfix -a -f <filePath>
实行补丁安装命令。-a非必选字段,指定后,-f为必选字段,未指定-a,则-f为非必选字段。
bm quickfix -q -b <bundleName>
根据包名查询补丁包信息。-q为非必选字段,指定后,-b为必选字段,未指定-q,则-b为非必选字段。
bm quickfix -a -f <filePath> -d
选择debug模式实行补丁安装命令。-d为非必选字段。
bm quickfix -a -f <filePath> -t <target-path>
指定补丁安装目录,且不使能。-t为非必选字段。
bm quickfix -r -b <bundleName>
根据包名卸载未使能的补丁。-r为非必选字段,指定后,-b为必选字段,未指定-r,则-b为非必选字段。
示例:
- # 根据包名查询补丁包信息
- 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]
复制代码 表11 共享库查询命令列表
命令
描述
bm dump-shared -h
表现dump-shared支持的命令信息。-h为非必选字段。
bm dump-shared -a
查询系统中已安装全部共享库。-a为非必选字段。
bm dump-shared -n <bundleName>
查询指定共享库包名的具体信息。-n为非必选字段。
bm dump-shared -n <bundleName> -m <moduleName>
查询指定共享库包名和模块名的具体信息。-m为非必选字段。
示例:
- # 显示所有已安装共享库包名
- bm dump-shared -a
- # 显示该共享库的详细信息
- bm dump-shared -n com.ohos.lib
复制代码 共享库依赖关系查询命令
表现指定应用和指定模块依赖的共享库信息。
- bm dump-dependencies [-h] [-n bundleName] [-m moduleName]
复制代码 表12 共享库依赖关系查询命令列表
命令
描述
bm dump-dependencies -h
表现bm dump-dependencies支持的命令信息。-h为非必选字段。
bm dump-dependencies -n <bundleName>
查询指定应用依赖的共享库信息。-n为必选字段。
bm dump-dependencies -n <bundleName> -m <moduleName>
查询指定应用指定模块依赖的共享库信息。-m为非必选字段。
- # 显示指定应用指定模块依赖的共享库信息
- bm dump-dependencies -n com.ohos.app -m entry
复制代码 应用实行编译AOT命令
应用实行编译AOT命令。
- bm compile [-h] [-m mode] [-r bundleName]
复制代码 表13 compile命令列表
命令
描述
bm compile -h
表现compile支持的命令信息。-h为非必选字段。
bm compile -m <mode-name>
根据包名编译应用。-m为非必选字段,可选值为partial或者full。
bm compile -m <mode-name> -a
编译全部应用。-a为非必选字段。
bm compile -r -a
移除全部编译应用的结果。-r为非必选字段。
bm compile -r <bundleName>
移除应用的结果。
示例:
- # 根据包名编译应用
- bm compile -m partial com.example.myapplication
复制代码 拷贝ap文件命令
拷贝ap文件到指定应用的/data/local/pgo路径。
- bm copy-ap [-h] [-a] [-n bundleName]
复制代码 表14 copy-ap命令列表
命令
描述
bm copy-ap -h
表现copy-ap支持的命令信息。-h为非必选字段。
bm copy-ap -a
拷贝全部包相干ap文件。-a为非必选字段。
bm copy-ap -n <bundleName>
根据包名拷贝对应包相干的ap文件。-n为非必选字段。
示例:
- # 根据包名移动对应包相关的ap文件
- bm copy-ap -n com.example.myapplication
复制代码 查询overlay应用信息命令
打印overlay应用的overlayModuleInfo。
- bm dump-overlay [-h] [-b bundleName] [-m moduleName] [-u userId] [-t targetModuleName]
复制代码 表15 dump-overlay命令列表
命令
描述
bm dump-overlay -h
表现dump-overlay支持的命令信息。-h为非必选字段。
bm dump-overlay -b <bundleName>
获取指定应用的全部OverlayModuleInfo信息。-b为必选字段。
bm dump-overlay -b <bundleName> -m <moduleName>
根据指定的包名和module名查询OverlayModuleInfo信息。-m为非必选字段。
bm dump-overlay -b <bundleName> -t <target-moduleName>
根据指定的包名和目的module名查询OverlayModuleInfo信息。-t为非必选字段。
bm dump-overlay -b <bundleName> -t <target-moduleName> -u <userId>
根据指定的包名、目的module名和用户查询OverlayModuleInfo信息。-u为非必选字段,默认为当前活跃用户。
示例:
- # 根据包名来获取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相干信息命令
查询目的应用的全部关联overlay应用的overlayModuleInfo信息。
- bm dump-target-overlay [-h] [-b bundleName] [-m moduleName] [-u userId]
复制代码 表16 dump-overlay命令列表
命令
描述
bm dump-target-overlay -h
表现dump-target-overlay支持的命令信息。-h为非必选字段。
bm dump-target-overlay -b <bundleName>
获取指定目的应用的全部OverlayBundleInfo信息。-b为必选字段。
bm dump-target-overlay -b <bundleName> -m <moduleName>
根据指定的目的应用的包名和module名查询OverlayModuleInfo信息。-m为非必选字段。
bm dump-target-overlay -b <bundleName> -m <moduleName> -u <userId>
根据指定的目的应用的包名、module名和用户查询OverlayModuleInfo信息。-u为非必选字段,默认为当前活跃用户。
示例:
- # 根据包名来获取目标应用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
复制代码 bm工具错误码
9568320 签名文件不存在
错误信息
Failed to install bundle, no signature file.
错误描述
用户安装未签名的HAP包。
可能原因
HAP包未经签名认证。
处理惩罚步骤
- 使用自动签名。在毗连设备后,重新为应用进行签名。
- 假如使用的是手动签名,对于HarmonyOS应用
9568347 剖析本地so文件失败
错误信息
Error: install parse native so failed.
错误描述
在启动调试或运行C++应用/服务时,安装HAP包出现错误,提示“error: install parse native so failed”错误信息。
可能原因
设备支持的Abi类型与C++工程中设置的Abi类型不匹配。
处理惩罚步骤
- 将设备与DevEco Studio进行毗连。
- 打开命令行工具,并进入SDK安装目录下的toolchains{版本号}目录下。
- 若不清楚HarmonyOS SDK安装目录,可单击File > Settings > SDK界面查看安装路径。
复制代码 - 实行如下命令,查询设备支持的Abi列表,返回结果为default/armeabi-v7a/armeabi/arm64-v8a/x86/x86_64中的一个或多个Abi类型。
- hdc shell
- param get const.product.cpu.abilist
复制代码 - 根据查询返回结果,检查模块级build-profile.json5文件中的“abiFilters”参数中的设置,规则如下:
- 若返回结果为default,请实行如下命令,查询是否存在lib64文件夹。
- 存在lib64文件夹:则“abiFilters”参数中需要包含arm64-v8a类型。
- 不存在lib64文件夹:则“abiFilters”参数中需要至少包含armeabi/armeabi-v7a中的一个类型。
- 若返回结果为armeabi-v7a/armeabi/arm64-v8a/x86/x86_64中的一个或多个,需要在“abiFilters”参数中至少包含返回结果中的一个Abi类型。
9568344 剖析设置文件失败
错误信息
Error: install parse profile prop check error.
错误描述
在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install parse profile prop check error”错误信息。
可能原因
应用使用了应用特权,但应用的签名文件发生变革后未将新的签名指纹重新设置到设备的特权管控白名单文件install_list_capability.json中。
处理惩罚步骤
- 获取新的签名指纹。
a. 在项目级build-profile.json5文件中,signingConfigs字段内的profile的值即为签名文件的存储路径。
b. 打开该签名文件(后缀为.p7b),打开后在文件内搜刮“development-certificate”,将“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”以及中间的信息拷贝到新的文本中,留意换行并去掉换行符,生存为一个新的.cer文件,如命名为xxx.cer。
新的.cer文件格式如下图(仅作为格式示意,内容以现实为准):
c. 使用keytool工具(在DevEco Studio安装目录下的jbr/bin文件夹内),实行如下命令通过.cer文件获取证书指纹的SHA256值。
- keytool -printcert -file xxx.cer
复制代码 d. 将证书指纹中SHA256的内容去掉冒号,即为最终要获得的签名指纹。
如SHA256值为下图(仅作为格式示意,内容以现实为准):
去掉冒号后的签名指纹为:5753DDBC1A8EF88A62058A9FC4B6AFAFC1C5D8D1A1B86FB3532739B625F8F3DB
- 获取设备的特权管控白名单文件install_list_capability.json。
a. 毗连设备。
b. 实行如下命令查看设备的特权管控白名单文件install_list_capability.json。
- find /system -name install_list_capability.json
复制代码 设备上install_list_capability.json的位置通常为以下目录地址,通过bundleName找到对应的设置文件:
- /system/etc/app/install_list_capability.json
复制代码 c. 实行如下命令拉取install_list_capability.json。
- hdc shell mount -o rw,remount /
- hdc file recv /system/etc/app/install_list_capability.json
复制代码 - 将步骤1获取到的签名指纹设置到install_list_capability.json文件的app_signature中,留意要设置到对应的bundleName下。
- 将修改后的install_list_capability.json文件重新推到设备上,并重启设备。
- hdc shell mount -o rw,remount /
- hdc file send install_list_capability.json /system/etc/app/install_list_capability.json
- hdc shell chmod 644 /system/etc/app/install_list_capability.json
- hdc shell reboot
复制代码 - 设备重启后,重新安装新的应用即可。
9568305 依赖的模块不存在
错误信息
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生存设置,再进行运行/调试。
9568259 安装剖析设置文件缺少字段
错误信息
Error: install parse profile missing prop.
错误描述
在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install parse profile missing prop”错误信息。
可能原因
设置文件app.json5和module.json5中必填字段缺失。
处理惩罚步骤
- 方法1:请参考app.json5设置文件和module.json5设置文件查看并补充必填字段。
- 方法2:通过hilog日记判断缺失字段。
开启落盘命令:
落盘位置:/data/log/hilog
打开日记查看“profile prop %{public}s is mission”。如“profile prop icon is mission”表现“icon”字段缺失。
9568258 安装应用的releaseType与已安装应用的releaseType不相同
错误信息
Error: install releaseType target not same.
错误描述
在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install releaseType target not same”错误信息。
可能原因
设备上已安装的旧HAP和如今要安装的新HAP所使用的SDK中的releaseType值不一样。
处理惩罚步骤
9568322 由于应用来源不可信,签名验证失败
错误信息
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
复制代码
- 场景二:使用调试证书和调试profile文件重新签名应用。
9568289 权限哀求失败导致安装失败
错误信息
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品级的权限,将导致报错。
处理惩罚步骤
- 在UnsgnedDebugProfileTemplate.json文件中修改apl品级,调整成system_basic或system_core品级,重新签名打包即可。
9568297 由于设备sdk版本较低导致安装失败
错误信息
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。
9568332 签名不一致导致安装失败
错误信息
Error: install sign info inconsistent.
错误描述
在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install sign info inconsistent”错误信息。
可能原因
设备上已安装的应用与新安装的应用中签名不一致。假如在Edit Configurations中勾选了“Keep Application Data”(不卸载应用,覆盖安装),而且重新进行了签名,将导致该报错。
处理惩罚步骤
- 请卸载设备上已安装的应用,或取消勾选“Keep Application Data”后,重新安装新的应用。
9568329 签名信息验证失败
错误信息
Error: verify signature failed.
错误描述
签名信息中的包名与应用的包名(bundleName)不一致。
可能原因
- 场景一:用户导入了三方提供的HSP模块,且该HSP既非集成态HSP,又非同包名的HSP,造成包名不一致。
- 场景二:用户使用了错误的签名文件(后缀为.p7b)进行签名,造成包名不一致。
处理惩罚步骤
- 场景一:HSP只能给同包名的应用使用,只有集成态HSP可以给差别包名的应用使用。需要用户与三方开发者确认,三方开发者应提供集成态HSP、或同包名的HSP给用户使用。
- 场景二:检查签名流程和签名证书。
9568266 安装权限拒绝
错误信息
Error: install permission denied.
错误描述
使用hdc install安装HAP时出现错误,提示“code:9568266 error: install permission denied”错误信息。
可能原因
hdc install不能安装release签名的企业应用。
处理惩罚步骤
- 请使用hdc install指令安装调试debug签名的企业应用。
9568337 安装剖析失败
错误信息
Error: install parse unexpected.
错误描述
应用推送到设备安装时,报错包管理打开hap文件失败。
可能原因
- 场景一:设备system分区存储空间已满,导致hdc file send文件后,因存储空间不足导致设备中文件损坏。
- 场景二:推送hap包到设备过程hap包损坏。
处理惩罚步骤
- 场景一:查看设备system分许存储空间,若已满,清理存储满意安装所需空间。
- hdc shell param get const.ohos.apiversion
复制代码 - 场景二:查看本地hap与推送到设备上hap的md5值,若不一致则表现推送过程hap损毁,请尝试重传。
9568316 数据署理中APL权限字段描述权限低
错误信息
Error: apl of required permission in proxy data is too low.
错误描述
proxyData标签requiredReadPermission和requiredWritePermission属性验证失败。
可能原因
用户工程module.json中,proxyData标签requiredReadPermission和requiredWritePermission属性验证失败,这两个属性要求system_basic或system_core权限品级。
处理惩罚步骤
- 检查应用定义的proxyData内容是否符合要求。
9568315 数据署理URI错误
错误信息
Error: uri in proxy data is wrong.
错误描述
proxyData标签uri属性验证失败。
可能原因
用户工程module.json中,proxyData标签uri属性验证失败,不满意uri格式要求。
处理惩罚步骤
- 检查应用定义的proxyData内容是否符合要求。
9568336 应用调试类型与已安装应用不一致
错误信息
Error: install debug type not same.
错误描述
应用调试类型(app.json的debug字段)与已安装应用不一致。
可能原因
开发者使用IDE的debug按钮安装了应用,背面打包之后又通过hdc install方式安装。
处理惩罚步骤
9568296 包类型错误
错误信息
Error: install failed due to error bundle type.
错误描述
bundleType错误导致应用安装失败。
可能原因
新安装应用的bundleType与已安装的有相同bundleName应用不一致。
处理惩罚步骤
- 方法一:卸载已安装的应用,重新安装新应用。
- 方法二:修改应用的bundleType,与已安装应用保持一致。
9568292 UserID为0的用户只能安装singleton应用
错误信息
Error: install failed due to zero user can only install singleton app.
错误描述
UserID 0用户只允许安装singleton权限应用,singleton权限应用只允许被UserID 0用户安装。
可能原因
singleton权限应用安装未指定UserID 0。
处理惩罚步骤
- 应用是singleton权限,安装时指定UserID 0。
- //指定userId安装命令
- hdc install -p hap名.hap -u 0
复制代码 9568263 无法降级安装
错误信息
Error: install version downgrade.
错误描述
正在安装应用的VersionCode小于系统中已安装应用的VersionCode,安装失败。
可能原因
正在安装应用的VersionCode小于系统中已安装应用的VersionCode。
处理惩罚步骤
9568304 应用不支持当前设备类型
错误信息
Error: device type is not supported.
错误描述
正在安装的应用不支持当前设备类型,安装失败。
可能原因
正在安装的应用不支持当前设备类型。
处理惩罚步骤
- 如需要适配当前设备,请在应用设备类型设置中增加当前设备类型。应用deviceTypes设置包含phone(手机)、tablet(平板)、2in1(2合1设备)、tv(聪明屏)、wearable(智能手表)和car(车机)。
9568317 应用的多进程设置与系统设置不匹配
错误信息
Error: isolationMode does not match the system.
错误描述
安装应用时,设置的isolationMode与系统设置项允许的系统设置不匹配。
可能原因
- 场景一:设备支持隔离模式,即persist.bms.supportIsolationMode为true时,HAP设置的isolationMode为nonisolationOnly。
- 场景二:设备不支持隔离模式,即persist.bms.supportIsolationMode为false时,HAP设置的isolationMode为isolationOnly。
处理惩罚步骤
- 按照设备的隔离模式设置HAP设置文件isolationMode属性。
- //查询设备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]
复制代码 9568315 数据署理的uri属性错误
错误信息
Error: uri in proxy data is wrong.
错误描述
应用module.json文件中proxyData标签的uri属性验证失败。
可能原因
uri不满意格式规范。
处理惩罚步骤
- 确认uri满意格式规范。
- //uri格式规范
- 不同数据代理的uri不可重复,且需要满足datashareproxy://当前应用包名/xxx的格式
复制代码 9568310 兼容计谋差别
错误信息
Error: compatible policy not same.
错误描述
新包与已安装包兼容计谋差别。
可能原因
设备中已安装相同包名的hap包。
处理惩罚步骤
9568391 包管理服务已停止
错误信息
Error: bundle manager service is died.
错误描述
包管理服务已停止。
可能原因
使用bm install -p ***.hap方式安装预置应用会杀掉正在运行的应用,导致异常(比方foundation进程重启)。
处理惩罚步骤
9568393 验证代码签名失败
错误信息
Error: verify code signature failed.
错误描述
验证代码签名失败。
可能原因
- 场景一:包没有代码签名信息。
- 场景二:签名证书问题。
处理惩罚步骤
- 场景一:使用SDK签名工具验证包是否签名。
- //验证签名指令
- java -jar SDK安装路径(DevEco工具安装目录中sdk)\toolchains\lib\hap-sign-tool.jar verify-app -outCertChain out.cer -outProfile out.p7b -inFile 包路径\**.hap
- // 执行结果1:can not find codesign block。说明包没有签名
- // 执行结果2:verify codesign success。说明包已签名
复制代码 - 场景二:检查签名流程和签名证书
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |