# SecurityAudit（安全审计）

> 2in1 5.0.1(13)+

提供统一的安全审计数据订阅与取消订阅接口，应用可以获取设备上的安全审计数据，以支撑审计业务。

**起始版本：** 5.0.0(12)

## 导入模块

> 2in1

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
```

## AuditEventInfo

> 2in1 5.0.1(13)+

用于订阅或取消订阅接口的请求参数。

**模型约束：** 此接口仅可在Stage模型下使用。

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 5.0.0(12)

|名称|类型|只读|可选|说明|
|:------|:-----|:-|:-|:------------------------------------------------------------------|
|eventId|number|否|否|审计事件ID，用于指定需要获取的安全审计数据。例如：0x810800800 审计事件ID的取值范围是[0, 0xFFFFFFFFF]。|

## AuditEvent

> 2in1 5.0.1(13)+

安全审计数据。

**模型约束：** 此接口仅可在Stage模型下使用。

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 5.0.0(12)

|名称|类型|只读|可选|说明|
|:--------|:-----|:-|:-|:----------------------------------------------------|
|eventId|number|否|否|审计事件ID，与请求参数中的审计事件ID相同。|
|version|string|否|是|审计事件版本号。|
|timestamp|string|否|是|审计事件发生时间。格式为： YYYYMMDDHHMMSS|
|content|string|否|是|审计事件内容。不同审计事件具备不同的内容，内容为json格式字符串。例如：{"type": 1}|
|userId|number|否|是|发生审计事件时，登录的用户ID。|
|deviceId|string|否|是|审计事件发生的设备ID。|
|metadata|string|否|是|审计事件元数据。包含事件版本号、事件接收时间、设备ID和用户ID。 **起始版本：** 6.0.0(20)|

## NotifyEvent

> 2in1 6.0.0(20)+

通知类事件枚举。

**模型约束：** 此接口仅可在Stage模型下使用。

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 6.0.0(20)

|名称|值|说明|
|:------------------------------|:---------|:---------------------------------------------------------|
|PASTEBOARD|0x27000000|剪贴板复制粘贴事件。|
|FILE|0x1C000007|文件事件。|
|FILE_INTERCEPTED|0x1C001100|文件访问规则违规事件。|
|ACCOUNT|0x10000100|账户登录或注销事件。|
|WINDOW|0x07000000|屏幕截图、屏幕录制或屏幕投影事件。|
|VOLUME|0x0F000000|可移动存储设备的插入或移除事件。|
|PRINTER|0x2E000000|打印机事件。|
|PROCESS|0x1C000008|进程创建或退出事件。|
|NETWORK_TRAFFIC|0x1C00000E|网络流量事件。|
|NETWORK_CONN|0x1C00000F|网络连接事件。|
|CAMERA|0x2D000000|相机事件。|
|APP|0x10000000|应用程序事件。|
|EDM|0x11000000|企业设备管理事件。|
|CERT|0x12003000|证书操作事件。|
|KIA_CREATE|0x1C00000B|KIA文件创建事件。|
|KIA_READ|0x1C000012|KIA文件读取事件。|
|KIA_VARIANT|0x1C00000C|关键信息资产（KIA）文件变化事件。|
|KIA_INTERCEPT|0x1C00000A|KIA文件拦截事件。|
|PERMISSION|0x0B000000|应用程序权限更改事件。|
|DNS|0x03000001|DNS审计事件。|
|APP_INSTALL_INTERCEPTED|0x18000100|应用程序安装拦截事件。|
|APP_UNINSTALL_INTERCEPTED|0x18000101|应用程序卸载拦截事件。|
|APP_UPDATE_INTERCEPTED|0x18000102|应用程序更新拦截事件。|
|APP_RECOVER_INTERCEPTED|0x18000103|应用程序恢复拦截事件。|
|APP_START_INTERCEPTED|0x18000104|应用程序启动拦截事件。|
|USB_ACCESS_INTERCEPTED|0x30000000|USB访问拦截事件。|
|SMB_FILE_SEND|0x0F000001|SMB(Samba)外发事件。 **起始版本：** 6.1.0(23)|
|KIA_PRE_OPEN|0x1C000014|KIA文件秒开事件。 **起始版本：** 6.1.0(23)|
|HDC_DEBUG|0x27000100|HDC(HarmonyOS Device Connector)调测文件事件。 **起始版本：** 6.1.0(23)|
|HDC_DEBUG_INTERCEPTED|0x27000101|HDC(HarmonyOS Device Connector)调测拦截事件。 **起始版本：** 6.1.0(23)|
|USER_SPACE_DATA_TRANSFER|0x2F000000|多用户空间数据互传事件。 **起始版本：** 6.1.0(23)|
|USER_SPACE_DATA_TRANSFER_POLICY|0x2F000001|多用户空间互换审核策略事件。 **起始版本：** 6.1.0(23)|
|SERIAL_PORT_ACCESS|0x30000100|串口访问审计事件。 **起始版本：** 6.1.0(23)|
|NETWORK_INTERCEPTED|0x03000002|网络拦截事件。 **起始版本：** 6.1.0(23)|
|WIFI_INTERCEPTED|0x03000100|Wi-Fi拦截事件。 **起始版本：** 6.1.0(23)|
|PRINT_INTERCEPTED|0x2E000001|打印拦截事件。 **起始版本：** 6.1.0(23)|
|CS_VERIFY_NULL|0x12001081|应用代码未签名。 **起始版本：** 6.1.1(24)|
|CS_VERIFY_ABNORMAL|0x12001082|应用代码验签异常。 **起始版本：** 6.1.1(24)|
|FS_MOUNT_ABNORMAL|0x1C001102|系统目录异常挂载。 **起始版本：** 6.1.1(24)|
|DRIVER_CS_ABNORMAL|0x1C001200|驱动代码验签异常。 **起始版本：** 6.1.1(24)|
|DRIVER_MMAP_ABNORMAL|0x1C001201|驱动非法映射内核内存。 **起始版本：** 6.1.1(24)|
|KERNEL_MEMORY_ABNORMAL|0x1C001300|内核内存异常使用。 **起始版本：** 6.1.1(24)|
|PROCESS_DEBUG_ABNORMAL|0x1C001401|进程异常调试。 **起始版本：** 6.1.1(24)|
|PROCESS_CRASH_ABNORMAL|0x1C001402|进程异常崩溃。 **起始版本：** 6.1.1(24)|
|PROCESS_PRIVILEGE_ESCALATION|0x1C001403|进程提权。 **起始版本：** 6.1.1(24)|
|FILE_SHARE|0x0F000002|文件分享事件。 **起始版本：** 26.0.0|
|DATA_DRAG|0x0F000003|数据拖拽事件。 **起始版本：** 26.0.0|
|DLP_FILE_ACCESS|0x0F000006|DLP文件访问。 **起始版本：** 26.0.0|
|FILE_CREATE|0x1C001104|文件创建事件。 **起始版本：** 26.0.0|
|FILE_OPEN|0x1C001105|文件打开事件。 **起始版本：** 26.0.0|
|FILE_CLOSE|0x1C001106|文件关闭事件。 **起始版本：** 26.0.0|
|FILE_DELETE|0x1C001107|文件删除事件。 **起始版本：** 26.0.0|
|FILE_RENAME|0x1C001108|文件重命名事件。 **起始版本：** 26.0.0|
|FILE_COPY|0x1C001109|文件复制事件。 **起始版本：** 26.0.0|
|FILE_SETOWNER|0x1C00110A|文件修改所有者事件。 **起始版本：** 26.0.0|
|FILE_SETMODE|0x1C00110B|文件修改mode事件。 **起始版本：** 26.0.0|
|FILE_SETEXTATTR|0x1C00110C|文件设置扩展属性事件。 **起始版本：** 26.0.0|
|FILE_DELETEEXTATTR|0x1C00110D|文件删除扩展属性事件。 **起始版本：** 26.0.0|
|FILE_WRITE|0x1C00110E|文件写事件。 **起始版本：** 26.0.0|
|BLUETOOTH_INTERCEPTED|0x03000200|蓝牙拦截事件。 **起始版本：** 26.0.0|
|DISC_BURNING|0x0F000004|光盘刻录事件。 **起始版本：** 26.0.0|
|MEDIA_FILE_ACCESS|0x0F000005|媒体文件访问事件。 **起始版本：** 26.0.0|
|ACCOUNT_MANAGEMENT|0x10000103|账户管理事件。 **起始版本：** 26.0.0|
|DEVICE_POWER_ON|0x16000001|设备开机事件。 **起始版本：** 26.0.0|
|DEVICE_POWER_OFF|0x16000002|设备关机事件。 **起始版本：** 26.0.0|
|AUDIO_INTERFACE_ACCESS|0x1A000001|音频接口访问事件。 **起始版本：** 26.0.0|
|VIDEO_INTERFACE_ACCESS|0x1A000002|视频接口访问事件。 **起始版本：** 26.0.0|
|SERIAL_PORT_INTERCEPTED|0x30000101|串口拦截事件。 **起始版本：** 26.0.0|

## FilterType

> 2in1 6.0.0(20)+

事件过滤类型枚举。

**模型约束：** 此接口仅可在Stage模型下使用。

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 6.0.0(20)

|名称|值|说明|
|:------------------|:---------|:-------------------------------|
|EVENT_TYPE_EQUAL|0x00000100|事件类型的过滤器类型。|
|EVENT_SUBTYPE_EQUAL|0x00000200|事件子类型的过滤器类型。|
|FILE_PATH_EQUAL|0x00010000|文件路径类型的过滤器类型。|
|FILE_PATH_PREFIX|0x00010001|文件路径前缀类型的过滤器类型。|
|FILE_PATH_SUFFIX|0x00010002|文件路径后缀类型的过滤器类型。|
|FILE_PATH_REGULAR|0x00010003|文件路径正则表达式的过滤类型。 **起始版本：** 26.0.0|
|PROCESS_UID_EQUAL|0x00020000|过滤进程的UID类型。|
|PROCESS_PID_EQUAL|0x00020100|过滤进程ID类型。|
|PROCESS_NAME_EQUAL|0x00020200|筛选进程名称类型。|
|PROCESS_NAME_PREFIX|0x00020201|进程名称前缀的过滤类型。|
|PROCESS_NAME_SUFFIX|0x00020202|进程名称后缀的过滤类型。|

## AuthEvent

> 2in1 6.0.0(20)+

阻断类事件枚举。

**模型约束：** 此接口仅可在Stage模型下使用。

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 6.0.0(20)

|名称|值|说明|
|:-----------------|:---------|:--------------------------|
|FILE_CREATE|0x1C801100|文件创建阻断事件。|
|FILE_OPEN|0x1C801101|文件打开阻断事件。|
|FILE_RENAME|0x1C801102|文件重命名阻断事件。|
|FILE_DELETE|0x1C801103|文件删除阻断事件。|
|FILE_SETEXTATTR|0x1C801104|文件设置扩展属性的阻断事件。|
|FILE_DELETEEXTATTR|0x1C801105|文件删除扩展属性的阻断事件。|
|FILE_READ_END|0x1C801106|文件读结束阻断事件。 **起始版本：** 26.0.0|
|PROCESS_EXEC|0x1C801400|进程执行的阻断事件。 **起始版本：** 26.0.0|

## AuthResult

> 2in1 6.0.0(20)+

阻断结果的枚举。

**模型约束：** 此接口仅可在Stage模型下使用。

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 6.0.0(20)

|名称|值|说明|
|:----|:-|:---------|
|ALLOW|0|对阻断事件放行操作。|
|DENY|1|对阻断事件拒绝操作。|

## on('auditEventOccur')

> 2in1 5.0.1(13)+

on(type: 'auditEventOccur', auditEventInfo: [AuditEventInfo](#auditeventinfo), callback: Callback<[AuditEvent](#auditevent)>): void

订阅安全审计数据。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限：** ohos.permission.QUERY_AUDIT_EVENT

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 5.0.0(12)

**参数：**

|参数名|类型|必填|说明|
|:-------------|:----------------------------------|:-|:--------------------------------------|
|type|string|是|订阅的事件类型名称，固定值 'auditEventOccur'，表示审计事件。|
|auditEventInfo|[AuditEventInfo](#auditeventinfo)|是|订阅的审计数据信息。|
|callback|Callback<[AuditEvent](#auditevent)>|是|用于接收审计事件的回调函数。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:----|:---------------------|
|201|check permission fail.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

const TAG = 'SecurityAuditAuditJsTest';
const callback = (event: securityAudit.AuditEvent) => {
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func eventId= ' + event.eventId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func version= ' + event.version);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func content= ' + event.content);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func timestamp= ' + event.timestamp);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func userId= ' + event.userId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func deviceId= ' + event.deviceId);
};
let auditEventInfo: securityAudit.AuditEventInfo = {
   eventId: 0x810800800
};

try {
  hilog.info(0x0000, TAG, 'on begin.');
  securityAudit.on('auditEventOccur', auditEventInfo, callback);
  hilog.info(0x0000, TAG, 'Succeeded in on.');
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'on failed: %{public}d %{public}s', e.code, e.message);
}
```

