Openharmony应用权限声明及权限列表

应用权限管控概述

简介

系统提供了一种允许应用访问系统资源(如:通讯录等)和系统能力(如:访问摄像头、麦克风等)的通用权限访问方式,来保护系统数据(包括用户个人数据)或功能,避免它们被不当或恶意使用。

应用权限保护的对象可以分为数据和功能:

  • 数据包括个人数据(如照片、通讯录、日历、位置等)、设备数据(如设备标识、相机、麦克风等)。

  • 功能包括设备功能(如访问摄像头/麦克风、打电话、联网等)、应用功能(如弹出悬浮窗、创建快捷方式等)。

权限使用的基本原则

合理的使用场景有助于应用权限申请和使用。开发应用时权限申请需要满足如下原则:

  • 应用(包括应用引用的三方库)所需权限必须在应用的配置文件中严格按照权限开发指导逐个声明。参考声明权限

  • 权限申请满足最小化原则,禁止申请非必要的、已废弃的权限。应用申请过多权限,会引起用户对应用安全性的担忧以及使用体验变差,从而也会影响到应用的安装率和留存率。

  • 应用申请敏感权限时,必须填写权限使用理由字段,敏感权限通常是指与用户隐私密切相关的权限,包括地理位置、相机、麦克风、日历、健身运动、身体传感器、音乐、文件、图片视频等权限。参考向用户申请授权

  • 应用敏感权限须在对应业务功能执行前动态申请,满足隐私最小化要求。

  • 用户拒绝授予某个权限后,应用与此权限无关的其他业务功能应允许正常使用。

授权方式

根据授权方式的不同,权限类型可分为system_grant(系统授权)和user_grant(用户授权)。

system_grant(系统授权)

system_grant指的是系统授权类型,在该类型的权限许可下,应用被允许访问的数据不会涉及到用户或设备的敏感信息,应用被允许执行的操作对系统或者其他应用产生的影响可控。

如果在应用中申请了system_grant权限,那么系统会在用户安装应用时,自动把相应权限授予给应用。

user_grant(用户授权)

user_grant指的是用户授权类型,在该类型的权限许可下,应用被允许访问的数据将会涉及到用户或设备的敏感信息,应用被允许执行的操作可能对系统或者其他应用产生严重的影响。

该类型权限不仅需要在安装包中申请权限,还需要在应用动态运行时,通过发送弹窗的方式请求用户授权。在用户手动允许授权后,应用才会真正获取相应权限,从而成功访问操作目标对象。

例如,在应用权限列表中,麦克风和摄像头对应的权限都是属于用户授权权限,列表中给出了详细的权限使用理由。应用需要在应用商店的详情页面,向用户展示所申请的user_grant权限列表。

权限组和子权限

为了尽可能减少系统弹出的权限弹窗数量,优化交互体验,系统将逻辑紧密相关的user_grant权限组合在一起,形成多个权限组。

当应用请求权限时,同一个权限组的权限将会在一个弹窗内一起请求用户授权。权限组中的某个权限,称之为该权限组的子权限。

权限组和权限的归属关系并不是固定不变的,一个权限所属的权限组有可能发生变化。当前系统支持权限组请查阅应用权限组列表

权限机制中的基本概念

  • TokenID

    系统采用TokenID(Token identity)作为应用的唯一标识。权限管理服务通过应用的TokenID来管理应用的AT(Access Token)信息,包括应用身份标识APP ID、子用户ID、应用分身索引信息、应用APL、应用权限授权状态等。在资源使用时,系统将通过TokenID作为唯一身份标识映射获取对应应用的权限授权状态信息,并依此进行鉴权,从而管控应用的资源访问行为。

    值得注意的是,系统支持多用户特性和应用分身特性,同一个应用在不同的子用户下和不同的应用分身下会有各自的AT,这些AT的TokenID也是不同的。

  • APL等级

    为了防止应用过度索取和滥用权限,系统基于APL(Ability Privilege Level,元能力权限等级)等级,配置了不同的权限开放范围。

    元能力权限等级APL指的是应用的权限申请优先级的定义,不同APL等级的应用能够申请的权限等级不同。

  • 应用APL等级

    应用的等级可以分为以下三个等级,等级依次提高。

    APL级别 说明
    normal 默认情况下,应用的APL等级都为normal等级。
    system_basic 该等级的应用服务提供系统基础服务。
    system_core 该等级的应用服务提供操作系统核心能力。
    应用APL等级不允许配置为system_core。
  • 权限APL等级

    根据权限对于不同等级应用有不同的开放范围,权限类型对应分为以下三个等级,等级依次提高。

    APL级别 说明 开放范围
    normal 允许应用访问超出默认规则外的普通系统资源,如配置Wi-Fi信息、调用相机拍摄等。
    这些系统资源的开放(包括数据和功能)对用户隐私以及其他应用带来的风险低。
    APL等级为normal及以上的应用。
    system_basic 允许应用访问操作系统基础服务(系统提供或者预置的基础功能)相关的资源,如系统设置、身份认证等。
    这些系统资源的开放对用户隐私以及其他应用带来的风险较高。
    APL等级为system_basic及以上的应用。
    system_core 涉及开放操作系统核心资源的访问操作。这部分系统资源是系统最核心的底层服务,如果遭受破坏,操作系统将无法正常运行。 - APL等级为system_core的应用。
    - 仅对系统应用开放。
  • 访问控制列表(ACL)

    如上所述,权限APL等级和应用APL等级是一一对应的。原则上,拥有低APL等级的应用默认无法申请更高等级的权限。访问控制列表ACL(Access Control List)提供了解决低等级应用访问高等级权限问题的特殊渠道。

    系统权限均定义了“ACL使能”字段,当该权限的ACL使能为TRUE,应用可以使用ACL方式跨级别申请该权限。 具体单个权限的定义,可参考系统应用可用的权限

    场景举例:如开发者正在开发APL等级为normal的A应用,由于功能场景需要,A应用需要申请等级为system_basic的P权限。在P权限的ACL使能为TRUE的情况下,A应用可以通过ACL方式跨级申请权限P。

