diff --git a/build-tools/test/figures/zh-ch_image_Add_Blur.png b/build-tools/test/figures/zh-ch_image_Add_Blur.png
new file mode 100644
index 0000000000000000000000000000000000000000..e3b0acfef7bffa4e6a8c9f9ab6a7dc9b809fa467
Binary files /dev/null and b/build-tools/test/figures/zh-ch_image_Add_Blur.png differ
diff --git a/build-tools/test/figures/zh-ch_image_Add_Brightness.png b/build-tools/test/figures/zh-ch_image_Add_Brightness.png
new file mode 100644
index 0000000000000000000000000000000000000000..997602e7d7c8ea440a4f344f6a480ea66022fabf
Binary files /dev/null and b/build-tools/test/figures/zh-ch_image_Add_Brightness.png differ
diff --git a/build-tools/test/figures/zh-ch_image_Add_Grayscale.png b/build-tools/test/figures/zh-ch_image_Add_Grayscale.png
new file mode 100644
index 0000000000000000000000000000000000000000..69990adea571b907fabd854eb531528d7a60dc8f
Binary files /dev/null and b/build-tools/test/figures/zh-ch_image_Add_Grayscale.png differ
diff --git a/build-tools/test/figures/zh-ch_image_Main_Color.png b/build-tools/test/figures/zh-ch_image_Main_Color.png
new file mode 100644
index 0000000000000000000000000000000000000000..25e130fcf37fc3654592f619c8a93b703a085e9a
Binary files /dev/null and b/build-tools/test/figures/zh-ch_image_Main_Color.png differ
diff --git a/build-tools/test/figures/zh-cn_image_0000001118642902.png b/build-tools/test/figures/zh-cn_image_0000001118642902.png
new file mode 100644
index 0000000000000000000000000000000000000000..36eab44e87c075e01baa66bfc48a86ba703b7835
Binary files /dev/null and b/build-tools/test/figures/zh-cn_image_0000001118642902.png differ
diff --git a/build-tools/test/figures/zh-cn_image_0000001174104410.gif b/build-tools/test/figures/zh-cn_image_0000001174104410.gif
new file mode 100644
index 0000000000000000000000000000000000000000..df8e47d8359338f9d0412cacfe12b847c28c2a84
Binary files /dev/null and b/build-tools/test/figures/zh-cn_image_0000001174104410.gif differ
diff --git a/build-tools/test/figures/zh-cn_image_0000001174422898.png b/build-tools/test/figures/zh-cn_image_0000001174422898.png
new file mode 100644
index 0000000000000000000000000000000000000000..1dc7d8d7beda862221b05a9247723a3f74bf323d
Binary files /dev/null and b/build-tools/test/figures/zh-cn_image_0000001174422898.png differ
diff --git a/build-tools/test/figures/zh-cn_image_0000001200913929.png b/build-tools/test/figures/zh-cn_image_0000001200913929.png
new file mode 100644
index 0000000000000000000000000000000000000000..6eb89772d315b440636e8ceeda928e5db6b34e40
Binary files /dev/null and b/build-tools/test/figures/zh-cn_image_0000001200913929.png differ
diff --git a/build-tools/test/figures/zh-cn_image_0000001219662645.png b/build-tools/test/figures/zh-cn_image_0000001219662645.png
new file mode 100644
index 0000000000000000000000000000000000000000..747b8f915f2d40803ce6a7937de1add5deb8e640
Binary files /dev/null and b/build-tools/test/figures/zh-cn_image_0000001219662645.png differ
diff --git a/build-tools/test/figures/zh-cn_image_0000001219744181.png b/build-tools/test/figures/zh-cn_image_0000001219744181.png
new file mode 100644
index 0000000000000000000000000000000000000000..605c0a1ddc0e2bace2e4c9a23fc2391af9ebf5bf
Binary files /dev/null and b/build-tools/test/figures/zh-cn_image_0000001219744181.png differ
diff --git a/build-tools/test/figures/zh-cn_image_0000001219864131.png b/build-tools/test/figures/zh-cn_image_0000001219864131.png
new file mode 100644
index 0000000000000000000000000000000000000000..5c0ada67867ec3765eeb53af5c62369762d0bac4
Binary files /dev/null and b/build-tools/test/figures/zh-cn_image_0000001219864131.png differ
diff --git a/build-tools/test/figures/zh-cn_image_0000001219864133.gif b/build-tools/test/figures/zh-cn_image_0000001219864133.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0befd736af77db15c203c4a5578929baf1d83e08
Binary files /dev/null and b/build-tools/test/figures/zh-cn_image_0000001219864133.gif differ
diff --git a/build-tools/test/figures/zh-cn_image_00007.gif b/build-tools/test/figures/zh-cn_image_00007.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8c43bdf5b331963459154d4f0400fad7b17b34e8
Binary files /dev/null and b/build-tools/test/figures/zh-cn_image_00007.gif differ
diff --git a/build-tools/test/figures/zh-cn_image_0001.gif b/build-tools/test/figures/zh-cn_image_0001.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fc737da287358cd81c65567e17da1bd4d701edff
Binary files /dev/null and b/build-tools/test/figures/zh-cn_image_0001.gif differ
diff --git a/build-tools/test/figures/zh-cn_image_0002.gif b/build-tools/test/figures/zh-cn_image_0002.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9e3ff82c3de3a8867949b0d65aa4ffe55360e7cb
Binary files /dev/null and b/build-tools/test/figures/zh-cn_image_0002.gif differ
diff --git a/build-tools/test/figures/zh-cn_image_0004.gif b/build-tools/test/figures/zh-cn_image_0004.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3b8462cf93c07e4b92c250bcb46409cc81e5129f
Binary files /dev/null and b/build-tools/test/figures/zh-cn_image_0004.gif differ
diff --git a/build-tools/test/figures/zh-cn_image_0005.gif b/build-tools/test/figures/zh-cn_image_0005.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c3616f948289aa9a358bcd716c9731c98d1458de
Binary files /dev/null and b/build-tools/test/figures/zh-cn_image_0005.gif differ
diff --git a/build-tools/test/figures/zh-cn_image_0006.gif b/build-tools/test/figures/zh-cn_image_0006.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6a5fe369467d047364f518486d452ed2ac6aba96
Binary files /dev/null and b/build-tools/test/figures/zh-cn_image_0006.gif differ
diff --git a/build-tools/test/figures/zh-cn_image_url.png b/build-tools/test/figures/zh-cn_image_url.png
new file mode 100644
index 0000000000000000000000000000000000000000..aa3175e145cfce399bef43bf5c7a2ac7feb0a576
Binary files /dev/null and b/build-tools/test/figures/zh-cn_image_url.png differ
diff --git a/build-tools/test/figures/zh_cn_image_ExtensionContext_Example.png b/build-tools/test/figures/zh_cn_image_ExtensionContext_Example.png
new file mode 100644
index 0000000000000000000000000000000000000000..8e9b32c04d4667dc0aafab3123a0c77e3dd1da0e
Binary files /dev/null and b/build-tools/test/figures/zh_cn_image_ExtensionContext_Example.png differ
diff --git a/build-tools/test/js-apis-ability-context.md b/build-tools/test/js-apis-ability-context.md
new file mode 100644
index 0000000000000000000000000000000000000000..e2917db1d06992c07874b1b1fde0047c781d77e7
--- /dev/null
+++ b/build-tools/test/js-apis-ability-context.md
@@ -0,0 +1,15 @@
+# AbilityContext
+
+AbilityContext是Ability的上下文环境,继承自Context。
+
+AbilityContext模块提供允许访问特定Ability的资源的能力,包括对Ability的启动、停止的设置、获取caller通信接口、拉起弹窗请求用户授权等。
+
+> **说明:**
+>
+> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+> - 本模块接口仅可在Stage模型下使用。
+
+## 使用说明
+
+在使用AbilityContext的功能前,需要通过Ability子类实例获取。
+
diff --git a/build-tools/test/js-apis-abilityAccessCtrl.md b/build-tools/test/js-apis-abilityAccessCtrl.md
new file mode 100644
index 0000000000000000000000000000000000000000..3fac764ab3002b0efaec0594ee1df19221007205
--- /dev/null
+++ b/build-tools/test/js-apis-abilityAccessCtrl.md
@@ -0,0 +1,629 @@
+# @ohos.abilityAccessCtrl (程序访问控制管理)
+
+程序访问控制提供程序的权限管理能力,包括鉴权、授权和取消授权等。
+
+> **说明:**
+> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+
+## 导入模块
+
+```js
+import abilityAccessCtrl from '@ohos.abilityAccessCtrl'
+```
+
+## abilityAccessCtrl.createAtManager
+
+createAtManager(): AtManager
+
+访问控制管理:获取访问控制模块对象。
+
+**系统能力:** SystemCapability.Security.AccessToken
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| [AtManager](#atmanager) | 获取访问控制模块的实例。 |
+
+**示例:**
+
+```js
+let atManager = abilityAccessCtrl.createAtManager();
+```
+
+## AtManager
+
+管理访问控制模块的实例。
+
+### checkAccessToken9+
+
+checkAccessToken(tokenID: number, permissionName: Permissions): Promise<GrantStatus>
+
+校验应用是否授予权限。使用Promise异步回调。
+
+**系统能力:** SystemCapability.Security.AccessToken
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ------------------- | ---- | ------------------------------------------ |
+| tokenID | number | 是 | 要校验的目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 |
+| permissionName | Permissions | 是 | 需要校验的权限名称。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| :------------ | :---------------------------------- |
+| Promise<GrantStatus> | Promise对象。返回授权状态结果。 |
+
+**错误码:**
+
+以下错误码的详细介绍请参见[程序访问控制错误码](../errorcodes/errorcode-access-token.md)。
+
+| 错误码ID | 错误信息 |
+| -------- | -------- |
+| 12100001 | The parameter is invalid. The tokenID is 0 |
+
+**示例:**
+
+```js
+import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
+let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
+try {
+ atManager.checkAccessToken(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS").then((data) => {
+ console.log(`checkAccessToken success, data->${JSON.stringify(data)}`);
+ }).catch((err) => {
+ console.log(`checkAccessToken fail, err->${JSON.stringify(err)}`);
+ });
+} catch(err) {
+ console.log(`catch err->${JSON.stringify(err)}`);
+}
+```
+
+### verifyAccessTokenSync9+
+
+verifyAccessTokenSync(tokenID: number, permissionName: Permissions): GrantStatus
+
+校验应用是否被授予权限,同步返回结果。
+
+**系统能力:** SystemCapability.Security.AccessToken
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ------------------- | ---- | ------------------------------------------ |
+| tokenID | number | 是 | 要校验应用的身份标识。 |
+| permissionName | Permissions | 是 | 需要校验的权限名称。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| :------------ | :---------------------------------- |
+| [GrantStatus](#grantstatus) | 枚举实例,返回授权状态。 |
+
+**错误码:**
+
+以下错误码的详细介绍请参见[程序访问控制错误码](../errorcodes/errorcode-access-token.md)。
+
+| 错误码ID | 错误信息 |
+| -------- | -------- |
+| 12100001 | The parameter is invalid. The tokenID is 0 |
+
+**示例:**
+
+```js
+let atManager = abilityAccessCtrl.createAtManager();
+let tokenID = 0;
+let data = atManager.verifyAccessTokenSync(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS");
+console.log(`data->${JSON.stringify(data)}`);
+```
+
+### grantUserGrantedPermission
+
+grantUserGrantedPermission(tokenID: number, permissionName: Permissions, permissionFlag: number): Promise<void>
+
+授予应用user grant权限。使用Promise异步回调。
+
+**系统接口:** 此接口为系统接口。
+
+**需要权限:** ohos.permission.GRANT_SENSITIVE_PERMISSIONS,仅系统应用可用。
+
+**系统能力:** SystemCapability.Security.AccessToken
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| --------- | ------------------- | ---- | ------------------------------------------------------------ |
+| tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 |
+| permissionName | Permissions | 是 | 被授予的权限名称。 |
+| permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| :------------ | :---------------------------------- |
+| Promise<void> | Promise对象。无返回结果的Promise对象。 |
+
+**错误码:**
+
+以下错误码的详细介绍请参见[程序访问控制错误码](../errorcodes/errorcode-access-token.md)。
+
+| 错误码ID | 错误信息 |
+| -------- | -------- |
+| 12100001 | The parameter is invalid. The tokenID is 0 |
+| 12100002 | The specified tokenID does not exist. |
+| 12100003 | The specified permission does not exist. |
+| 12100006 | The application specified by the tokenID is not allowed to be granted with the specified permission. Either the application is a sandbox or the tokenID is from a remote device. |
+| 12100007 | Service is abnormal. |
+
+**示例:**
+
+```js
+import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
+
+let atManager = abilityAccessCtrl.createAtManager();
+let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
+let permissionFlag = 1;
+try {
+ atManager.grantUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag).then(() => {
+ console.log('grantUserGrantedPermission success');
+ }).catch((err) => {
+ console.log(`grantUserGrantedPermission fail, err->${JSON.stringify(err)}`);
+ });
+} catch(err) {
+ console.log(`catch err->${JSON.stringify(err)}`);
+}
+```
+
+### grantUserGrantedPermission
+
+grantUserGrantedPermission(tokenID: number, permissionName: Permissions, permissionFlag: number, callback: AsyncCallback<void>): void
+
+授予应用user grant权限。使用callback异步回调。
+
+**系统接口:** 此接口为系统接口。
+
+**需要权限:** ohos.permission.GRANT_SENSITIVE_PERMISSIONS,仅系统应用可用。
+
+**系统能力:** SystemCapability.Security.AccessToken
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| --------- | ------------------- | ---- | ------------------------------------------------------------ |
+| tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。|
+| permissionName | Permissions | 是 | 被授予的权限名称。 |
+| permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 |
+| callback | AsyncCallback<void> | 是 | 授予应用user grant权限。当授予权限成功时,err为undefine;否则为错误对象。 |
+
+**错误码:**
+
+以下错误码的详细介绍请参见[程序访问控制错误码](../errorcodes/errorcode-access-token.md)。
+
+| 错误码ID | 错误信息 |
+| -------- | -------- |
+| 12100001 | The parameter is invalid. The tokenID is 0 |
+| 12100002 | TokenId does not exist. |
+| 12100003 | Permission does not exist. |
+| 12100006 | The specified application does not support the permissions granted or ungranted as specified. |
+
+**示例:**
+
+```js
+import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
+
+let atManager = abilityAccessCtrl.createAtManager();
+let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
+let permissionFlag = 1;
+try {
+ atManager.grantUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag, (err, data) => {
+ if (err) {
+ console.log(`grantUserGrantedPermission fail, err->${JSON.stringify(err)}`);
+ } else {
+ console.log('grantUserGrantedPermission success');
+ }
+ });
+} catch(err) {
+ console.log(`catch err->${JSON.stringify(err)}`);
+}
+```
+
+### revokeUserGrantedPermission
+
+revokeUserGrantedPermission(tokenID: number, permissionName: Permissions, permissionFlag: number): Promise<void>
+
+撤销应用user grant权限。使用Promise异步回调。
+
+**系统接口:** 此接口为系统接口。
+
+**需要权限:** ohos.permission.REVOKE_SENSITIVE_PERMISSIONS,仅系统应用可用。
+
+**系统能力:** SystemCapability.Security.AccessToken
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| --------- | ------------------- | ---- | ------------------------------------------------------------ |
+| tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 |
+| permissionName | Permissions | 是 | 被撤销的权限名称。 |
+| permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| :------------ | :---------------------------------- |
+| Promise<void> | Promise对象。无返回结果的Promise对象。 |
+
+**错误码:**
+
+以下错误码的详细介绍请参见[程序访问控制错误码](../errorcodes/errorcode-access-token.md)。
+
+| 错误码ID | 错误信息 |
+| -------- | -------- |
+| 12100001 | The parameter is invalid. The tokenID is 0 |
+| 12100002 | The specified tokenID does not exist. |
+| 12100003 | The specified permission does not exist. |
+| 12100006 | The application specified by the tokenID is not allowed to be revoked with the specified permission. Either the application is a sandbox or the tokenID is from a remote device. |
+| 12100007 | Service is abnormal. |
+
+**示例:**
+
+```js
+import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
+
+let atManager = abilityAccessCtrl.createAtManager();
+let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
+let permissionFlag = 1;
+try {
+ atManager.revokeUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag).then(() => {
+ console.log('revokeUserGrantedPermission success');
+ }).catch((err) => {
+ console.log(`revokeUserGrantedPermission fail, err->${JSON.stringify(err)}`);
+ });
+} catch(err) {
+ console.log(`catch err->${JSON.stringify(err)}`);
+}
+```
+
+### revokeUserGrantedPermission
+
+revokeUserGrantedPermission(tokenID: number, permissionName: Permissions, permissionFlag: number, callback: AsyncCallback<void>): void
+
+撤销应用user grant权限。使用callback异步回调。
+
+**系统接口:** 此接口为系统接口。
+
+**需要权限:** ohos.permission.REVOKE_SENSITIVE_PERMISSIONS,仅系统应用可用。
+
+**系统能力:** SystemCapability.Security.AccessToken
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| --------- | ------------------- | ---- | ------------------------------------------------------------ |
+| tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 |
+| permissionName | Permissions | 是 | 被撤销的权限名称。 |
+| permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 |
+| callback | AsyncCallback<void> | 是 | 撤销应用user grant权限。当撤销权限成功时,err为undefine;否则为错误对象。 |
+
+**错误码:**
+
+以下错误码的详细介绍请参见[程序访问控制错误码](../errorcodes/errorcode-access-token.md)。
+
+| 错误码ID | 错误信息 |
+| -------- | -------- |
+| 12100001 | The parameter is invalid. The tokenID is 0 |
+| 12100002 | TokenId does not exist. |
+| 12100003 | Permission does not exist. |
+| 12100006 | The specified application does not support the permissions granted or ungranted as specified. |
+
+**示例:**
+
+```js
+import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
+
+let atManager = abilityAccessCtrl.createAtManager();
+let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
+let permissionFlag = 1;
+try {
+ atManager.revokeUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag, (err, data) => {
+ if (err) {
+ console.log(`revokeUserGrantedPermission fail, err->${JSON.stringify(err)}`);
+ } else {
+ console.log('revokeUserGrantedPermission success');
+ }
+ });
+} catch(err) {
+ console.log(`catch err->${JSON.stringify(err)}`);
+}
+```
+
+### getPermissionFlags
+
+getPermissionFlags(tokenID: number, permissionName: Permissions): Promise<number>
+
+获取指定应用的指定权限的flag。使用Promise异步回调。
+
+**系统接口:** 此接口为系统接口。
+
+**需要权限:** ohos.permission.GET_SENSITIVE_PERMISSIONS or ohos.permission.GRANT_SENSITIVE_PERMISSIONS or ohos.permission.REVOKE_SENSITIVE_PERMISSIONS,仅系统应用可用。
+
+**系统能力:** SystemCapability.Security.AccessToken
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| --------- | ------------------- | ---- | ------------------------------------------------------------ |
+| tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 |
+| permissionName | Permissions | 是 | 查询的权限名称。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| :------------ | :---------------------------------- |
+| Promise<number> | Promise对象。返回查询结果。 |
+
+**错误码:**
+
+以下错误码的详细介绍请参见[程序访问控制错误码](../errorcodes/errorcode-access-token.md)。
+
+| 错误码ID | 错误信息 |
+| -------- | -------- |
+| 12100001 | The parameter is invalid. The tokenID is 0 |
+| 12100002 | The specified tokenID does not exist. |
+| 12100003 | The specified permission does not exist. |
+| 12100006 | The operation is not allowed. Either the application is a sandbox or the tokenID is from a remote device. |
+| 12100007 | Service is abnormal. |
+
+**示例:**
+
+```js
+import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
+
+let atManager = abilityAccessCtrl.createAtManager();
+let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
+let permissionFlag = 1;
+try {
+ atManager.getPermissionFlags(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS").then((data) => {
+ console.log(`getPermissionFlags success, data->${JSON.stringify(data)}`);
+ }).catch((err) => {
+ console.log(`getPermissionFlags fail, err->${JSON.stringify(err)}`);
+ });
+} catch(err) {
+ console.log(`catch err->${JSON.stringify(err)}`);
+}
+```
+
+### getVersion9+
+
+getVersion(): Promise<number>
+
+获取当前权限管理的数据版本。使用Promise异步回调。
+
+**系统接口:** 此接口为系统接口。
+
+**系统能力:** SystemCapability.Security.AccessToken
+
+**返回值:**
+
+| 类型 | 说明 |
+| :------------ | :---------------------------------- |
+| Promise<number> | Promise对象。返回查询到的版本号。 |
+
+**示例:**
+
+```js
+let atManager = abilityAccessCtrl.createAtManager();
+let promise = atManager.getVersion();
+promise.then(data => {
+ console.log(`promise: data->${JSON.stringify(data)}`);
+});
+```
+
+### on9+
+
+on(type: 'permissionStateChange', tokenIDList: Array<number>, permissionNameList: Array<Permissions>, callback: Callback<PermissionStateChangeInfo>): void;
+
+订阅指定tokenId列表与权限列表的权限状态变更事件。
+
+**系统接口:** 此接口为系统接口。
+
+**需要权限:** ohos.permission.GET_SENSITIVE_PERMISSIONS,仅系统应用可用。
+
+**系统能力:** SystemCapability.Security.AccessToken
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------------------ | --------------------- | ---- | ------------------------------------------------------------ |
+| type | string | 是 | 订阅事件类型,固定为'permissionStateChange',权限状态变更事件。 |
+| tokenIDList | Array<number> | 是 | 订阅的tokenId列表,为空时表示订阅所有的应用的权限状态变化。 |
+| permissionNameList | Array<Permissions> | 是 | 订阅的权限名列表,为空时表示订阅所有的权限状态变化。 |
+| callback | Callback<[PermissionStateChangeInfo](#permissionstatechangeinfo9)> | 是 | 订阅指定tokenId与指定权限名状态变更事件的回调。|
+
+**错误码:**
+
+以下错误码的详细介绍请参见[程序访问控制错误码](../errorcodes/errorcode-access-token.md)。
+
+| 错误码ID | 错误信息 |
+| -------- | -------- |
+| 12100001 | The parameter is invalid. The tokenID is 0 |
+| 12100004 | The interface is called repeatedly with the same input. |
+| 12100005 | The registration time has exceeded the limitation. |
+| 12100007 | Service is abnormal. |
+| 12100008 | Out of memory. |
+
+**示例:**
+
+```js
+import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
+
+let atManager = abilityAccessCtrl.createAtManager();
+let tokenIDList: Array = [];
+let permissionNameList = [];
+try {
+ atManager.on('permissionStateChange', tokenIDList, permissionNameList, (data) => {
+ console.debug("receive permission state change, data:" + JSON.stringify(data));
+ });
+} catch(err) {
+ console.log(`catch err->${JSON.stringify(err)}`);
+}
+```
+
+### off9+
+
+off(type: 'permissionStateChange', tokenIDList: Array<number>, permissionNameList: Array<Permissions>, callback?: Callback<PermissionStateChangeInfo>): void;
+
+取消订阅指定tokenId列表与权限列表的权限状态变更事件,使用callback回调异步返回结果。
+
+**系统接口:** 此接口为系统接口。
+
+**需要权限:** ohos.permission.GET_SENSITIVE_PERMISSIONS,仅系统应用可用。
+
+**系统能力:** SystemCapability.Security.AccessToken
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------------------ | --------------------- | ---- | ------------------------------------------------------------ |
+| type | string | 是 | 订阅事件类型,固定为'permissionStateChange',权限状态变更事件。 |
+| tokenIDList | Array<number> | 是 | 订阅的tokenId列表,为空时表示订阅所有的应用的权限状态变化,必须与on的输入一致。 |
+| permissionNameList | Array<Permissions> | 是 | 订阅的权限名列表,为空时表示订阅所有的权限状态变化,必须与on的输入一致。 |
+| callback | Callback<[PermissionStateChangeInfo](#permissionstatechangeinfo9)> | 否 | 取消订阅指定tokenId与指定权限名状态变更事件的回调。|
+
+**错误码:**
+
+以下错误码的详细介绍请参见[程序访问控制错误码](../errorcodes/errorcode-access-token.md)。
+
+| 错误码ID | 错误信息 |
+| -------- | -------- |
+| 12100001 | The parameter is invalid. The tokenID in list is all invalid |
+| 12100004 | The interface is not used with |
+| 12100007 | Service is abnormal. |
+| 12100008 | Out of memory. |
+
+**示例:**
+
+```js
+import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
+
+let atManager = abilityAccessCtrl.createAtManager();
+let tokenIDList: Array = [];
+let permissionNameList = [];
+try {
+ atManager.off('permissionStateChange', tokenIDList, permissionNameList);
+} catch(err) {
+ console.log(`catch err->${JSON.stringify(err)}`);
+}
+```
+
+### verifyAccessToken9+
+
+verifyAccessToken(tokenID: number, permissionName: Permissions): Promise<GrantStatus>
+
+校验应用是否授予权限。使用Promise异步回调。
+
+> **说明:** 建议使用[checkAccessToken](#checkaccesstoken9)替代。
+
+**系统能力:** SystemCapability.Security.AccessToken
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ------------------- | ---- | ------------------------------------------ |
+| tokenID | number | 是 | 要校验的目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 |
+| permissionName | Permissions | 是 | 需要校验的权限名称。仅支持输入有效的权限名称。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| :------------ | :---------------------------------- |
+| Promise<GrantStatus> | Promise对象。返回授权状态结果。 |
+
+**示例:**
+
+```js
+import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
+
+let atManager = abilityAccessCtrl.createAtManager();
+let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
+let promise = atManager.verifyAccessToken(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS");
+promise.then(data => {
+ console.log(`promise: data->${JSON.stringify(data)}`);
+});
+```
+
+### verifyAccessToken(deprecated)
+
+verifyAccessToken(tokenID: number, permissionName: string): Promise<GrantStatus>
+
+校验应用是否授予权限。使用Promise异步回调。
+
+> **说明:** 从API version 9开始不再维护,建议使用[checkAccessToken](#checkaccesstoken9)替代。
+
+**系统能力:** SystemCapability.Security.AccessToken
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ------------------- | ---- | ------------------------------------------ |
+| tokenID | number | 是 | 要校验的目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 |
+| permissionName | string | 是 | 需要校验的权限名称。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| :------------ | :---------------------------------- |
+| Promise<GrantStatus> | Promise对象。返回授权状态结果。 |
+
+**示例:**
+
+```js
+import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
+
+let atManager = abilityAccessCtrl.createAtManager();
+let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
+let promise = atManager.verifyAccessToken(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS");
+promise.then(data => {
+ console.log(`promise: data->${JSON.stringify(data)}`);
+});
+```
+
+### GrantStatus
+
+表示授权状态的枚举。
+
+**系统能力:** SystemCapability.Security.AccessToken
+
+| 名称 | 值 | 说明 |
+| ------------------ | ----- | ----------- |
+| PERMISSION_DENIED | -1 | 表示未授权。 |
+| PERMISSION_GRANTED | 0 | 表示已授权。 |
+
+### PermissionStateChangeType9+
+
+表示权限授权状态变化操作类型的枚举。
+
+**系统接口:** 此接口为系统接口。
+
+**系统能力:** SystemCapability.Security.AccessToken
+
+| 名称 | 值 | 说明 |
+| ----------------------- | ------ | ----------------- |
+| PERMISSION_REVOKED_OPER | 0 | 表示权限取消操作。 |
+| PERMISSION_GRANTED_OPER | 1 | 表示权限授予操作。 |
+
+### PermissionStateChangeInfo9+
+
+表示某次权限授权状态变化的详情。
+
+**系统接口:** 此接口为系统接口。
+
+**系统能力:** SystemCapability.Security.AccessToken
+
+| 名称 | 类型 | 可读 | 可写 | 说明 |
+| -------------- | ------------------------- | ---- | ---- | ------------------ |
+| change | [PermissionStateChangeType](#permissionstatechangetype9) | 是 | 否 | 权限授权状态变化类型。 |
+| tokenID | number | 是 | 否 | 被订阅的应用身份标识。 |
+| permissionName | Permissions | 是 | 否 | 当前授权状态发生变化的权限名。 |
diff --git a/build-tools/test/public_sys-resources/icon-caution.gif b/build-tools/test/public_sys-resources/icon-caution.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571
Binary files /dev/null and b/build-tools/test/public_sys-resources/icon-caution.gif differ
diff --git a/build-tools/test/public_sys-resources/icon-danger.gif b/build-tools/test/public_sys-resources/icon-danger.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571
Binary files /dev/null and b/build-tools/test/public_sys-resources/icon-danger.gif differ
diff --git a/build-tools/test/public_sys-resources/icon-note.gif b/build-tools/test/public_sys-resources/icon-note.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6314297e45c1de184204098efd4814d6dc8b1cda
Binary files /dev/null and b/build-tools/test/public_sys-resources/icon-note.gif differ
diff --git a/build-tools/test/public_sys-resources/icon-notice.gif b/build-tools/test/public_sys-resources/icon-notice.gif
new file mode 100644
index 0000000000000000000000000000000000000000..86024f61b691400bea99e5b1f506d9d9aef36e27
Binary files /dev/null and b/build-tools/test/public_sys-resources/icon-notice.gif differ
diff --git a/build-tools/test/public_sys-resources/icon-tip.gif b/build-tools/test/public_sys-resources/icon-tip.gif
new file mode 100644
index 0000000000000000000000000000000000000000..93aa72053b510e456b149f36a0972703ea9999b7
Binary files /dev/null and b/build-tools/test/public_sys-resources/icon-tip.gif differ
diff --git a/build-tools/test/public_sys-resources/icon-warning.gif b/build-tools/test/public_sys-resources/icon-warning.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571
Binary files /dev/null and b/build-tools/test/public_sys-resources/icon-warning.gif differ