## off('auditEventOccur')

> 2in1 5.0.1(13)+

off(type: 'auditEventOccur', auditEventInfo: [AuditEventInfo](#auditeventinfo), callback?: Callback<[AuditEvent](#auditevent)>): void

取消订阅安全审计数据。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限：** ohos.permission.QUERY_AUDIT_EVENT

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 5.0.0(12)

**参数：**

|参数名|类型|必填|说明|
|:-------------|:----------------------------------|:-|:-------------------------------------------------------------|
|type|string|是|取消订阅的事件类型名称，固定值 'auditEventOccur'，表示审计事件。|
|auditEventInfo|[AuditEventInfo](#auditeventinfo)|是|取消订阅的审计数据信息。|
|callback|Callback<[AuditEvent](#auditevent)>|否|用于接收审计数据的回调函数。如果传入了callback，则取消该callback的订阅，否则取消所有callback的订阅。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:----|:---------------------|
|201|check permission fail.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

const TAG = 'SecurityAuditAuditJsTest';
let auditEventInfo: securityAudit.AuditEventInfo = {
   eventId: 0x810800800
};

try {
  hilog.info(0x0000, TAG, 'off begin.');
  securityAudit.off('auditEventOccur', auditEventInfo);
  hilog.info(0x0000, TAG, 'Succeeded in off.');
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'off failed: %{public}d %{public}s', e.code, e.message);
}
```

## Filter

> 2in1 6.0.0(20)+

用户提供的过滤条件信息。

**模型约束：** 此接口仅可在Stage模型下使用。

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 6.0.0(20)

|名称|类型|只读|可选|说明|
|:--------|:------------------------|:-|:-|:------------------------------------------------------------------------------------------|
|isInclude|boolean|否|否|过滤标签，决定符合条件的事件是否返回给订阅者。 **true**：设置反过滤，符合过滤条件的事件将返回给订阅者。 **false**：设置过滤，符合过滤条件的事件将不会返回给订阅者。|
|type|[FilterType](#filtertype)|否|否|过滤类型。|
|values|string[]|否|否|过滤条件的值的数组。|

## Client

> 2in1 6.0.0(20)+

为通知客户端提供条件。

**模型约束：** 此接口仅可在Stage模型下使用。

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 6.0.0(20)
> 说明
>
> 需要通过[newClient](#newclient)构造实例。

### subscribe

> 2in1 6.0.0(20)+

subscribe(events: NotifyEvent[]): void

订阅通知事件。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限**：ohos.permission.QUERY_AUDIT_EVENT

**系统能力**：SystemCapability.Security.SecurityAudit

**起始版本**：6.0.0(20)

**参数：**

|参数名|类型|必填|说明|
|:-----|:----------------------------|:-|:---------|
|events|[NotifyEvent](#notifyevent)[]|是|需要订阅的通知事件。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:---------|:--------------------------------------------------------------------------------------------------------|
|201|check permission fail.|
|1012000001|Internal error.Possible causes: 1. IPC cross-process invoking fails. 2. System service process is faulty.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let client: securityAudit.Client | undefined = undefined;
const TAG = 'SecurityAuditJsTest';
const callback = (event: securityAudit.AuditEvent) => {
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func eventId= ' + event.eventId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func version= ' + event.version);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func content= ' + event.content);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func timestamp= ' + event.timestamp);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func userId= ' + event.userId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func deviceId= ' + event.deviceId);
};
try {
  client = securityAudit.newClient(callback);
  client?.subscribe([0x02D000000]);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'subscribe failed: %{public}d %{public}s', e.code, e.message);
}
```

### unsubscribe

> 2in1 6.0.0(20)+

unsubscribe(events: NotifyEvent[]): void

取消订阅通知事件。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限**：ohos.permission.QUERY_AUDIT_EVENT

**系统能力**：SystemCapability.Security.SecurityAudit

**起始版本**：6.0.0(20)

**参数：**

|参数名|类型|必填|说明|
|:-----|:----------------------------|:-|:--------|
|events|[NotifyEvent](#notifyevent)[]|是|已订阅的通知事件。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:---------|:--------------------------------------------------------------------------------------------------------|
|201|check permission fail.|
|1012000001|Internal error.Possible causes: 1. IPC cross-process invoking fails. 2. System service process is faulty.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let client: securityAudit.Client | undefined = undefined;
const TAG = 'SecurityAuditJsTest';
const callback = (event: securityAudit.AuditEvent) => {
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func eventId= ' + event.eventId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func version= ' + event.version);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func content= ' + event.content);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func timestamp= ' + event.timestamp);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func userId= ' + event.userId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func deviceId= ' + event.deviceId);
};
try {
  client = securityAudit.newClient(callback);
  client?.unsubscribe([0x02D000000]);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'unsubscribe failed: %{public}d %{public}s', e.code, e.message);
}
```

### addFilter

> 2in1 6.0.0(20)+

addFilter(event: NotifyEvent, filter: Filter): void

为通知事件添加过滤条件，符合过滤条件的事件将根据过滤器中的过滤标签决定是否返回给用户。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限**：ohos.permission.QUERY_AUDIT_EVENT

**系统能力**：SystemCapability.Security.SecurityAudit

**起始版本**：6.0.0(20)

**参数：**

|参数名|类型|必填|说明|
|:-----|:--------------------------|:-|:--------|
|event|[NotifyEvent](#notifyevent)|是|通知事件ID。|
|filter|[Filter](#filter)|是|通知事件的过滤器。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:---------|:--------------------------------------------------------------------------------------------------------|
|201|check permission fail.|
|1012000001|Internal error.Possible causes: 1. IPC cross-process invoking fails. 2. System service process is faulty.|
|1012000004|The number of filters exceeds the upper limit.|
|1012000005|The event does not support the filter condition.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let client: securityAudit.Client | undefined = undefined;
const TAG = 'SecurityAuditJsTest';
const callback = (event: securityAudit.AuditEvent) => {
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func eventId= ' + event.eventId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func version= ' + event.version);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func content= ' + event.content);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func timestamp= ' + event.timestamp);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func userId= ' + event.userId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func deviceId= ' + event.deviceId);
};
let filter : securityAudit.Filter = {
  type: 0x00000200,
  isInclude: true,
  values : ["2"]
};
try {
  client = securityAudit.newClient(callback);
  client?.addFilter(0x02D000000, filter);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'addFilter failed: %{public}d %{public}s', e.code, e.message);
}
```

