1# bm工具 2 3Bundle Manager(包管理工具,简称bm)是实现应用安装、卸载、更新、查询等功能的工具,bm为开发者提供基本的应用安装包的调试能力。 4 5## 环境要求 6 7在使用本工具前,开发者需要先获取<!--Del-->[<!--DelEnd-->hdc工具<!--Del-->](../../device-dev/subsystems/subsys-toolchain-hdc-guide.md)<!--DelEnd-->,执行hdc shell。 8 9 10## bm工具命令列表 11 12| 命令 | 描述 | 13| -------- | -------- | 14| help | 帮助命令,用于查询bm支持的命令信息。 | 15| install | 安装命令,用于安装应用。 | 16| uninstall | 卸载命令,用于卸载应用。 | 17| dump | 查询命令,用于查询应用的相关信息。 | 18| clean | 清理命令,用于清理应用的缓存和数据。此命令在root版本下可用,在user版本下打开开发者模式可用。其它情况不可用。| 19| <!--DelRow-->enable | 使能命令,用于使能应用,使能后应用可以继续使用。此命令在root版本下可用,在user版本下不可用。 | 20| <!--DelRow-->disable | 禁用命令,用于禁用应用,禁用后应用无法使用。此命令在root版本下可用,在user版本下不可用。 | 21| get | 获取udid命令,用于获取设备的udid。 | 22| quickfix | 快速修复相关命令,用于执行补丁相关操作,如补丁安装、补丁查询。 | 23| compile | 应用执行编译AOT命令。 | 24| copy-ap | 把应用的ap文件拷贝到/data/local/pgo目录下,供shell用户读取文件。 | 25| dump-dependencies | 查询应用依赖的模块信息。 | 26| dump-shared | 查询应用间HSP应用信息。 | 27| dump-overlay | 打印overlay应用的overlayModuleInfo。 | 28| dump-target-overlay | 打印目标应用的所有关联overlay应用的overlayModuleInfo。 | 29 30 31## 帮助命令(help) 32 33```bash 34# 显示帮助信息 35bm help 36``` 37 38 39## 安装命令(install) 40 41```bash 42bm install [-h] [-p filePath] [-r] [-w waitingTime] [-s hspDirPath] 43``` 44 45 **安装命令参数列表** 46 47 48| 参数 | 参数说明 | 49| -------- | -------- | 50| -h | 帮助信息。 | 51| -p | 必选参数,指定路径和多个HAP同时安装。 | 52| -r | 可选参数,覆盖安装一个HAP。默认值为覆盖安装。 | 53| -s | 根据场景判断,安装应用间HSP时为必选参数,其他场景为可选参数。安装应用间共享库, 每个路径目录下只能存在一个同包名的HSP。 | 54| -w | 可选参数,安装HAP时指定bm工具等待时间,最小的等待时长为5s,最大的等待时长为600s, 默认缺省为5s。 | 55 56 57示例: 58```bash 59# 安装一个hap 60bm install -p /data/app/ohos.app.hap 61# 覆盖安装一个hap 62bm install -p /data/app/ohos.app.hap -r 63# 安装一个应用间共享库 64bm install -s xxx.hsp 65# 同时安装使用方应用和其依赖的应用间共享库 66bm install -p aaa.hap -s xxx.hsp yyy.hsp 67# 安装一个hap,等待时间为10s 68bm install -p /data/app/ohos.app.hap -w 10 69``` 70 71## 卸载命令(uninstall) 72 73```bash 74bm uninstall [-h] [-n bundleName] [-m moduleName] [-k] [-s] [-v versionCode] 75``` 76 77 **卸载命令参数列表** 78 79| 参数 | 参数说明 | 80| -------- | -------- | 81| -h | 帮助信息。 | 82| -n | 必选参数,指定Bundle名称卸载应用。| 83| -m | 可选参数,指定卸载应用的一个模块。默认卸载所有模块。 | 84| -k | 可选参数,卸载应用时保存应用数据。默认卸载应用时不保存应用数据。 | 85| -s | 根据场景判断,安装应用间HSP时必选参数,其他场景为可选参数。卸载指定的共享库。| 86| -v | 可选参数,指定共享包的版本号。默认卸载同包名的所有共享包。 | 87 88 89示例: 90 91```bash 92# 卸载一个应用 93bm uninstall -n com.ohos.app 94# 卸载应用的一个模块 95bm uninstall -n com.ohos.app -m com.ohos.app.EntryAbility 96# 卸载一个shared bundle 97bm uninstall -n com.ohos.example -s 98# 卸载一个shared bundle的指定版本 99bm uninstall -n com.ohos.example -s -v 100001 100# 卸载一个应用,并保留用户数据 101bm uninstall -n com.ohos.app -k 102``` 103 104 105## 查询应用信息命令(dump) 106 107```bash 108bm dump [-h] [-a] [-n bundleName] [-s shortcutInfo] [-d deviceId] 109``` 110 111 **查询命令参数列表** 112 113| 参数 | 参数说明 | 114| -------- | -------- | 115| -h | 帮助信息。 | 116| -a | 可选参数,查询系统已经安装的所有应用。 | 117| -n | 可选参数,查询指定Bundle名称的详细信息。 | 118| -s | 可选参数,查询指定Bundle名称下的快捷方式信息。 | 119| -d | 可选参数,查询指定设备中的包信息。默认查询当前设备。 | 120 121 122示例: 123 124```bash 125# 显示所有已安装的Bundle名称 126bm dump -a 127# 查询该应用的详细信息 128bm dump -n com.ohos.app 129# 查询该应用的快捷方式信息 130bm dump -s -n com.ohos.app 131# 查询跨设备应用信息 132bm dump -n com.ohos.app -d xxxxx 133``` 134 135## 清理命令(clean) 136 137```bash 138bm clean [-h] [-c] [-n bundleName] [-d] [-i appIndex] 139``` 140**清理命令参数列表** 141 142| 参数 | 参数说明 | 143| -------- | --------- | 144| -h | 帮助信息。 | 145| -c -n | -n为必选参数,-c为可选参数。清除指定Bundle名称的缓存数据。 | 146| -d -n | -n为必选参数,-d为可选参数。清除指定Bundle名称的数据目录。 | 147| -i | 可选参数,清除分身应用的数据目录。默认为0。| 148 149 150示例: 151 152```bash 153# 清理该应用下的缓存数据 154bm clean -c -n com.ohos.app 155# 清理该应用下的用户数据 156bm clean -d -n com.ohos.app 157// 执行结果 158clean bundle data files successfully. 159``` 160 161<!--Del--> 162## 使能命令(enable) 163 164```bash 165bm enable [-h] [-n bundleName] [-a abilityName] 166``` 167 168 169 **使能命令参数列表** 170 171| 参数 | 参数说明 | 172| -------- | -------- | 173| -h | 帮助信息。 | 174| -n | 必选参数,使能指定Bundle名称的应用。 | 175| -a | 可选参数,使能指定Bundle名称下的元能力模块。 | 176 177 178示例: 179 180```bash 181# 使能该应用 182bm enable -n com.ohos.app -a com.ohos.app.EntryAbility 183// 执行结果 184enable bundle successfully. 185``` 186 187 188## 禁用命令(disable) 189 190```bash 191bm disable [-h] [-n bundleName] [-a abilityName] 192``` 193 194 195 **禁用命令参数列表** 196 197| 参数 | 参数说明 | 198| -------- | -------- | 199| -h | 帮助信息。 | 200| -n | 必选参数,禁用指定Bundle名称的应用。 | 201| -a | 可选参数,禁用指定Bundle名称下的元能力模块。 | 202 203 204示例: 205 206```bash 207# 禁用该应用 208bm disable -n com.ohos.app -a com.ohos.app.EntryAbility 209// 执行结果 210disable bundle successfully. 211``` 212<!--DelEnd--> 213 214 215## 获取udid命令(get) 216 217```bash 218bm get [-h] [-u] 219``` 220 221 **获取udid命令参数列表** 222 223| 参数 | 参数说明 | 224| -------- | -------- | 225| -h |帮助信息。 | 226| -u | 必选参数,获取设备的udid。| 227 228 229示例: 230 231```bash 232# 获取设备的udid 233bm get -u 234// 执行结果 235udid of current device is : 23623CADE0C 237``` 238 239 240## 快速修复命令(quickfix) 241 242```bash 243bm quickfix [-h] [-a -f filePath [-t targetPath] [-d]] [-q -b bundleName] [-r -b bundleName] 244``` 245 246注:hqf文件制作方式可参考[HQF打包指令](packing-tool.md#hqf打包指令)。 247 248 **快速修复命令参数列表** 249| 参数 | 参数说明 | 250| -------- | -------- | 251| -h | 帮助信息。 | 252| -a -f | -a为可选参数,指定-a后,-f为必选参数。执行快速修复补丁安装命令,file-path对应hqf文件,支持传递1个或多个hqf文件,或传递hqf文件所在的目录。 | 253| -q -b | -q为可选参数,指定-q后,-b为必选参数,未指定-q。根据包名查询补丁信息。 | 254| -r -b | -r为可选参数,指定-r后,-b为必选参数。根据包名卸载未使能的补丁。| 255| -t | 可选参数,快速修复应用到指定目标路径。| 256| -d | 可选参数,应用快速修复调试模式。| 257 258 259 260示例: 261 262```bash 263# 根据包名查询补丁包信息 264bm quickfix -q -b com.ohos.app 265// 执行结果 266// Information as follows: 267// ApplicationQuickFixInfo: 268// bundle name: com.ohos.app 269// bundle version code: xxx 270// bundle version name: xxx 271// patch version code: x 272// patch version name: 273// cpu abi: 274// native library path: 275// type: 276# 快速修复补丁安装 277bm quickfix -a -f /data/app/ 278// 执行结果 279apply quickfix succeed. 280# 快速修复补丁卸载 281bm quickfix -r -b com.ohos.app 282// 执行结果 283delete quick fix successfully 284``` 285 286## 共享库查询命令(dump-shared) 287 288```bash 289bm dump-shared [-h] [-a] [-n bundleName] [-m moduleName] 290``` 291 292 **共享库查询命令参数列表** 293 294| 参数 | 参数说明 | 295| -------- | -------- | 296| -h | 帮助信息。 | 297| -a | 可选参数,查询系统中已安装所有共享库。| 298| -n | 可选参数,查询指定共享库包名的详细信息。| 299| -m | 可选参数,查询指定共享库包名和模块名的详细信息。| 300 301 302示例: 303 304```bash 305# 显示所有已安装共享库包名 306bm dump-shared -a 307# 显示该共享库的详细信息 308bm dump-shared -n com.ohos.lib 309# 显示指定应用指定模块依赖的共享库信息 310bm dump-dependencies -n com.ohos.app -m entry 311``` 312 313## 共享库依赖关系查询命令(dump-dependencies) 314 315显示指定应用和指定模块依赖的共享库信息。 316```bash 317bm dump-dependencies [-h] [-n bundleName] [-m moduleName] 318``` 319 320 **共享库依赖关系查询命令参数列表** 321| 参数 | 参数说明 | 322| -------- | -------- | 323| -h | 帮助信息。 | 324| -n | 必选参数,查询指定共享库包名的详细信息。| 325| -m | 可选参数,查询指定应用指定模块依赖的共享库信息。| 326 327示例: 328```Bash 329# 显示指定应用指定模块依赖的共享库信息 330bm dump-dependencies -n com.ohos.app -m entry 331``` 332 333 334## 应用执行编译AOT命令(compile) 335 336应用执行编译AOT命令。 337```bash 338bm compile [-h] [-m mode] [-r bundleName] 339``` 340 **compile命令参数列表** 341 342| 参数 | 参数说明 | 343| -------- | -------- | 344| -h | 帮助信息。 | 345| -a | 可选参数,编译所有应用。| 346| -m | 可选参数,可选值为partial或者full。根据包名编译应用。| 347| -r | 可选参数,移除应用的结果。| 348 349示例: 350 351```bash 352# 根据包名编译应用 353bm compile -m partial com.example.myapplication 354``` 355 356## 拷贝ap文件命令(copy-ap) 357 358拷贝ap文件到指定应用的/data/local/pgo路径。 359 360```bash 361bm copy-ap [-h] [-a] [-n bundleName] 362``` 363 364**copy-ap命令参数列表** 365 366| 参数 | 参数说明 | 367| -------- | -------- | 368| -h | 帮助信息。 | 369| -a | 可选参数,默认所有包相关ap文件。拷贝所有包相关ap文件。| 370| -n | 可选参数,默认当前应用包名。根据包名拷贝对应包相关的ap文件。| 371 372示例: 373 374```bash 375# 根据包名移动对应包相关的ap文件 376bm copy-ap -n com.example.myapplication 377``` 378 379## 查询overlay应用信息命令(dump-overlay) 380 381打印overlay应用的overlayModuleInfo。 382```bash 383bm dump-overlay [-h] [-b bundleName] [-m moduleName] [-t targetModuleName] 384``` 385 386**dump-overlay命令参数列表** 387| 参数 | 参数说明 | 388| -------- | -------- | 389| -h | 帮助信息。 | 390| -b | 必选参数,获取指定应用的所有OverlayModuleInfo信息。| 391| -m | 可选参数,默认当前应用主模块名。根据指定的包名和module名查询OverlayModuleInfo信息。| 392| -t | 可选参数,根据指定的包名和目标module名查询OverlayModuleInfo信息。| 393 394示例: 395 396```bash 397# 根据包名来获取overlay应用com.ohos.app中的所有OverlayModuleInfo信息 398bm dump-overlay -b com.ohos.app 399 400# 根据包名和module来获取overlay应用com.ohos.app中overlay module为entry的所有OverlayModuleInfo信息 401bm dump-overlay -b com.ohos.app -m entry 402 403# 根据包名和module来获取overlay应用com.ohos.app中目标module为feature的所有OverlayModuleInfo信息 404bm dump-overlay -b com.ohos.app -m feature 405``` 406 407## 查询应用的overlay相关信息命令(dump-target-overlay) 408 409查询目标应用的所有关联overlay应用的overlayModuleInfo信息。 410 411```bash 412bm dump-target-overlay [-h] [-b bundleName] [-m moduleName] 413``` 414 415**dump-target-overlay命令参数列表** 416| 参数 | 参数说明 | 417| -------- | -------- | 418| -h | 帮助信息。 | 419| -b | 必选参数,获取指定应用的所有OverlayBundleInfo信息。| 420| -m | 可选参数,默认当前应用主模块名。根据指定的包名和module名查询OverlayBundleInfo信息。| 421 422示例: 423 424```bash 425# 根据包名来获取目标应用com.ohos.app中的所有关联的OverlayBundleInfo信息 426bm dump-target-overlay-b com.ohos.app 427 428# 根据包名和module来获取目标应用com.ohos.app中目标module为entry的所有关联的OverlayModuleInfo信息 429bm dump-target-overlay -b com.ohos.app -m entry 430``` 431 432## bm工具错误码 433 434### 9568320 签名文件不存在 435**错误信息** 436 437Failed to install bundle, no signature file. 438 439 440 441**错误描述** 442 443用户安装未签名的HAP包。 444 445**可能原因** 446 447HAP包没有签名。 448 449**处理步骤** 450 4511. 使用[自动签名](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/ide-signing-V13#section18815157237)。在连接设备后,重新为应用进行签名。 4522. 使用手动签名,请参考[手动签名](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/ide-signing-V13#section297715173233)。 453<br></br> 454 455### 9568347 解析本地so文件失败 456**错误信息** 457 458Error: install parse native so failed. 459 460**错误描述** 461 462在启动调试或运行C++应用/服务时,安装HAP包出现错误,提示“error: install parse native so failed”错误信息。 463 464**可能原因** 465 466设备支持的Abi类型与C++工程中配置的Abi类型不匹配。 467 468> **说明:** 469> 470> - 如果工程有依赖HSP或者HAR模块,请确保所有包含C++代码的模块配置的Abi类型包含设备支持的Abi类型。 471> - 如果工程依赖的三方库包含so文件,请确保oh_modules/三方库/libs目录包含有设备支持的Abi目录,如libs/arm64-v8a、/libs/x86_64。 472<!--RP1--><!--RP1End--> 473 474**处理步骤** 475 4761. 将设备与DevEco Studio进行连接。 4772. 打开命令行工具,并进入SDK安装目录下的toolchains目录下。 478 ``` 479 若不清楚OpenHarmony SDK安装目录,可单击File > Settings > SDK界面查看安装路径。 480 ``` 4813. 执行如下命令,查询设备支持的Abi列表,返回结果为default/armeabi-v7a/armeabi/arm64-v8a/x86/x86_64中的一个或多个Abi类型。 482 ``` 483 hdc shell 484 param get const.product.cpu.abilist 485 ``` 4864. 根据查询返回结果,检查[模块级build-profile.json5](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/ide-hvigor-compilation-options-customizing-sample-V13#section4322212200)文件中的“abiFilters”参数中的配置,规则如下: 487 * 若返回结果为default,请执行如下命令,查询是否存在lib64文件夹。 488 ``` 489 cd /system/ 490 ls 491 ``` 492  493 * 存在lib64文件夹:则“abiFilters”参数中需要包含arm64-v8a类型。 494 * 不存在lib64文件夹:则“abiFilters”参数中需要至少包含armeabi/armeabi-v7a中的一个类型。 495 * 若返回结果为armeabi-v7a/armeabi/arm64-v8a/x86/x86_64中的一个或多个,需要在“abiFilters”参数中至少包含返回结果中的一个Abi类型。 496<br></br> 497 498 499### 9568344 解析配置文件失败 500**错误信息** 501 502Error: install parse profile prop check error. 503 504 505 506**错误描述** 507 508在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install parse profile prop check error”错误信息。 509 510**可能原因** 511 5121. [app.json5配置文件](../quick-start/app-configuration-file.md#配置文件标签)中的bundleName、[module.json5配置文件](../quick-start/module-configuration-file.md#配置文件标签)中name不符合命名规则。 513 514<!--Del--> 5152. [extensionAbilities](../quick-start/module-configuration-file.md#extensionabilities标签)中type字段配置为service或dataShare。 516<!--DelEnd--> 517 518 519**处理步骤** 5201. 根据命名规则调整app.json5配置文件中bundleName、module.json5文件中的name字段。 521<!--Del--> 5222. 若extensionAbilities中type字段配置为service或dataShare,应用需要配置[allowAppUsePrivilegeExtension特权](../../device-dev/subsystems/subsys-app-privilege-config-guide.md),配置方式如下。 523 524 1. 获取新的签名指纹。 525 526 a. 在工程级build-profile.json5(工程根目录下)文件中,signingConfigs字段内的profile的值即为签名文件的存储路径。 527 528 b. 打开该签名文件(后缀为.p7b),打开后在文件内搜索“development-certificate”,将“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”以及中间的信息拷贝到新的文本中,注意换行并去掉换行符,保存为一个新的.cer文件,如命名为xxx.cer。 529 530 新的.cer文件格式如下图(仅作为格式示意,内容以实际为准): 531 532  533 534 c. 使用keytool工具(在DevEco Studio安装目录下的jbr/bin文件夹内),执行如下命令,通过.cer文件获取证书指纹的SHA256值。 535 ``` 536 keytool -printcert -file xxx.cer 537 ``` 538 d. 将证书指纹中SHA256的内容去掉冒号,即为最终要获得的签名指纹。 539 540 如下图(仅作为格式示意,内容以实际为准): 541  542 543 去掉冒号后的签名指纹为:5753DDBC1A8EF88A62058A9FC4B6AFAFC1C5D8D1A1B86FB3532739B625F8F3DB。 544 545 2. 获取设备的特权管控白名单文件install_list_capability.json。 546 547 a. 连接设备,进入shell。 548 ``` 549 hdc shell 550 ``` 551 b. 执行如下命令查看设备的特权管控白名单文件install_list_capability.json。 552 ``` 553 // 设备中查询白名单文件的位置 554 find /system -name install_list_capability.json 555 ``` 556 c. 执行如下命令拉取install_list_capability.json。 557 ``` 558 hdc target mount 559 hdc file recv /system/etc/app/install_list_capability.json 560 ``` 561 562 3. 将步骤1获取到的签名指纹配置到install_list_capability.json文件的app_signature中,注意要配置到对应的bundleName下。 563  564 4. 将修改后的install_list_capability.json文件重新推到设备上,并重启设备。 565 566 ``` 567 hdc target mount 568 hdc file send install_list_capability.json /system/etc/app/install_list_capability.json 569 hdc shell chmod 644 /system/etc/app/install_list_capability.json 570 hdc shell reboot 571 ``` 572 5. 设备重启后,重新安装新的应用即可。<!--DelEnd--> 573 574 575### 9568305 依赖的模块不存在 576**错误信息** 577 578Error: dependent module does not exist. 579 580 581 582**错误描述** 583 584在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: dependent module does not exist”错误信息。 585 586**可能原因** 587 588运行/调试的应用依赖的动态共享包(SharedLibrary)模块未安装导致安装报错。 589 590**处理步骤** 591 5921. 先安装依赖的动态共享包(SharedLibrary)模块,再在应用运行配置页勾选Keep Application Data,点击OK保存配置,再运行/调试。 593 5942. 在运行配置页,选择Deploy Multi Hap标签页,勾选Deploy Multi Hap Packages,选择依赖的模块,点击OK保存配置,再进行运行/调试。 595 5963. 单击Run > Edit Configurations,在General中,勾选Auto Dependencies。点击OK保存配置,再运行/调试。 597 598 599### 9568259 安装解析配置文件缺少字段 600**错误信息** 601 602Error: install parse profile missing prop. 603 604 605 606**错误描述** 607 608在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install parse profile missing prop”错误信息。 609 610**可能原因** 611 612配置文件app.json5和module.json5中必填字段缺失。 613 614**处理步骤** 615 616* 方法1:请参考[app.json5配置文件](../quick-start/app-configuration-file.md)和[module.json5配置文件](../quick-start/module-configuration-file.md)查看并补充必填字段。 617* 方法2:通过hilog日志判断缺失字段。 618 619 开启落盘命令: 620 ``` 621 hilog -w start 622 ``` 623 624 落盘位置:/data/log/hilog。 625 626 打开日志查看“profile prop %{public}s is mission”。如“profile prop icon is mission”表示“icon”字段缺失。 627 628 629### 9568258 安装应用的releaseType与已安装应用的releaseType不相同 630**错误信息** 631 632Error: install releaseType target not same. 633 634 635 636**错误描述** 637 638在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install releaseType target not same”错误信息。 639 640**可能原因** 641 642* 场景一:设备上已安装的旧HAP和现在要安装的新HAP所使用的SDK中的releaseType值不一样。 643* 场景二:安装的应用为多HAP时,每个HAP所使用的SDK中的releaseType值不一致。 644 645**处理步骤** 646 647* 场景一:请先卸载设备上已安装的HAP,再安装新的HAP。 648* 场景二:使用相同版本的SDK对HAP重新打包,保证多HAP的releaseType值一致。 649 650 651### 9568322 由于应用来源不可信,签名验证失败 652**错误信息** 653 654Error: signature verification failed due to not trusted app source. 655 656 657 658**错误描述** 659 660在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: signature verification failed due to not trusted app source”错误信息。 661 662**可能原因** 663 664* 场景一:签名中未包含该调试设备的UDID。 665 666* 场景二:签名时使用了[发布证书和发布profile文件](https://developer.huawei.com/consumer/cn/doc/app/agc-help-releaseharmony-0000001933963166)。发布证书签名的应用不能启动调试或运行。 667 668**处理步骤** 669 670* 场景一: 671 1. 使用[自动签名](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/ide-signing-V13#section18815157237)。在连接设备后,重新为应用进行签名。 672 2. 如果使用的是手动签名,对于OpenHarmony应用,请参考<!--RP2-->[OpenHarmony应用手动签名](../security/hapsigntool-guidelines.md)<!--RP2End-->,在UnsgnedDebugProfileTemplate.json文件中添加该调试设备的**UDID**。 673 674 1. 获取当前设备的UDID。 675 676 ``` 677 //UDID获取命令 678 hdc shell bm get -u 679 ``` 680 681 2. 打开IDE安装路径,在sdk目录下找到UnsgnedDebugProfileTemplate.json配置文件。 682 683 ``` 684 IDE安装路径\sdk\版本号或者default\openharmony\toolchains\lib\ 685 686 例如:xxxx\Huawei\DevEco Studio\sdk\HarmonyOS-NEXT-DB1\openharmony\toolchains\lib\ 687 例如:xxxx\Huawei\DevEco Studio\sdk\default\openharmony\toolchains\lib\ 688 ``` 689 690 3. 在UnsgnedDebugProfileTemplate.json文件的device-ids字段中,添加当前设备的UDID。 691 692* 场景二:使用[调试证书和调试profile文件](https://developer.huawei.com/consumer/cn/doc/app/agc-help-debug-app-0000001914423098)重新签名应用。 693 694 695### 9568289 权限请求失败导致安装失败 696**错误信息** 697 698Error: install failed due to grant request permissions failed. 699 700 701 702**错误描述** 703 704在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install failed due to grant request permissions failed”错误信息。 705 706**可能原因** 707 708默认应用等级为normal,只能使用normal等级的权限,如果使用了system_basic或system_core等级的权限,将导致报错。 709 710**处理步骤** 711 7121. 打开IDE安装路径,在sdk目录下找到UnsgnedDebugProfileTemplate.json配置文件。 713``` 714IDE安装路径\sdk\版本号或者default\openharmony\toolchains\lib\ 715 716例如:xxxx\Huawei\DevEco Studio\sdk\HarmonyOS-NEXT-DB1\openharmony\toolchains\lib\ 717例如:xxxx\Huawei\DevEco Studio\sdk\default\openharmony\toolchains\lib\ 718``` 7192. 在UnsgnedDebugProfileTemplate.json文件中修改APL等级,修改APL等级为system_core等级,重新签名打包即可。 720 721### 9568297 由于设备sdk版本较低导致安装失败 722**错误信息** 723 724Error: install failed due to older sdk version in the device. 725 726 727 728**错误描述** 729 730在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install failed due to older sdk version in the device”错误信息。 731 732**可能原因** 733 734该问题是由于编译打包所使用的SDK版本与设备镜像版本不匹配。 735 736**处理步骤** 737 738* 场景一:设备上的镜像版本低于编译打包的SDK版本,请更新设备镜像版本。查询设备镜像版本命令: 739 ``` 740 hdc shell param get const.ohos.apiversion 741 ``` 742 如果镜像提供的api版本为10,且应用编译所使用的SDK版本也为10,仍出现该报错,可能是由于镜像版本较低,未兼容新版本SDK校验规则,请将镜像版本更新为最新版本。 743 744* 场景二:对于需要运行在OpenHarmony设备上的应用,请确认runtimeOS已改为OpenHarmony。 745 746### 9568332 签名不一致导致安装失败 747**错误信息** 748 749Error: install sign info inconsistent. 750 751 752 753**错误描述** 754 755在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install sign info inconsistent”错误信息。 756 757**可能原因** 758 7591. 设备上已安装的应用与新安装的应用中签名不一致或者多个包(HAP和HSP)之间的签名存在差异。如果在“Edit Configurations”中勾选了“Keep Application Data”(即不卸载应用,直接覆盖安装),并且重新进行了签名,将导致该报错。 7602. 如果某个应用被卸载但是保留了数据,那么后面安装相同包名的应用时,需要校验其身份信息的一致性。如果两者的签名信息皆不一致,则会导致该报错。 761 762 763**处理步骤** 764 7651. 请卸载设备上已安装的应用,或取消勾选“Keep Application Data”后,重新安装新的应用。 7662. 如果是因不同团队提供的HSP导致签名不一致问题,可以采用[集成态HSP](../quick-start/integrated-hsp.md)的方式统一提供HSP;在多HAP包的情况下,必须确保所有HAP包的签名一致。 7673. 如果某个应用被卸载但是保留了数据,后面安装相同包名但签名信息不一致的应用时,安装失败。如果出现这种情况,则需要把之前已卸载掉的应用重新安装之后,执行不保留数据地卸载,这样相同包名但签名信息不一致的应用才能安装成功。 768 769### 9568329 签名信息验证失败 770**错误信息** 771 772Error: verify signature failed. 773 774 775 776**错误描述** 777 778签名信息中的包名与应用的包名(bundleName)不一致。 779 780**可能原因** 781 782* 场景一:用户导入了三方提供的HSP模块,且该HSP既非[集成态HSP](../quick-start/integrated-hsp.md),又非同包名的HSP,造成包名不一致。 783 784* 场景二:用户使用了错误的签名文件(后缀为.p7b)进行签名,造成包名不一致。 785 786 787**处理步骤** 788 789* 场景一:HSP只能给同包名的应用使用,只有集成态HSP可以给不同包名的应用使用。需要用户与三方开发者确认,三方开发者应提供集成态HSP、或同包名的HSP给用户使用。 790 791* 场景二:检查签名流程和签名证书,参考[应用/服务签名](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/ide-signing-V13)。 792 793 794### 9568266 安装权限拒绝 795**错误信息** 796 797Error: install permission denied. 798 799 800 801**错误描述** 802 803使用hdc install安装HAP时出现错误,提示“code:9568266 error: install permission denied”错误信息。 804 805**可能原因** 806 807hdc install不能安装release签名的企业应用。 808 809**处理步骤** 810 8111. 请使用hdc install指令安装调试debug签名的企业应用。 812 813 814### 9568337 安装解析失败 815**错误信息** 816 817Error: install parse unexpected. 818 819**错误描述** 820 821应用推送到设备安装时,报错包管理打开hap文件失败。 822 823**可能原因** 824 825* 场景一:设备system分区存储空间已满,导致hdc file send文件后,因存储空间不足导致设备中文件损坏。 826 827* 场景二:推送hap包到设备过程hap包损坏。 828 829**处理步骤** 830 831* 场景一:查看设备system分区存储空间,若已满,清理存储满足安装所需空间。 832 ```bash 833 hdc shell df -h /system 834 ``` 835 836* 场景二:查看本地hap与推送到设备上hap的md5值,若不一致则表示推送过程hap损毁,请尝试重传。 837 838 839### 9568316 数据代理中APL权限字段描述权限低 840**错误信息** 841 842Error: apl of required permission in proxy data is too low. 843 844**错误描述** 845 846proxyData标签requiredReadPermission和requiredWritePermission属性验证失败。 847 848**可能原因** 849 850用户工程module.json中,proxyData标签requiredReadPermission和requiredWritePermission属性验证失败,这两个属性要求system_basic或system_core权限等级。 851 852**处理步骤** 853 8541. 检查应用定义的proxyData内容是否符合要求,参考[proxyData标签](../quick-start/module-configuration-file.md#proxydata标签)。 855 856 857### 9568315 数据代理URI错误 858**错误信息** 859 860Error: uri in proxy data is wrong. 861 862**错误描述** 863 864proxyData标签uri属性验证失败。 865 866**可能原因** 867 868用户工程module.json中,proxyData标签uri属性验证失败,不满足uri格式要求。 869 870**处理步骤** 871 8721. 检查应用定义的proxyData内容是否符合要求,参考[proxyData标签](../quick-start/module-configuration-file.md#proxydata标签)。 873 874 875### 9568336 应用调试类型与已安装应用不一致 876**错误信息** 877 878Error: install debug type not same. 879 880**错误描述** 881 882应用调试类型(app.json的debug字段)与已安装应用不一致。 883 884**可能原因** 885 886开发者使用DevEco Studio的debug按钮安装了应用,后面打包之后又通过hdc install方式安装。 887 888**处理步骤** 889 8901. 卸载已安装的应用,重新安装新应用。 891 892 893### 9568296 包类型错误 894**错误信息** 895 896Error: install failed due to error bundle type. 897 898**错误描述** 899 900bundleType错误导致应用安装失败。 901 902**可能原因** 903 904新安装应用的bundleType与已安装的有相同bundleName应用不一致。 905 906**处理步骤** 907 908* 方法一:卸载已安装的应用,重新安装新应用。 909 910* 方法二:修改应用的bundleType,与已安装应用保持一致。 911 912 913### 9568292 UserID为0的用户只能安装singleton应用 914**错误信息** 915 916Error: install failed due to zero user can only install singleton app. 917 918**错误描述** 919 920UserID 0用户只允许安装singleton权限应用,singleton权限应用只允许被UserID 0用户安装。 921 922**可能原因** 923 924singleton权限应用安装未指定UserID 0。 925 926**处理步骤** 927 9281. 应用是singleton权限,安装时指定UserID 0。 929 ``` 930 //指定userId安装命令 931 hdc install -p hap名.hap -u 0 932 ``` 933 934 935### 9568263 无法降级安装 936**错误信息** 937 938Error: install version downgrade. 939 940**错误描述** 941 942正在安装应用的VersionCode小于系统中已安装应用的VersionCode,安装失败。 943 944**可能原因** 945 946正在安装应用的VersionCode小于系统中已安装应用的VersionCode。 947 948**处理步骤** 949 9501. 卸载已安装的应用,重新安装新应用。 951 952 953### 9568304 应用不支持当前设备类型 954**错误信息** 955 956Error: device type is not supported. 957 958**错误描述** 959 960正在安装的应用不支持当前设备类型,安装失败。 961 962**可能原因** 963 964正在安装的应用不支持当前设备类型。 965 966**处理步骤** 967 9681. 如需要适配当前设备,请在应用设备类型配置中增加当前设备类型。应用deviceTypes配置包含phone(手机)、tablet(平板)、2in1(2合1设备)、tv(智慧屏)、wearable(智能手表)和car(车机)。 969 970 971### 9568317 应用的多进程配置与系统配置不匹配 972**错误信息** 973 974Error: isolationMode does not match the system. 975 976**错误描述** 977 978安装应用时,设置的isolationMode与系统配置项允许的系统配置不匹配。 979 980**可能原因** 981 982* 场景一:设备支持隔离模式,即persist.bms.supportIsolationMode为true时,HAP配置的isolationMode为nonisolationOnly。 983 984* 场景二:设备不支持隔离模式,即persist.bms.supportIsolationMode为false时,HAP配置的isolationMode为isolationOnly。 985 986**处理步骤** 987 9881. 按照设备的隔离模式配置HAP配置文件isolationMode属性。 989 ``` 990 //查询设备persist.bms.supportIsolationMode值,若返回errNum is:106说明没配置 991 hdc shell 992 param get persist.bms.supportIsolationMode 993 //配置设备persist.bms.supportIsolationMode值 994 hdc shell 995 param set persist.bms.supportIsolationMode [true|false] 996 ``` 997 998 999### 9568315 数据代理的uri属性错误 1000**错误信息** 1001 1002Error: uri in proxy data is wrong. 1003 1004**错误描述** 1005 1006应用module.json文件中proxyData标签的uri属性验证失败。 1007 1008**可能原因** 1009 1010uri不满足格式规范。 1011 1012**处理步骤** 1013 10141. 确认uri满足格式规范。 1015 ``` 1016 //uri格式规范 1017 不同数据代理的uri不可重复,且需要满足datashareproxy://当前应用包名/xxx的格式 1018 ``` 1019 1020 1021### 9568310 兼容策略不同 1022**错误信息** 1023 1024Error: compatible policy not same. 1025 1026**错误描述** 1027 1028新包与已安装包兼容策略不同。 1029 1030**可能原因** 1031 10321. 应用已安装,再安装一个同包名的应用间共享库。 10332. 应用间共享库已安装,再安装一个同包名的应用。 1034 1035**处理步骤** 1036 10371. 卸载已安装的应用或应用间共享库,再安装新包。 1038 1039 1040### 9568391 包管理服务已停止 1041**错误信息** 1042 1043Error: bundle manager service is died. 1044 1045**错误描述** 1046 1047包管理服务已停止。 1048 1049**可能原因** 1050 1051系统出现未知的异常,导致包管理服务已停止或者异常退出。 1052 1053**处理步骤** 1054 10551. 重启手机后再次尝试安装应用。 1056 10572. 重复上述步骤3到5次后依旧安装失败,请查询设备的/data/log/faultlog/faultlogger/目录下是否存在包含foundation字样的crash文件。 1058``` 1059hdc shell 1060cd /data/log/faultlog/faultlogger/ 1061ls -ls 1062``` 10633. 导出crash文件和日志文件提[在线工单](https://developer.huawei.com/consumer/cn/support/feedback/#/)获取帮助。 1064``` 1065hdc file recv /data/log/faultlog/faultlogger/ 1066hdc file recv /data/log/hilog/ 1067``` 1068 1069### 9568393 验证代码签名失败 1070**错误信息** 1071 1072Error: verify code signature failed. 1073 1074**错误描述** 1075 1076验证代码签名失败。 1077 1078**可能原因** 1079 1080包没有代码签名信息。 1081 1082**处理步骤** 1083 10841. 安装最新版本DevEco Studio,重新签名。 1085 1086<!--RP3--><!--RP3End--> 1087 1088### 9568401 调试包仅支持运行在开发者模式设备 1089**错误信息** 1090 1091Error: debug bundle can only be installed in developer mode. 1092 1093**错误描述** 1094 1095调试包仅支持运行在开发者模式设备。 1096 1097**可能原因** 1098 1099终端设备未开启“开发者模式”。 1100 1101**处理步骤** 1102 11031. 终端系统查看“设置 > 系统”中是否有“开发者选项”,如果不存在,可在“设置 > 关于本机”连续七次单击“版本号”,直到提示“开启开发者模式”,点击“确认开启”后输入PIN码(如果已设置),设备将自动重启。 11042. USB数据线连接终端和PC,在“设置 > 系统 > 开发者选项”中,打开“USB调试”开关,弹出的“允许USB调试”的弹框,点击“允许”。 11053. 启动调试或运行应用。 1106 1107### 9568386 卸载的应用不存在 1108**错误信息** 1109 1110Error: uninstall missing installed bundle. 1111 1112**错误描述** 1113 1114卸载的应用不存在。 1115 1116**可能原因** 1117 1118要卸载的应用没有安装。 1119 1120**处理步骤** 1121 11221. 确认要卸载的应用是否已经安装。 1123 1124### 9568388 企业设备管理不允许卸载该应用 1125**错误信息** 1126 1127Error: Failed to uninstall the HAP because the uninstall is forbidden by enterprise device management. 1128 1129**错误描述** 1130 1131企业设备管理不允许卸载该应用。 1132 1133**可能原因** 1134 1135应用被设置为不允许被卸载。 1136 1137**处理步骤** 1138 11391. 由设置方取消该应用的卸载管控。 1140 1141### 9568284 安装版本不匹配 1142**错误信息** 1143 1144Error: install version not compatible. 1145 1146**错误描述** 1147 1148安装版本不匹配。 1149 1150**可能原因** 1151 1152当前安装HSP的版本信息与已安装HAP的版本信息不匹配。 1153安装HSP时会做如下校验: 11541. bundleName和HAP的一致。 11552. version和HAP的一致。 11563. 签名和HAP的一致。 1157 1158**处理步骤** 1159 11601. 卸载版本信息不匹配的HAP,再安装HSP。 11612. 修改HSP版本信息与HAP一致,再安装HSP。 1162 1163### 9568287 安装包entry模块数量不合规 1164**错误信息** 1165 1166Error: install invalid number of entry hap. 1167 1168**错误描述** 1169 1170安装包entry模块数量不合规。 1171 1172**可能原因** 1173 1174安装包中entry模块有多个。一个应用只能有一个entry模块,可以有多个feature模块。 1175 1176**处理步骤** 1177 11781. 保留一个entry模块,其余entry模块修改为feature(修改module.json5中type字段)。 1179 1180 1181### 9568281 安装包vendor不一致 1182**错误信息** 1183 1184Error: install vendor not same. 1185 1186**错误描述** 1187 1188安装包vendor不一致。 1189 1190**可能原因** 1191 1192app.json5文件中app的vendor字段配置不一致。 1193 1194**处理步骤** 1195 11961. 若只有一个HAP,要求与已安装应用vendor字段一致,卸载重装即可。 11972. 若包含集成态HSP,要求集成态HSP与使用方HAP的vendor字段保持一致。 1198 1199 1200### 9568274 安装服务错误 1201**错误信息** 1202 1203Error: install installd service error. 1204 1205**错误描述** 1206 1207安装服务错误。 1208 1209**可能原因** 1210 1211安装服务异常。 1212 1213**处理步骤** 1214 12151. 清除缓存,重启设备。 1216 1217 1218### 9568314 安装应用间共享库失败 1219**错误信息** 1220 1221Error: Failed to install the HSP because installing a shared bundle specified by hapFilePaths is not allowed. 1222 1223**错误描述** 1224 1225安装应用间共享库失败。 1226 1227**可能原因** 1228 1229安装应用间共享HSP时使用“hdc app install ***”指令。 1230 1231**处理步骤** 1232 12331. 安装应用间HSP时使用“hdc install -s ***”指令。 1234 1235 1236### 9568359 安装设置selinux失败 1237**错误信息** 1238 1239Error: installd set selinux label failed. 1240 1241**错误描述** 1242 1243安装设置selinux失败。 1244 1245**可能原因** 1246 1247签名配置文件中APL字段错误。APL有“normal”、“system_basic”和“system_core”三种等级。 1248 1249**处理步骤** 1250 12511. 确认签名文件p7b中apl字段是否有误。 1252 1253  1254 12552. 若apl字段有误,修改UnsgnedReleasedProfileTemplate.json文件中apl字段,并重新签名。 1256 1257  1258 1259 1260### 9568403 安装加密校验失败 1261**错误信息** 1262 1263Error: check encryption failed. 1264 1265**错误描述** 1266 1267安装加密校验失败。 1268 1269**可能原因** 1270 1271可能是镜像版本较老;或者HAP包lib目录内非so文件导致。 1272 1273**处理步骤** 1274 12751. 安装新版本镜像。 12762. 删除HAP工程中lib目录内非so文件,重新签名打包。 1277 1278### 9568417 签名校验失败 1279**错误信息** 1280 1281Error: bundle cannot be installed because the appId is not same with preinstalled bundle. 1282 1283**错误描述** 1284 1285签名校验失败。 1286 1287**可能原因** 1288 1289安装的应用与已经预置的同包名应用签名不一致。 1290 1291**处理步骤** 1292 12931. 如果安装的应用是预置应用,需要保证安装应用的签名与预置应用的一致。 1294 1295### 9568278 安装包的版本号不一致 1296**错误信息** 1297 1298error: install version code not same. 1299 1300**可能原因** 13011. 设备上安装的应用和安装报错的应用包版本号(versionCode)不一致。 13022. 安装多个包中存在版本号(versionCode)不一致。 1303 1304**处理步骤** 13051. 调整安装包的版本和设备中已存在的应用包的版本号(versionCode)一致,或者卸载设备中的应用,再去安装新的应用包。 13062. 调整安装的多个包的版本号(versionCode),所有的包都需要保持版本号(versionCode)一致。