HarmonyOS 鸿蒙Next 安装报错 install parse profile prop check error 解决方法

HarmonyOS 鸿蒙Next 安装报错 install parse profile prop check error 解决方法

2.解决方法

2.1 背景知识

当前对预置应用的特权进行强管控,这三个特权(AllowAppMultiProcess/AllowAppUsePrivilegeExtension/AllowFormVisibleNotify)无法继续通过签名证书的方式生效,只能通过配置install_list_capability.json的方式生效,格式如下:

{
     "bundleName": "xxxxxx",
     "app_signature" : ["yyyyy"],
      "allowAppUsePrivilegeExtension": true
}

2.2 XTS用例修改方法

如果是XTS用例的HAP出现了msg:error: failed to install bundle. error: install parse profile prop check error,当前可以通过修改XTS测试套的bundleName(包括签名证书中的bundle-name),必须以com.acts.为开头,例如:com.acts.myapplication,签名证书中还是需要配置特权:AllowAppUsePrivilegeExtension

将测试套中的bundleName修改为com.acts.为开头后,重新编译XTS HAP,查看能否正常安装。

2.3 本地调试方法

2.3.1 获取bundleName

确认Hap的包名,即bundleName;

2.3.2 获取app-signature字段

获取Hap的指纹信息,即app-signature字段。

方法一:可以先把module.json中的extensionAbilities 相关的type修改为其他类型,编译安装hap,通过命令获取,有值的字符串就是app-signature:

bm dump -n 包名 |grep finger

方法二:通过给Hap签名的后缀为.p7b的证书获取app-signature

(1) 将.p7b中的distribution-certificate字段单独拷贝出来,如下格式,命名为xxx.cer,注意换行和去掉换行符:

(2) 利用keytool工具打印对应的证书的指纹 keytool -printcert -file xxx.cer

结果:8E93863FC32EE238060BF69A9B37E2608FFFB2xxxxxxxxxxxBAC9F30024B5

(keytool工具 一般在jdk的安装路径或者SDK下面, 可以使用everything搜索一下 )

2.3.3 将板子上的install_list_capability.json拉到本地:

hdc_std shell mount -o rw,remount /

// 需要确认下 bundleName是否在这个json中
hdc_std file recv /system/variant/phone/base/etc/app/install_list_capability.json .

// 或者拉取下面的json,确认bundleName是否存在
hdc_std file recv /system/etc/app/install_list_capability.json .

// 如果两个json中,对应的bundleName均不存在,则可以将bundleName加在其中一个json文件中。

ps:如果在设备上文件路径不存在,可以执行下面命令,找到对应的json文件。

find -name install_list_capability.json

2.3.4 修改install_list_capability.json

按照如下格式追加,注意json格式不能出错,校验网站:https://www.json.cn/

配置: "allowAppUsePrivilegeExtension": true

...
{
     "bundleName": "xxxxxx",
     "app_signature" : ["yyyyy"],
      "allowAppUsePrivilegeExtension": true
}
...

2.3.5 将修改后的install_list_capability.json推到板子上

推到板子上,重启即可。路径根据2.3.3中 拉取该文件的路径一致。

hdc_std shell mount -o rw,remount /
hdc_std file send install_list_capability.json        /system/variant/phone/base/etc/app/install_list_capability.json 
hdc_std shell chmod 777  /system/variant/phone/base/etc/app/install_list_capability.json 
hdc_std shell reboot

或者

hdc_std shell mount -o rw,remount /
hdc_std file send install_list_capability.json        /system/etc/app/install_list_capability.json 
hdc_std shell chmod 777  /system/etc/app/install_list_capability.json 
hdc_std shell reboot

ps:如果路径不存在,需要将推送文件的路径更换为2.3.3中的路径。如果推送失败,报readonly-system,可以尝试下面方法:

hdc_std shell mount -o remount,rw /chip_prod

2.3.6 继续安装Hap,查看是否能够安装成功。


更多关于HarmonyOS 鸿蒙Next 安装报错 install parse profile prop check error 解决方法的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复
Failed to make module file path: /data/storage/el1/bundle/phone_statusbar/ets/Application/AbilityStage.abc  
Failed to make module file path: /data/storage/el1/bundle/phone_statusbar/ets/ServiceExtAbility/ServiceExtAbility.abc  
发现有这两条日志,但是又看到有下面这条日志  
StatusBar_ServiceExtAbility --> onCreate, want: {"deviceId":"","bundleName":"com.ohos.systemui","abilityName":"com.ohos.syste。。。  
确实应该是启动了,上面那个错误日志具体是什么意思呢?

更多关于HarmonyOS 鸿蒙Next 安装报错 install parse profile prop check error 解决方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我的超人,感谢你

下载了screenlock这个模块来导入编译,编译出来的hap,安装的时候一直报error: install failed due to zero user can only install singleton app,我查了一下说是需要“1.系统hap打包时singleton设置为true”,但是我不是这个属性是怎么设置的。。。

先把hap包推到设备上后 使用hdc shell bm install -p 设备上的hap路径 -u 0 安装试试,

  1. 我把生成的hap推进去再使用hdc shell bm install -p 设备上的hap路径 -u 0提示安装成功,但是系统还是会一直卡在OpenHarmony的开机动画界面,进不了系统,经过打日志,是这个hap没有被启动,这需要怎么做呢?
  2. 我之前调试Launcher模块的时候也是有生成两个hap,把两个都推到system/app/com.ohos.launcher/这个目录,重启就可以正常启动使用了。

您好,请您通过在线提单进一步解决:https://developer.huawei.com/consumer/cn/support/feedback/#/,感谢您的反馈和支持。

姓名: John Doe
职位: 软件工程师
简介: 拥有超过10年的软件开发经验,擅长多种编程语言和技术。在多个领域都有项目经验,包括Web开发、移动应用开发和数据分析。

回到顶部