### removeFilter

> 2in1 6.0.0(20)+

removeFilter(event: NotifyEvent, filter: Filter): void

删除通知事件的过滤条件，满足该过滤条件的事件将不会再根据过滤器中的过滤标签进行处理。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限**：ohos.permission.QUERY_AUDIT_EVENT

**系统能力**：SystemCapability.Security.SecurityAudit

**起始版本**：6.0.0(20)

**参数：**

|参数名|类型|必填|说明|
|:-----|:--------------------------|:-|:--------|
|event|[NotifyEvent](#notifyevent)|是|通知事件ID 。|
|filter|[Filter](#filter)|是|通知事件的过滤器。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:---------|:--------------------------------------------------------------------------------------------------------|
|201|check permission fail.|
|1012000001|Internal error.Possible causes: 1. IPC cross-process invoking fails. 2. System service process is faulty.|
|1012000005|The event does not support the filter condition.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let client: securityAudit.Client | undefined = undefined;
const TAG = 'SecurityAuditJsTest';
const callback = (event: securityAudit.AuditEvent) => {
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func eventId= ' + event.eventId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func version= ' + event.version);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func content= ' + event.content);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func timestamp= ' + event.timestamp);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func userId= ' + event.userId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func deviceId= ' + event.deviceId);
};
let filter : securityAudit.Filter = {
  type: 0x00000200,
  isInclude: true,
  values : ["2"]
};
try {
  client = securityAudit.newClient(callback);
  client?.removeFilter(0x02D000000, filter);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'removeFilter failed: %{public}d %{public}s', e.code, e.message);
}
```

## newClient

> 2in1 6.0.0(20)+

newClient(callback: Callback<[AuditEvent](#auditevent)>): Client

创建一个新的通知客户端，该客户端提供的方法可以实现通知类事件的订阅、过滤功能。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限：** ohos.permission.QUERY_AUDIT_EVENT

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 6.0.0(20)

**参数：**

|参数名|类型|必填|说明|
|:-------|:----------------------------------|:-|:-------------|
|callback|Callback<[AuditEvent](#auditevent)>|是|用于接收审计数据的回调函数。|

**返回值：**

|类型|说明|
|:----------------|:----------|
|[Client](#client)|通知类客户端实例对象。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:---------|:--------------------------------------------------------------------------------------------------------|
|201|check permission fail.|
|1012000001|Internal error.Possible causes: 1. IPC cross-process invoking fails. 2. System service process is faulty.|
|1012000002|The number of clients exceeds the global upper limit.|
|1012000003|The number of clients exceeds the current process upper limit.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let client: securityAudit.Client | undefined = undefined;
const TAG = 'SecurityAuditJsTest';
const callback = (event: securityAudit.AuditEvent) => {
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func eventId= ' + event.eventId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func version= ' + event.version);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func content= ' + event.content);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func timestamp= ' + event.timestamp);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func userId= ' + event.userId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func deviceId= ' + event.deviceId);
};
try {
  client = securityAudit.newClient(callback);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'newClient failed: %{public}d %{public}s', e.code, e.message);
}
```

