From 80cfb495b84b242981992919d5f7711f606d074e Mon Sep 17 00:00:00 2001 From: chennian Date: Wed, 30 Nov 2022 16:40:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=BC=80=E5=8F=91=E6=8C=87?= =?UTF-8?q?=E5=8D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chennian --- .../subsys-security-rightmanagement.md | 55 +++++++++++++++---- 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/zh-cn/device-dev/subsystems/subsys-security-rightmanagement.md b/zh-cn/device-dev/subsystems/subsys-security-rightmanagement.md index bd1ca3462f..e2c8d5a387 100644 --- a/zh-cn/device-dev/subsystems/subsys-security-rightmanagement.md +++ b/zh-cn/device-dev/subsystems/subsys-security-rightmanagement.md @@ -154,18 +154,16 @@ 本部分以包管理器的应用权限开发为例进行讲解。开发过程中,首先需要明确涉及的敏感权限,并在config.json中声明该权限,在安装应用程序时,包管理器会调用应用权限管理组件的接口检查该权限是否被授予,若授予,安装流程正常进行,否则安装失败。 1. 在开发过程中,包管理器明确需要安装应用的权限(ohos.permission.INSTALL\_BUNDLE),并在config.json中声明该权限; - - ``` + FA模型:需要在config.json中声明权限,示例: + ```json { - ... "module": { - "package": "com.huawei.kitframework", + "package": "ohos.demo.kitframework", "deviceType": [ - "phone", "tv","tablet", "pc","car","smartWatch","sportsWatch","smartCamera", "smartVision" + "phone", "tv","tablet", "car","smartWatch","sportsWatch","smartCamera", "smartVision" ], "reqPermissions": [{ - // 声明需要的权限:安装应用程序的权限名 - "name": "ohos.permission.INSTALL_BUNDLE", + "name": "ohos.permission.INSTALL_BUNDLE", "reason": "install bundle", "usedScene": { "ability": [ @@ -194,14 +192,51 @@ "when": "always" } } - ], - ... + ] + } + } + ``` + Stage模型:需要在module.json5中声明权限,示例: + ```json + { + "module": { + "requestPermissions": [{ + "name": "ohos.permission.INSTALL_BUNDLE", + "reason": "install bundle", + "usedScene": { + "ability": [ + "KitFramework" + ], + "when": "always" + } + }, + { + "name": "ohos.permission.LISTEN_BUNDLE_CHANGE", + "reason": "install bundle", + "usedScene": { + "ability": [ + "KitFramework" + ], + "when": "always" + } + }, + { + "name": "ohos.permission.GET_BUNDLE_INFO", + "reason": "install bundle", + "usedScene": { + "ability": [ + "KitFramework" + ], + "when": "always" + } + }] + } } ``` 2. 当包管理器开发应用安装功能接口时,会调用权限管理相关接口检查自身是否具有安装应用程序的权限,例如:以安装应用的权限名"ohos.permission.INSTALL\_BUNDLE"作为入参,调用CheckPermission接口检查包管理器是否具有安装应用的权限,如果有权限,安装流程继续执行,否则返回安装失败; - ``` + ```c++ constexpr static char PERMISSION_INSTALL_BUNDLE[] = "ohos.permission.INSTALL_BUNDLE"; bool Install(const char *hapPath, const InstallParam *installParam, InstallerCallback installerCallback) -- GitLab