
Harmony OS 应用权限管控
应用权限是软件用来访问系统资源和使用系统能力的一种通行方式。在涉及用户隐私相关功能和数据的场景,例如:访问个人设备的硬件特性,如摄像头、麦克风,以及读写媒体文件等,OpenHarmony通过应用权限管理组件来保护这些数据以及能力。在系统应用开发过程中,如果应用要使用敏感权限,开发者可以调用应用权限管理组件接口检查待访问权限是否被授权,如果未授权,操作不允许。
·
应用权限是软件用来访问系统资源和使用系统能力的一种通行方式。在涉及用户隐私相关功能和数据的场景,例如:访问个人设备的硬件特性,如摄像头、麦克风,以及读写媒体文件等,OpenHarmony通过应用权限管理组件来保护这些数据以及能力。
在系统应用开发过程中,如果应用要使用敏感权限,开发者可以调用应用权限管理组件接口检查待访问权限是否被授权,如果未授权,操作不允许。
- 应用(包括应用引用的三方库)所需权限必须在应用的配置文件中严格按照权限开发指导逐个声明。参考声明权限。
- 权限申请满足最小化原则,禁止申请非必要的、已废弃的权限。应用申请过多权限,会引起用户对应用安全性的担忧以及使用体验变差,从而也会影响到应用的安装率和留存率。
- 应用申请敏感权限时,必须填写权限使用理由字段,敏感权限通常是指与用户隐私密切相关的权限,包括地理位置、相机、麦克风、日历、健身运动、身体传感器、音乐、文件、图片视频等权限。参考向用户申请授权。
- 应用敏感权限须在对应业务功能执行前动态申请,满足隐私最小化要求。
- 用户拒绝授予某个权限后,应用与此权限无关的其他业务功能应允许正常使用。
授权方式
-
system_grant(系统授权)
- 需要在安装包中申请system_grant权限,那么系统会在用户安装应用时,自动把相应权限授予给应用。
- 应用被允许访问的数据不会涉及到用户或设备的敏感信息
-
user_grant(用户授权)
- 会弹出窗口询问用户的意见-应用被允许访问的数据将会涉及到用户或设备的敏感信息
APL等级(元能力权限等级):
ACL访问控制列表:
- 权限等级和应用APL等级是一一对应的。原则上,拥有低APL等级的应用默认无法申请更高等级的权限。访问控制列表ACL(Access Control List)提供了解决低等级应用访问高等级权限问题的特殊渠道
- 系统权限均定义了“ACL使能”字段,当该权限的ACL使能为TRUE,应用可以使用ACL方式跨级别申请该权限。具体单个权限的定义,可参考应用权限列表。
应用申请权限流程图:
- Noraml 等级的应用申请权限
- System_basic等级的应用申请权限
申请权限:
- 在module.json5配置文件的requestPermissions标签中声明权限。
{
"module" : {
// ...
"requestPermissions":[
{
"name" : "ohos.permission.PERMISSION1",
"reason": "$string:reason",
"usedScene": {
"abilities": [
"FormAbility"
],
"when":"inuse"
}
},
{
"name" : "ohos.permission.PERMISSION2",
"reason": "$string:reason",
"usedScene": {
"abilities": [
"FormAbility"
],
"when":"always"
}
}
]
}
}
更多推荐
所有评论(0)