## deleteClient

> 2in1 6.0.0(20)+

deleteClient(client: Client): void

删除通知客户端，用户将无法使用该客户端提供的方法，并会清空客户端记录的订阅与过滤信息。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限：** ohos.permission.QUERY_AUDIT_EVENT

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 6.0.0(20)

**参数：**

|参数名|类型|必填|说明|
|:-----|:----------------|:-|:-------|
|client|[Client](#client)|是|通知客户端信息。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:---------|:--------------------------------------------------------------------------------------------------------|
|201|check permission fail.|
|1012000001|Internal error.Possible causes: 1. IPC cross-process invoking fails. 2. System service process is faulty.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let client: securityAudit.Client | undefined = undefined;
const TAG = 'SecurityAuditJsTest';
const callback = (event: securityAudit.AuditEvent) => {
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func eventId= ' + event.eventId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func version= ' + event.version);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func content= ' + event.content);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func timestamp= ' + event.timestamp);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func userId= ' + event.userId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func deviceId= ' + event.deviceId);
};
try {
  client = securityAudit.newClient(callback);
  securityAudit.deleteClient(client);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'deleteClient failed: %{public}d %{public}s', e.code, e.message);
}
```

## AuthClient

> 2in1 6.0.0(20)+

为阻断类事件客户端提供条件。

**模型约束：** 此接口仅可在Stage模型下使用。

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 6.0.0(20)
> 说明
>
> 需要通过[newAuthClient](#newauthclient)构造实例。

### subscribe

> 2in1 6.0.0(20)+

subscribe(events: AuthEvent[]): void

订阅阻断事件。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限**：ohos.permission.kernel.AUTH_AUDIT_EVENT

**系统能力**：SystemCapability.Security.SecurityAudit

**起始版本**：6.0.0(20)

**参数：**

|参数名|类型|必填|说明|
|:-----|:------------------------|:-|:--------|
|events|[AuthEvent](#authevent)[]|是|要订阅的阻断事件。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:---------|:--------------------------------------------------------------------------------------------------------|
|201|check permission fail.|
|1012000001|Internal error.Possible causes: 1. IPC cross-process invoking fails. 2. System service process is faulty.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

const TAG = 'SecurityAuditAuthJsTest';
let authClient: securityAudit.AuthClient | undefined = undefined;
const callback = (event: securityAudit.AuditEvent) => {
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func eventId= ' + event.eventId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func content= ' + event.content);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func metadata= ' + event.metadata);
};
try {
  authClient = securityAudit.newAuthClient(callback);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'newAuthClient failed: %{public}d %{public}s', e.code, e.message);
}
try {
  authClient?.subscribe([securityAudit.AuthEvent.FILE_CREATE]);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'subscribe failed: %{public}d %{public}s', e.code, e.message);
}
```