对所有应用开放

在申请目标权限前,建议开发者先阅读申请应用权限,对权限的工作流程有基本了解后,再结合以下权限字段的具体说明,判断应用能否申请目标权限,提高开发效率。

说明:
权限级别为normal的权限,不涉及ACL使能字段。

system_grant(系统授权)权限列表

以下权限的授权方式均为system_grant,申请方式请参考声明权限

权限 权限描述 权限级别 授权方式 起始版本
ohos.permission.USE_BLUETOOTH 允许应用查看蓝牙的配置 normal system_grant 8
ohos.permission.GET_BUNDLE_INFO 允许查询应用的基本信息 normal system_grant 7
ohos.permission.PREPARE_APP_TERMINATE 允许应用关闭前执行自定义的预关闭动作 normal system_grant 10
ohos.permission.PRINT 允许应用获取打印框架的能力。 normal system_grant 10
ohos.permission.DISCOVER_BLUETOOTH 允许应用配置本地蓝牙,查找远端设备且与之配对连接。 normal system_grant 8
ohos.permission.ACCELEROMETER 允许应用读取加速度传感器的数据。 normal system_grant 7
ohos.permission.ACCESS_BIOMETRIC 允许应用使用生物特征识别能力进行身份认证。 normal system_grant 6
ohos.permission.ACCESS_NOTIFICATION_POLICY 在本设备上允许应用访问通知策略。 仅当控制铃声从静音到非静音时,需要申请该权限。 normal system_grant 7
ohos.permission.GET_NETWORK_INFO 允许应用获取数据网络信息。 normal system_grant 8
ohos.permission.GET_WIFI_INFO 允许应用获取Wi-Fi信息。 normal system_grant 8
ohos.permission.GYROSCOPE 允许应用读取陀螺仪传感器的数据。 normal system_grant 7
ohos.permission.INTERNET 允许使用Internet网络。 normal system_grant 9
ohos.permission.KEEP_BACKGROUND_RUNNING 允许Service Ability在后台持续运行。 normal system_grant 8
ohos.permission.NFC_CARD_EMULATION 允许应用实现卡模拟功能。 normal system_grant 8
ohos.permission.NFC_TAG 应用读写Tag卡片。 normal system_grant 7
ohos.permission.PRIVACY_WINDOW 应用将窗口设置为隐私窗口,禁止截屏录屏 API version 9-10为system_basic;从API version 11开始为normal。 system_grant 9
ohos.permission.PUBLISH_AGENT_REMINDER 该应用使用后台代理提醒。 normal system_grant 7
ohos.permission.SET_WIFI_INFO 应用配置Wi-Fi设备。 normal system_grant 8
ohos.permission.VIBRATE 应用控制马达振动。 normal system_grant 7
ohos.permission.CLEAN_BACKGROUND_PROCESSES 应用根据包名清理相关后台进程。 normal system_grant 7
ohos.permission.COMMONEVENT_STICKY 应用发布粘性公共事件。 normal system_grant 7
ohos.permission.MODIFY_AUDIO_SETTINGS 应用修改音频设置。 normal system_grant 8
ohos.permission.RUNNING_LOCK 应用获取运行锁,保证应用在后台的持续运行。 normal system_grant 7
ohos.permission.SET_WALLPAPER 应用设置壁纸。 normal system_grant 7
ohos.permission.ACCESS_CERT_MANAGER 应用进行查询证书及私有凭据等操作。 normal system_grant 9
ohos.permission.hsdr.HSDR_ACCESS 应用访问安全检测与响应框架。 normal system_grant 10
ohos.permission.RUN_DYN_CODE 应用运行动态代码。 normal system_grant 11
ohos.permission.READ_CLOUD_SYNC_CONFIG 接入云空间的应用查询应用云同步相关配置信息。 normal system_grant 11
ohos.permission.STORE_PERSISTENT_DATA 应用存储持久化的数据,该数据直到设备恢复出厂设置或重装系统才会被清除。 normal system_grant 11
ohos.permission.ACCESS_EXTENSIONAL_DEVICE_DRIVER 应用使用外接设备增强功能。 normal system_grant 11
ohos.permission.READ_ACCOUNT_LOGIN_STATE 应用读取用户帐号的登录状态。 normal system_grant 12
ohos.permission.ACCESS_SERVICE_NAVIGATION_INFO 应用访问导航信息服务。 normal system_grant 12
ohos.permission.PROTECT_SCREEN_LOCK_DATA 应用在锁屏后保护本应用敏感数据不被访问。 应用获取此权限后,系统将给用户新建一个高安全级别el5的目录。应用可以在此目录下存放数据,这部分数据在锁屏后无法被访问。没有调用接口。 normal system_grant 12

