> 文档中心 > HarmonyOS应用开发:权限开发

HarmonyOS应用开发:权限开发

ATM (AccessTokenManager) 是OpenHarmony上基于AccessToken构建的统一的应用权限管理能力。

权限申请使用的工作流程

判断应用能否申请目标权限 

 应用使用权限校验的工作流程

 应用APL等级

APL级别 说明
system_core等级 该等级的应用服务提供操作系统核心能力。
system_basic等级 该等级的应用服务提供系统基础服务。
normal等级 普通应用。

 权限类型说明

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

  • system_grant

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

    如果在应用中申请了system_grant权限,那么系统会在用户安装应用时,自动把相应权限授予给应用。应用需要在应用商店的详情页面,向用户展示所申请的system_grant权限列表。

  • user_grant

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

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

    比如说,在权限定义列表中,麦克风和摄像头对应的权限都是属于用户授权权限,列表中给出了详细的权限使用理由。

    应用需要在应用商店的详情页面,向用户展示所申请的user_grant权限列表。

访问控制列表(ACL)使用说明

CL申请方式须知

开发应用安装包时,需要修改应用的Profile文件,在文件的"acl"字段声明目标的访问控制列表。然后使用hap包签名工具生成证书。

注意:
直接修改应用Profile文件的方式,仅用于应用/服务调试阶段使用,不可用于发布上架应用市场。如果需要开发商用版本的应用,请在对应的应用市场进行发布证书和Profile文件的申请。

{    "acls": { "allowed-acls": [     "ohos.permission.PERMISSION" ]    },}

 HarmonyAppProvision配置文件的说明(profile文件)

HarmonyAppProvision文件包含version-code对象、version-name对象、uuid对象、type对象、issuer对象、validity对象、bundle-info对象、acls对象、permissions对象、debug-info对象等部分组成。

表1 配置文件内部结构说明

属性名称 含义 数据类型 是否必选 是否可缺省
version-code 表示HarmonyAppProvision文件格式的版本号,取值范围为二进制32位以内的正整数。 数值 必选 不可缺省
version-name 表示版本号的文字描述,推荐使用三段数字版本号,如A.B.C。 字符串 必选 不可缺省
uuid 表示文件的唯一ID号,用于OEM厂商标识HarmonyAppProvision文件,开源社区版本该属性不做强制要求。 字符串 必选 不可缺省
type 表示HarmonyAppProvision文件的类型, 系统预定义的文件类型包括:debug(用于应用调试场景)和release(用于应用发布场景) ,开源社区版本该属性值建议为debug。 字符串 必选 不可缺省
issuer 表示HarmonyAppProvision签发者。 字符串 必选 不可缺省
validity 表示HarmonyAppProvision文件有效期的信息。参考validity对象内部结构。 对象 必选 不可缺省
bundle-info 表示应用包以及开发者的信息。参考bundle-info对象内部结构。 对象 必选 不可缺省
acls 表示授权的acl权限信息。参考acls对象内部结构。 对象 可选 不可缺省
permissions 表示允许使用的受限敏感权限信息。参考permissions对象内部结构。 对象 可选 不可缺省
debug-info 表示应用调试场景下的额外信息。参考debug-info对象内部结构。 对象 可选 不可缺省

HarmonyAppProvision文件示例:

{    "version-code": 1,    "version-name": "1.0.0","uuid": "string","type": "debug","validity": {"not-before": 1586422743,"not-after": 1617958743},"bundle-info" : {"developer-id": "OpenHarmony","development-certificate": "Base64 string","distribution-certificate": "Base64 string","bundle-name": "com.OpenHarmony.app.test","apl": "normal", "app-feature": "hos_normal_app"},"acls": {"allowed-acls": ["string"]    },"permissions": {"restricted-permissions": ["string"]    },    "debug-info" : {    "device-id-type": "udid",    "device-ids": ["string"]    },    "issuer": "OpenHarmony"}

 

松山湖人才网