### unsubscribe

> 2in1 6.0.0(20)+

unsubscribe(events: AuthEvent[]): void

取消订阅阻断事件。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限**：ohos.permission.kernel.AUTH_AUDIT_EVENT

**系统能力**：SystemCapability.Security.SecurityAudit

**起始版本**：6.0.0(20)

**参数：**

|参数名|类型|必填|说明|
|:-----|:------------------------|:-|:--------|
|events|[AuthEvent](#authevent)[]|是|已订阅的阻断事件。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:---------|:--------------------------------------------------------------------------------------------------------|
|201|check permission fail.|
|1012000001|Internal error.Possible causes: 1. IPC cross-process invoking fails. 2. System service process is faulty.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

const TAG = 'SecurityAuditAuthJsTest';
let authClient: securityAudit.AuthClient | undefined = undefined;
const callback = (event: securityAudit.AuditEvent) => {
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func eventId= ' + event.eventId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func content= ' + event.content);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func metadata= ' + event.metadata);
};
try {
  authClient = securityAudit.newAuthClient(callback);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'newAuthClient failed: %{public}d %{public}s', e.code, e.message);
}
try {
  authClient?.subscribe([securityAudit.AuthEvent.FILE_CREATE]);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'subscribe failed: %{public}d %{public}s', e.code, e.message);
}
try {
  authClient?.unsubscribe([securityAudit.AuthEvent.FILE_CREATE]);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'unsubscribe failed: %{public}d %{public}s', e.code, e.message);
}
```

### addFilter

> 2in1 6.0.0(20)+

addFilter(event: AuthEvent, filter: Filter): void

为阻断事件添加过滤条件，符合过滤条件的事件将根据过滤器中的过滤标签决定是否返回给用户。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限**：ohos.permission.kernel.AUTH_AUDIT_EVENT

**系统能力**：SystemCapability.Security.SecurityAudit

**起始版本**：6.0.0(20)

**参数：**

|参数名|类型|必填|说明|
|:-----|:----------------------|:-|:--------|
|event|[AuthEvent](#authevent)|是|阻断事件ID。|
|filter|[Filter](#filter)|是|阻断事件的过滤器。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:---------|:--------------------------------------------------------------------------------------------------------|
|201|check permission fail.|
|1012000001|Internal error.Possible causes: 1. IPC cross-process invoking fails. 2. System service process is faulty.|
|1012000004|The number of filters exceeds the upper limit.|
|1012000005|The event does not support the filter condition.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

const TAG = 'SecurityAuditAuthJsTest';
let authClient: securityAudit.AuthClient | undefined = undefined;
const callback = (event: securityAudit.AuditEvent) => {
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func eventId= ' + event.eventId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func content= ' + event.content);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func metadata= ' + event.metadata);
};
try {
  authClient = securityAudit.newAuthClient(callback);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'newAuthClient failed: %{public}d %{public}s', e.code, e.message);
}
let filter : securityAudit.Filter = {
  type: securityAudit.FilterType.PROCESS_PID_EQUAL,
  isInclude: true,
  values : ["2"]
};
try {
  authClient?.addFilter(securityAudit.AuthEvent.FILE_CREATE, filter);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'addFilter failed: %{public}d %{public}s', e.code, e.message);
}
```