user_grant(用户授权)权限列表

以下权限的授权方式均为user_grant(用户授权),申请方式请参考声明权限 > 向用户申请授权

权限 权限描述 权限级别 授权方式 起始版本
ohos.permission.ACCESS_BLUETOOTH 应用接入蓝牙并使用蓝牙能力,例如配对、连接外围设备等。 normal user_grant 10
ohos.permission.MEDIA_LOCATION 应用访问用户媒体文件中的地理位置信息。 normal user_grant 7
ohos.permission.APP_TRACKING_CONSENT 应用读取开放匿名设备标识符。 normal user_grant 9
ohos.permission.ACTIVITY_MOTION 应用读取用户的运动状态。 normal user_grant 7
ohos.permission.CAMERA 应用使用相机。 normal user_grant 9
ohos.permission.DISTRIBUTED_DATASYNC 不同设备间的数据交换。 normal user_grant 7
ohos.permission.LOCATION_IN_BACKGROUND 应用在后台运行时获取设备位置信息。由于安全隐私要求,应用不能通过弹窗的形式被授予后台位置权限,应用如果需要使用后台位置权限,需要引导用户到设置界面手动授予。申请流程:通过弹窗申请前台位置权限。存在两种允许情况:申请前台模糊位置权限:ohos.permission.APPROXIMATELY_LOCATION。申请前台精确位置权限ohos.permission.APPROXIMATELY_LOCATION和ohos.permission.LOCATION。当用户点击弹窗授予前台位置权限后,应用通过弹窗、提示窗等形式告知用户前往设置界面授予后台位置权限。用户在设置界面中的选择“始终允许”应用访问位置信息权限,完成手动授予。设置路径:路径一:设置 > 隐私 > 权限管理 > 位置信息 > 具体应用路径二:设置 > 隐私 > 权限管理 > 应用 > 具体应用 > 位置信息 normal user_grant 7
ohos.permission.LOCATION 应用获取设备位置信息。 申请条件 :需要与模糊位置权限ohos.permission.APPROXIMATELY_LOCATION一起,才可申请此权限。 normal user_grant 7
ohos.permission.APPROXIMATELY_LOCATION 应用获取设备模糊位置信息。 normal user_grant 9
ohos.permission.MICROPHONE 应用使用麦克风。 normal user_grant 8
ohos.permission.READ_CALENDAR 应用读取日历信息。 normal user_grant 8
ohos.permission.WRITE_CALENDAR 应用添加、移除或更改日历活动。 normal user_grant 8
ohos.permission.READ_HEALTH_DATA 应用读取用户的健康数据。 normal user_grant 7
ohos.permission.ACCESS_NEARLINK 应用接入星闪并使用星闪能力,例如配对、连接外围设备等。 normal user_grant 12
ohos.permission.READ_MEDIA 应用读取用户外部存储中的媒体文件信息。 normal user_grant 7
ohos.permission.WRITE_MEDIA 应用读写用户外部存储中的媒体文件信息。 normal user_grant 7

仅对系统应用开放

在申请目标权限前,建议开发者先阅读权限工作流程,对权限的工作流程有基本了解后,再结合以下权限字段的具体说明,判断应用能否申请目标权限,提高开发效率。

说明:

  • 以下权限仅对APL等级为system_basic及以上的应用开放,不向APL等级为normal的应用开放。
  • 仅部分权限可通过访问控制列表(ACL)的方式跨级别申请。

system_grant,允许ACL跨级申请

以下权限的授权方式均为system_grant(系统授权),且允许通过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值