解决应用申请权限失败导致安装报错问题

系统 OpenHarmony
如果应用需要将自身的APL等级声明为system_basic及以上的APL等级,在开发应用安装包时,要修改应用的Profile文件。

想了解更多关于开源的内容,请访问:

​51CTO 开源基础软件社区​

​https://ost.51cto.com​

前言

笔者最近在开发应用时遇到install failed due to grant request permissions failed,报错信息大概意思为由于申请权限失败导致安装失败。

【小源笔记】第六期 | 解决应用申请权限失败导致安装报错问题-开源基础软件社区

查询相关资料得知,应用APL等级有三个,分别是:

APL级别

说明

system_core等级

该等级的应用服务提供操作系统核心能力。

system_basic等级

该等级的应用服务提供系统基础服务。

normal等级

普通应用。

默认情况下,应用的APL等级都为normal等级。

如果应用需要将自身的APL等级声明为system_basic及以上的APL等级,在开发应用安装包时,要修改应用的Profile文件。

问题解决

1.首先根据参考资料[2] 查询应用申请的权限等级,例如笔者这里在config.json文件申请了以下权限。

"reqPermissions": [
{
"name": "ohos.permission.CAPTURE_SCREEN"
}
]

查询应用权限列表得到该权限的级别为system_core。

权限名

权限级别

授权方式

ACL使能

权限说明

ohos.permission.CAPTURE_SCREEN

system_core

system_grant

TRUE

允许应用截取屏幕图像。

2.打开编译当前应用的SDK版本对应的UnsgnedReleasedProfileTemplate.json文件。

【小源笔记】第六期 | 解决应用申请权限失败导致安装报错问题-开源基础软件社区

这里有两种修改方式:

方式一:

修改apl字段的值为应用申请权限的最高等级(system_core>system_basic>normal),高等级的应用可以申请该级别及以下的的权限。

{
...
"bundle-info":{"developer-id":"OpenHarmony",
...
"apl":"system_core","app-feature":"hos_system_app"},
...
}

方式二:

由上面查询的信息得知,权限的ACL使能为TRUE,这意味着我们可以通过ACL方式申请。

将所需申请的权限中高于当前应用APL等级的,添加到allowed-acls列表中。

{
...
"bundle-info":{"developer-id":"OpenHarmony",
...
"apl":"normal","app-feature":"hos_system_app"},"acls":{"allowed-acls":["ohos.permission.CAPTURE_SCREEN"]},
...
}

3.完成以上步骤后,打开DevEco Studio工具进行自动化签名即可,如之前已签过名,需将自动签名的文件全部删除并将signingConfigs字段清空,这样自动签名时才会根据上面修改的签名证书模板生成新的证书。

【小源笔记】第六期 | 解决应用申请权限失败导致安装报错问题-开源基础软件社区

【小源笔记】第六期 | 解决应用申请权限失败导致安装报错问题-开源基础软件社区

【小源笔记】第六期 | 解决应用申请权限失败导致安装报错问题-开源基础软件社区

完成后打包安装即可,如遇到以下install sign info inconsistent报错问题,只需将原来设备上安装的应用卸载再安装即可。

【小源笔记】第六期 | 解决应用申请权限失败导致安装报错问题-开源基础软件社区

结语

对于权限等级开发者应根据实际情况修改对应的应用APL等级,为了系统的安全切勿滥用权限,例如笔者上面的情况推荐的做法是方式二。

想了解更多关于开源的内容,请访问:

​51CTO 开源基础软件社区​

​https://ost.51cto.com​​。

责任编辑:jianghua 来源: 51CTO开源基础软件社区
相关推荐

2023-08-07 15:23:28

鸿蒙首次启动申请授权

2023-01-30 08:09:18

权限GreatSQL运行

2023-10-15 15:56:00

Windows 10微软

2010-09-14 12:59:18

Wi-Fi无线连接失败

2011-08-05 13:41:18

mysql数据库数据库配置

2021-10-18 22:00:54

Windows 10Windows微软

2021-03-25 10:39:59

Windows10操作系统微软

2023-05-25 08:00:36

阿⾥云DNS重试机制

2021-02-21 09:48:19

鸿蒙HarmonyOS应用开发

2021-03-01 19:09:45

编程程序代码

2022-12-21 09:06:38

2009-06-16 14:08:10

JBoss JDBC驱

2009-12-29 11:40:50

2011-07-11 09:54:16

DAC登录触发器

2012-10-15 18:19:25

打印机打印机安装

2011-09-08 09:57:04

Ubunturoot

2021-11-25 22:49:58

Windows 10Windows微软

2010-01-08 15:11:15

交换机安装位置

2012-05-15 09:49:03

TIME_WAITMySQL

2010-01-07 16:10:22

Ubuntu root
点赞
收藏

51CTO技术栈公众号