### removeFilter

> 2in1 6.0.0(20)+

removeFilter(event: AuthEvent, filter: Filter): void

删除阻断事件的过滤条件，满足该过滤条件的事件将不会再根据过滤器中的过滤标签进行处理。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限**：ohos.permission.kernel.AUTH_AUDIT_EVENT

**系统能力**：SystemCapability.Security.SecurityAudit

**起始版本**：6.0.0(20)

**参数：**

|参数名|类型|必填|说明|
|:-----|:----------------------|:-|:--------|
|event|[AuthEvent](#authevent)|是|阻断事件ID 。|
|filter|[Filter](#filter)|是|阻断事件的过滤器。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:---------|:--------------------------------------------------------------------------------------------------------|
|201|check permission fail.|
|1012000001|Internal error.Possible causes: 1. IPC cross-process invoking fails. 2. System service process is faulty.|
|1012000005|The event does not support the filter condition.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

const TAG = 'SecurityAuditAuthJsTest';
let authClient: securityAudit.AuthClient | undefined = undefined;
const callback = (event: securityAudit.AuditEvent) => {
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func eventId= ' + event.eventId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func content= ' + event.content);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func metadata= ' + event.metadata);
};
try {
  authClient = securityAudit.newAuthClient(callback);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'newAuthClient failed: %{public}d %{public}s', e.code, e.message);
}
let filter : securityAudit.Filter = {
  type: securityAudit.FilterType.PROCESS_PID_EQUAL,
  isInclude: true,
  values : ["2"]
};
try {
  authClient?.addFilter(securityAudit.AuthEvent.FILE_CREATE, filter);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'addFilter failed: %{public}d %{public}s', e.code, e.message);
}
try {
  authClient?.removeFilter(securityAudit.AuthEvent.FILE_CREATE, filter);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'removeFilter failed: %{public}d %{public}s', e.code, e.message);
}
```

### auth

> 2in1 6.0.0(20)+

auth(auditEvent: AuditEvent, authResult: AuthResult): void

设置阻断事件的阻断结果，审计模块会根据阻断结果对事件进行放行或拒绝的处理。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限**：ohos.permission.kernel.AUTH_AUDIT_EVENT

**系统能力**：SystemCapability.Security.SecurityAudit

**起始版本**：6.0.0(20)

**参数：**

|参数名|类型|必填|说明|
|:---------|:------------------------|:-|:-------|
|auditEvent|[AuditEvent](#auditevent)|是|阻断事件信息 。|
|authResult|[AuthResult](#authresult)|是|阻断结果。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:---------|:--------------------------------------------------------------------------------------------------------|
|201|check permission fail.|
|1012000001|Internal error.Possible causes: 1. IPC cross-process invoking fails. 2. System service process is faulty.|
|1012000007|The auth event cannot be found.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

const TAG = 'SecurityAuditAuthJsTest';
let authClient: securityAudit.AuthClient | undefined = undefined;
const allowEventCallback = (event: securityAudit.AuditEvent) => {
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func eventId= ' + event.eventId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func content= ' + event.content);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func metadata= ' + event.metadata);
  try {
    authClient?.auth(event, securityAudit.AuthResult.ALLOW);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    hilog.error(0x0000, TAG, 'allowEventCallback', 'auth error:' + e.code);
  }
};
try {
  authClient = securityAudit.newAuthClient(allowEventCallback);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'newAuthClient failed: %{public}d %{public}s', e.code, e.message);
}
```

## newAuthClient

> 2in1 6.0.0(20)+

