在鸿蒙中应用权限保护的对象可以分为数据和功能:
- 数据包含了个人数据(如照片、通讯录、日历、位置等)、设备数据(如设备标识、相机、麦克风等)、应用数据。
- 功能则包括了设备功能(如打电话、发短信、联网等)、应用功能(如弹出悬浮框、创建快捷方式等)等。
HarmonyOS中是基于统一管理的TokenID来校检应用权限的,值得一提的是:应用分身会有不同的TokenID
权限组与子权限:
- 为了尽可能减少系统弹出的权限弹窗数量,优化交互体验,系统将逻辑紧密相关的user_grant权限组合在一起,形成多个权限组。
- 当应用请求权限时,同一个权限组的权限将会在一个弹窗内一起请求用户授权。权限组中的某个权限,称之为该权限组的子权限。
- 权限组和权限的归属关系并不是固定不变的,一个权限所属的权限组有可能发生变化。当前系统支持权限组请查阅应用权限列表。
元能力权限等级(APL):
- 在默认的情况下,应用APL等级都为normal
- system_basic权限允许应用访问操作系统基础服务相关的资源
- system_core权限涉及到开放操作系统核心资源的访问操作,目前暂不向任何三方应用开放。
访问控制列表(ACL):
- 权限等级和应用APL等级是一一对应的。原则上,拥有低APL等级的应用默认无法申请更高等级的权限。访问控制列表ACL(Access Control List)提供了解决低等级应用访问高等级权限问题的特殊渠道
- 系统权限均定义了“ACL使能”字段,当该权限的ACL使能为TRUE,应用可以使用ACL方式跨级别申请该权限。具体单个权限的定义,可参考应用权限列表。
授权方式:(要用户授权就弹窗)
- system_grant(系统授权)
- 应用被允许访问的数据不会涉及到用户或设备的敏感信息
- 需要在安装包中申请system_grant权限,那么系统会在用户安装应用时,自动把相应权限授予给应用。
- user_grant(用户授权)
- 会弹出窗口询问用户的意见-应用被允许访问的数据将会涉及到用户或设备的敏感信息