newAuthClient(callback: Callback<[AuditEvent](#auditevent)>): AuthClient

创建一个新的阻断客户端，该客户端提供的方法可以实现阻断类事件的订阅、过滤和阻断功能。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限：** ohos.permission.kernel.AUTH_AUDIT_EVENT

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 6.0.0(20)

**参数：**

|参数名|类型|必填|说明|
|:-------|:----------------------------------|:-|:-------------|
|callback|Callback<[AuditEvent](#auditevent)>|是|用于接收审计数据的回调函数。|

**返回值：**

|类型|说明|
|:------------------------|:---------------------------------------------------------------------------------------------------|
|[AuthClient](#authclient)|阻断类客户端实例对象，一个进程最大只允许创建2个客户端实例对象，当前设备最多只允许创建16个客户端实例对象。一个客户端实例最大只允许设置256条正过滤的过滤value和256条反过滤的过滤value。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:---------|:--------------------------------------------------------------------------------------------------------|
|201|check permission fail.|
|1012000001|Internal error.Possible causes: 1. IPC cross-process invoking fails. 2. System service process is faulty.|
|1012000002|The number of clients exceeds the global upper limit.|
|1012000003|The number of clients exceeds the current process upper limit.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

const TAG = 'SecurityAuditAuthJsTest';
let authClient: securityAudit.AuthClient | undefined = undefined;
const callback = (event: securityAudit.AuditEvent) => {
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func eventId= ' + event.eventId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func content= ' + event.content);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func metadata= ' + event.metadata);
};
try {
  authClient = securityAudit.newAuthClient(callback);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'newAuthClient failed: %{public}d %{public}s', e.code, e.message);
}
```

## deleteAuthClient

> 2in1 6.0.0(20)+

deleteAuthClient(client: AuthClient): void

删除阻断客户端，用户将无法使用该客户端提供的方法，并会清空客户端记录的订阅与过滤信息。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限：** ohos.permission.kernel.AUTH_AUDIT_EVENT

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 6.0.0(20)

**参数：**

|参数名|类型|必填|说明|
|:-----|:------------------------|:-|:-------|
|client|[AuthClient](#authclient)|是|阻断客户端信息。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:---------|:--------------------------------------------------------------------------------------------------------|
|201|check permission fail.|
|1012000001|Internal error.Possible causes: 1. IPC cross-process invoking fails. 2. System service process is faulty.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

const TAG = 'SecurityAuditAuthJsTest';
let authClient: securityAudit.AuthClient | undefined = undefined;
const callback = (event: securityAudit.AuditEvent) => {
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func eventId= ' + event.eventId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func content= ' + event.content);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func metadata= ' + event.metadata);
};
try {
  authClient = securityAudit.newAuthClient(callback);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'newAuthClient failed: %{public}d %{public}s', e.code, e.message);
}
try {
  securityAudit.deleteAuthClient(authClient);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'deleteAuthClient failed: %{public}d %{public}s', e.code, e.message);
}
```

## AuthClientConfiguration

> 2in1 26.0.0+

阻断类事件客户端配置项。

**模型约束：** 此接口仅可在Stage模型下使用。

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 26.0.0

|名称|类型|只读|可选|说明|
|:----------------|:------------------------|:-|:-|:-------------------------------------------|
|timeoutAuthResult|[AuthResult](#authresult)|否|否|设置授权事件响应超时时的默认授权结果。 - ALLOW：超时放行 - DENY：超时阻断|

## newAuthClient

> 2in1 26.0.0+

newAuthClient(callback: Callback<[AuditEvent](#auditevent)>, configuration: [AuthClientConfiguration](#authclientconfiguration)): AuthClient

创建一个新的阻断客户端（可配置超时默认阻断策略），该客户端提供的方法可以实现阻断类事件的订阅、过滤和阻断功能。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限：** ohos.permission.kernel.AUTH_AUDIT_EVENT

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 26.0.0

**参数：**

|参数名|类型|必填|说明|
|:------------|:--------------------------------------------------|:-|:-------------|
|callback|Callback<[AuditEvent](#auditevent)>|是|用于接收审计数据的回调函数。|
|configuration|[AuthClientConfiguration](#authclientconfiguration)|是|阻断客户端配置项。|

**返回值：**

|类型|说明|
|:------------------------|:----------|
|[AuthClient](#authclient)|阻断类客户端实例对象。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:---------|:--------------------------------------------------------------------------------------------------------|
|201|check permission fail.|
|1012000001|Internal error.Possible causes: 1. IPC cross-process invoking fails. 2. System service process is faulty.|
|1012000002|The number of clients exceeds the global upper limit.|
|1012000003|The number of clients exceeds the current process upper limit.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

const TAG = 'SecurityAuditAuthJsTest';
let authClient: securityAudit.AuthClient | undefined = undefined;
const callback = (event: securityAudit.AuditEvent) => {
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func eventId= ' + event.eventId);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func content= ' + event.content);
  hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_Auth_JsApi_Func metadata= ' + event.metadata);
};

// 配置超时后阻断
let config: securityAudit.AuthClientConfiguration = {
  timeoutAuthResult: securityAudit.AuthResult.DENY
};

try {
  authClient = securityAudit.newAuthClient(callback, config);
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'newAuthClient failed: %{public}d %{public}s', e.code, e.message);
}
```

## queryAllProcesses

> 2in1 6.0.0(20)+

queryAllProcesses(): string

查询获取所有的应用进程信息。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限：** ohos.permission.QUERY_AUDIT_EVENT

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 6.0.0(20)

**返回值：**

|类型|说明|
|:-----|:----------------------------------|
|string|应用进程信息内容，内容为json格式字符串。例如：{"1": {}}。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:---------|:--------------------------------------------------------------------------------------------------------|
|201|check permission fail.|
|1012000001|Internal error.Possible causes: 1. IPC cross-process invoking fails. 2. System service process is faulty.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

const TAG = 'SecurityAuditJsTest';
try {
  hilog.info(0x0000, TAG, 'queryAllProcesses begin.');
  const result = securityAudit.queryAllProcesses();
  hilog.info(0x0000, TAG, 'Succeeded in queryAllProcesses.');
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'queryAllProcesses failed: %{public}d %{public}s', e.code, e.message);
}
```

## queryProcesses

> 2in1 6.0.0(20)+

queryProcesses(pids: number[]): string

查询获取输入的PID的应用进程信息。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限：** ohos.permission.QUERY_AUDIT_EVENT

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 6.0.0(20)

**参数：**

|参数名|类型|必填|说明|
|:---|:-------|:-|:---------|
|pids|number[]|是|要查询的进程ID组。|

**返回值：**

|类型|说明|
|:-----|:----------------------------------|
|string|应用进程信息内容，内容为json格式字符串。例如：{"1": {}}。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:---------|:--------------------------------------------------------------------------------------------------------|
|201|check permission fail.|
|1012000001|Internal error.Possible causes: 1. IPC cross-process invoking fails. 2. System service process is faulty.|
|1012000006|The number of queried processes exceeds the threshold.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

const TAG = 'SecurityAuditJsTest';
let pids: number[] = [1, 2];
try {
  hilog.info(0x0000, TAG, 'queryProcesses begin.');
  const result = securityAudit.queryProcesses(pids);
  hilog.info(0x0000, TAG, 'Succeeded in queryProcesses.');
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'queryProcesses failed: %{public}d %{public}s', e.code, e.message);
}
```

## acquireCodeSign

> 2in1 6.1.1(24)+

acquireCodeSign(path: string): string

获取输入的文件路径的代码签名信息。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限：** ohos.permission.QUERY_AUDIT_EVENT

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 6.1.1(24)

**参数：**

|参数名|类型|必填|说明|
|:---|:-----|:-|:----------|
|path|string|是|待查询的应用文件路径。|

**返回值：**

|类型|说明|
|:-----|:--------------------------------|
|string|代码签名内容，内容为json格式字符串。例如：{"1": {}}。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:---------|:--------------------------------------------------------------------------------------------------------|
|201|check permission fail.|
|1012000001|Internal error.Possible causes: 1. IPC cross-process invoking fails. 2. System service process is faulty.|
|1012000008|The file cannot be found.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
 
const TAG = 'SecurityAuditJsTest';
let path = 'test';
try {
  hilog.info(0x0000, TAG, 'acquireCodeSign begin.');
  const result = securityAudit.acquireCodeSign(path);
  hilog.info(0x0000, TAG, 'Succeeded in acquireCodeSign.');
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'acquireCodeSign failed: %{public}d %{public}s', e.code, e.message);
}
```

## acquireAllClientsInfo

> 2in1 26.0.0+

acquireAllClientsInfo(): string

查询获取全量审计事件通知类客户端信息。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限：** ohos.permission.QUERY_AUDIT_EVENT

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 26.0.0

**返回值：**

|类型|说明|
|:-----|:---------------------------------------------------------------------------|
|string|安全审计通知类客户端信息，内容为json格式字符串。例如： [{"procName": vps, "uid": 1000, "pid": 1000}]。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:---------|:--------------------------------------------------------------------------------------------------------|
|201|check permission fail.|
|1012000001|Internal error.Possible causes: 1. IPC cross-process invoking fails. 2. System service process is faulty.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

const TAG = 'SecurityAuditJsTest';
try {
  hilog.info(0x0000, TAG, 'acquireAllClientsInfo begin.');
  const result = securityAudit.acquireAllClientsInfo();
  hilog.info(0x0000, TAG, 'Succeeded in acquireAllClientsInfo.');
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'acquireAllClientsInfo failed: %{public}d %{public}s', e.code, e.message);
}
```

## acquireAllAuthClientsInfo

> 2in1 26.0.0+

acquireAllAuthClientsInfo(): string

查询获取全量审计事件阻断类客户端信息。

**模型约束：** 此接口仅可在Stage模型下使用。

**需要权限：** ohos.permission.kernel.AUTH_AUDIT_EVENT

**系统能力：** SystemCapability.Security.SecurityAudit

**起始版本：** 26.0.0

**返回值：**

|类型|说明|
|:-----|:---------------------------------------------------------------------------|
|string|安全审计阻断类客户端信息，内容为json格式字符串。例如： [{"procName": vps, "uid": 1000, "pid": 1000}]。|

**错误码：**

以下错误码的详细介绍请参见[通用错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal)和[安全审计错误码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-devicesecurity-securityaudit)。

|错误码ID|错误信息|
|:---------|:--------------------------------------------------------------------------------------------------------|
|201|check permission fail.|
|1012000001|Internal error.Possible causes: 1. IPC cross-process invoking fails. 2. System service process is faulty.|

**示例：**

```typescript
import { securityAudit } from '@kit.DeviceSecurityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
 
const TAG = 'SecurityAuditJsTest';
try {
  hilog.info(0x0000, TAG, 'acquireAllAuthClientsInfo begin.');
  const result = securityAudit.acquireAllAuthClientsInfo();
  hilog.info(0x0000, TAG, 'Succeeded in acquireAllAuthClientsInfo.');
} catch (err) {
  let e: BusinessError = err as BusinessError;
  hilog.error(0x0000, TAG, 'acquireAllAuthClientsInfo failed: %{public}d %{public}s', e.code, e.message);
}
```

