161847f8eSopenharmony_ci/* 261847f8eSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 461847f8eSopenharmony_ci * you may not use this file except in compliance with the License. 561847f8eSopenharmony_ci * You may obtain a copy of the License at 661847f8eSopenharmony_ci * 761847f8eSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 861847f8eSopenharmony_ci * 961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and 1361847f8eSopenharmony_ci * limitations under the License. 1461847f8eSopenharmony_ci */ 1561847f8eSopenharmony_ci 1661847f8eSopenharmony_ci/** 1761847f8eSopenharmony_ci * @file This module provides the capabilities to security guard. 1861847f8eSopenharmony_ci * @kit SecurityGuardKit 1961847f8eSopenharmony_ci */ 2061847f8eSopenharmony_ci 2161847f8eSopenharmony_ciimport type { Callback } from '@ohos.base'; 2261847f8eSopenharmony_ci 2361847f8eSopenharmony_ci/** 2461847f8eSopenharmony_ci * Provides security event management and security model management. 2561847f8eSopenharmony_ci * Based on event information, you will be able to analyze the running status of devices. 2661847f8eSopenharmony_ci * 2761847f8eSopenharmony_ci * @namespace securityGuard 2861847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 2961847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 3061847f8eSopenharmony_ci * @since 12 3161847f8eSopenharmony_ci */ 3261847f8eSopenharmony_cideclare namespace securityGuard { 3361847f8eSopenharmony_ci 3461847f8eSopenharmony_ci /** 3561847f8eSopenharmony_ci * Provides the SecurityEvent type, including the event id, version info, report content. 3661847f8eSopenharmony_ci * 3761847f8eSopenharmony_ci * @typedef SecurityEvent 3861847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 3961847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 4061847f8eSopenharmony_ci * @since 12 4161847f8eSopenharmony_ci */ 4261847f8eSopenharmony_ci interface SecurityEvent { 4361847f8eSopenharmony_ci /** 4461847f8eSopenharmony_ci * The event id 4561847f8eSopenharmony_ci * 4661847f8eSopenharmony_ci * @type { number } 4761847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 4861847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 4961847f8eSopenharmony_ci * @since 12 5061847f8eSopenharmony_ci */ 5161847f8eSopenharmony_ci eventId: number; 5261847f8eSopenharmony_ci 5361847f8eSopenharmony_ci /** 5461847f8eSopenharmony_ci * The version of a security event. Different versions indicate different data formats. 5561847f8eSopenharmony_ci * 5661847f8eSopenharmony_ci * @type { string } 5761847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 5861847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 5961847f8eSopenharmony_ci * @since 12 6061847f8eSopenharmony_ci */ 6161847f8eSopenharmony_ci version: string; 6261847f8eSopenharmony_ci 6361847f8eSopenharmony_ci /** 6461847f8eSopenharmony_ci * The report content 6561847f8eSopenharmony_ci * 6661847f8eSopenharmony_ci * @type { string } 6761847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 6861847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 6961847f8eSopenharmony_ci * @since 12 7061847f8eSopenharmony_ci */ 7161847f8eSopenharmony_ci content: string; 7261847f8eSopenharmony_ci 7361847f8eSopenharmony_ci /** 7461847f8eSopenharmony_ci * The event timestamp, format is YYYYMMDDHHMMSS. 7561847f8eSopenharmony_ci * 7661847f8eSopenharmony_ci * @type { ?string } 7761847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 7861847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 7961847f8eSopenharmony_ci * @since 12 8061847f8eSopenharmony_ci */ 8161847f8eSopenharmony_ci timestamp?: string; 8261847f8eSopenharmony_ci } 8361847f8eSopenharmony_ci 8461847f8eSopenharmony_ci /** 8561847f8eSopenharmony_ci * Report security information to the security guard. 8661847f8eSopenharmony_ci * 8761847f8eSopenharmony_ci * @permission ohos.permission.REPORT_SECURITY_EVENT 8861847f8eSopenharmony_ci * @param { SecurityEvent } securityEvent - indicates the information to be reported. 8961847f8eSopenharmony_ci * @throws { BusinessError } 201 - check permission fail. 9061847f8eSopenharmony_ci * @throws { BusinessError } 202 - non-system application uses the system API. 9161847f8eSopenharmony_ci * @throws { BusinessError } 401 - invalid parameters. 9261847f8eSopenharmony_ci * Possible causes: 9361847f8eSopenharmony_ci * 1. Mandatory parameters are left unspecified. 9461847f8eSopenharmony_ci * 2. Incorrect parameter types. 9561847f8eSopenharmony_ci * 3. Parameter verification failed. 9661847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 9761847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 9861847f8eSopenharmony_ci * @since 12 9961847f8eSopenharmony_ci */ 10061847f8eSopenharmony_ci function reportSecurityEvent(securityEvent: SecurityEvent): void; 10161847f8eSopenharmony_ci 10261847f8eSopenharmony_ci /** 10361847f8eSopenharmony_ci * Provides the conditions of querySecurityEvent. 10461847f8eSopenharmony_ci * 10561847f8eSopenharmony_ci * @interface SecurityEventRule 10661847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 10761847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 10861847f8eSopenharmony_ci * @since 12 10961847f8eSopenharmony_ci */ 11061847f8eSopenharmony_ci interface SecurityEventRule { 11161847f8eSopenharmony_ci /** 11261847f8eSopenharmony_ci * The security event ids. 11361847f8eSopenharmony_ci * 11461847f8eSopenharmony_ci * @type { number } 11561847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 11661847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 11761847f8eSopenharmony_ci * @since 12 11861847f8eSopenharmony_ci */ 11961847f8eSopenharmony_ci eventId: number; 12061847f8eSopenharmony_ci 12161847f8eSopenharmony_ci /** 12261847f8eSopenharmony_ci * The begin time, format is YYYYMMDDHHMMSS. 12361847f8eSopenharmony_ci * 12461847f8eSopenharmony_ci * @type { ?string } 12561847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 12661847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 12761847f8eSopenharmony_ci * @since 12 12861847f8eSopenharmony_ci */ 12961847f8eSopenharmony_ci beginTime?: string; 13061847f8eSopenharmony_ci 13161847f8eSopenharmony_ci /** 13261847f8eSopenharmony_ci * The end time, format is YYYYMMDDHHMMSS. 13361847f8eSopenharmony_ci * 13461847f8eSopenharmony_ci * @type { ?string } 13561847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 13661847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 13761847f8eSopenharmony_ci * @since 12 13861847f8eSopenharmony_ci */ 13961847f8eSopenharmony_ci endTime?: string; 14061847f8eSopenharmony_ci 14161847f8eSopenharmony_ci /** 14261847f8eSopenharmony_ci * The query condition. 14361847f8eSopenharmony_ci * 14461847f8eSopenharmony_ci * @type { ?string } 14561847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 14661847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 14761847f8eSopenharmony_ci * @since 12 14861847f8eSopenharmony_ci */ 14961847f8eSopenharmony_ci param?: string; 15061847f8eSopenharmony_ci } 15161847f8eSopenharmony_ci 15261847f8eSopenharmony_ci /** 15361847f8eSopenharmony_ci * Definition callback of receiving the query data. 15461847f8eSopenharmony_ci * 15561847f8eSopenharmony_ci * @interface Querier 15661847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 15761847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 15861847f8eSopenharmony_ci * @since 12 15961847f8eSopenharmony_ci */ 16061847f8eSopenharmony_ci interface Querier { 16161847f8eSopenharmony_ci /** 16261847f8eSopenharmony_ci * Triggered when data is returned. 16361847f8eSopenharmony_ci * 16461847f8eSopenharmony_ci * @type { function } 16561847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 16661847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 16761847f8eSopenharmony_ci * @since 12 16861847f8eSopenharmony_ci */ 16961847f8eSopenharmony_ci onQuery: (events: Array<SecurityEvent>) => void; 17061847f8eSopenharmony_ci 17161847f8eSopenharmony_ci /** 17261847f8eSopenharmony_ci * Triggered when data is complete. 17361847f8eSopenharmony_ci * 17461847f8eSopenharmony_ci * @type { function } 17561847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 17661847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 17761847f8eSopenharmony_ci * @since 12 17861847f8eSopenharmony_ci */ 17961847f8eSopenharmony_ci onComplete: () => void; 18061847f8eSopenharmony_ci 18161847f8eSopenharmony_ci /** 18261847f8eSopenharmony_ci * Triggered when error. 18361847f8eSopenharmony_ci * 18461847f8eSopenharmony_ci * @type { function } 18561847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 18661847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 18761847f8eSopenharmony_ci * @since 12 18861847f8eSopenharmony_ci */ 18961847f8eSopenharmony_ci onError: (message: string) => void; 19061847f8eSopenharmony_ci } 19161847f8eSopenharmony_ci 19261847f8eSopenharmony_ci /** 19361847f8eSopenharmony_ci * Query security event information from security guard. 19461847f8eSopenharmony_ci * 19561847f8eSopenharmony_ci * @permission ohos.permission.QUERY_SECURITY_EVENT 19661847f8eSopenharmony_ci * @param { Array<SecurityEventRule> } rules - rule of get security event information. 19761847f8eSopenharmony_ci * @param { Querier } querier - callback of receiving the query data. 19861847f8eSopenharmony_ci * @throws { BusinessError } 201 - check permission fail. 19961847f8eSopenharmony_ci * @throws { BusinessError } 202 - non-system application uses the system API. 20061847f8eSopenharmony_ci * @throws { BusinessError } 401 - invalid parameters. 20161847f8eSopenharmony_ci * Possible causes: 20261847f8eSopenharmony_ci * 1. Mandatory parameters are left unspecified. 20361847f8eSopenharmony_ci * 2. Incorrect parameter types. 20461847f8eSopenharmony_ci * 3. Parameter verification failed. 20561847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 20661847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 20761847f8eSopenharmony_ci * @since 12 20861847f8eSopenharmony_ci */ 20961847f8eSopenharmony_ci function querySecurityEvent(rules: Array<SecurityEventRule>, querier: Querier): void; 21061847f8eSopenharmony_ci 21161847f8eSopenharmony_ci /** 21261847f8eSopenharmony_ci * Provides the conditions of Collector. 21361847f8eSopenharmony_ci * 21461847f8eSopenharmony_ci * @typedef CollectorRule 21561847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 21661847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 21761847f8eSopenharmony_ci * @since 12 21861847f8eSopenharmony_ci */ 21961847f8eSopenharmony_ci interface CollectorRule { 22061847f8eSopenharmony_ci /** 22161847f8eSopenharmony_ci * The event id 22261847f8eSopenharmony_ci * 22361847f8eSopenharmony_ci * @type { number } 22461847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 22561847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 22661847f8eSopenharmony_ci * @since 12 22761847f8eSopenharmony_ci */ 22861847f8eSopenharmony_ci eventId: number; 22961847f8eSopenharmony_ci 23061847f8eSopenharmony_ci /** 23161847f8eSopenharmony_ci * The query condition. 23261847f8eSopenharmony_ci * 23361847f8eSopenharmony_ci * @type { ?string } 23461847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 23561847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 23661847f8eSopenharmony_ci * @since 12 23761847f8eSopenharmony_ci */ 23861847f8eSopenharmony_ci param?: string; 23961847f8eSopenharmony_ci } 24061847f8eSopenharmony_ci 24161847f8eSopenharmony_ci /** 24261847f8eSopenharmony_ci * start the collector to collect data 24361847f8eSopenharmony_ci * 24461847f8eSopenharmony_ci * @permission ohos.permission.QUERY_SECURITY_EVENT 24561847f8eSopenharmony_ci * @param { CollectorRule } rule - rule of collect security event information. 24661847f8eSopenharmony_ci * @throws { BusinessError } 201 - check permission fail. 24761847f8eSopenharmony_ci * @throws { BusinessError } 202 - non-system application uses the system API. 24861847f8eSopenharmony_ci * @throws { BusinessError } 401 - invalid parameters. 24961847f8eSopenharmony_ci * Possible causes: 25061847f8eSopenharmony_ci * 1. Mandatory parameters are left unspecified. 25161847f8eSopenharmony_ci * 2. Incorrect parameter types. 25261847f8eSopenharmony_ci * 3. Parameter verification failed. 25361847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 25461847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 25561847f8eSopenharmony_ci * @since 12 25661847f8eSopenharmony_ci */ 25761847f8eSopenharmony_ci function startSecurityEventCollector(rule: CollectorRule): void; 25861847f8eSopenharmony_ci 25961847f8eSopenharmony_ci /** 26061847f8eSopenharmony_ci * stop the collector. 26161847f8eSopenharmony_ci * 26261847f8eSopenharmony_ci * @permission ohos.permission.QUERY_SECURITY_EVENT 26361847f8eSopenharmony_ci * @param { CollectorRule } rule - rule of collect security event information. 26461847f8eSopenharmony_ci * @throws { BusinessError } 201 - check permission fail. 26561847f8eSopenharmony_ci * @throws { BusinessError } 202 - non-system application uses the system API. 26661847f8eSopenharmony_ci * @throws { BusinessError } 401 - invalid parameters. 26761847f8eSopenharmony_ci * Possible causes: 26861847f8eSopenharmony_ci * 1. Mandatory parameters are left unspecified. 26961847f8eSopenharmony_ci * 2. Incorrect parameter types. 27061847f8eSopenharmony_ci * 3. Parameter verification failed. 27161847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 27261847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 27361847f8eSopenharmony_ci * @since 12 27461847f8eSopenharmony_ci */ 27561847f8eSopenharmony_ci function stopSecurityEventCollector(rule: CollectorRule): void; 27661847f8eSopenharmony_ci 27761847f8eSopenharmony_ci /** 27861847f8eSopenharmony_ci * Provides the ModelRule type. 27961847f8eSopenharmony_ci * 28061847f8eSopenharmony_ci * @typedef ModelRule 28161847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 28261847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 28361847f8eSopenharmony_ci * @since 12 28461847f8eSopenharmony_ci */ 28561847f8eSopenharmony_ci interface ModelRule { 28661847f8eSopenharmony_ci /** 28761847f8eSopenharmony_ci * The security model rule 28861847f8eSopenharmony_ci * 28961847f8eSopenharmony_ci * @type { string } 29061847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 29161847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 29261847f8eSopenharmony_ci * @since 12 29361847f8eSopenharmony_ci */ 29461847f8eSopenharmony_ci modelName: string; 29561847f8eSopenharmony_ci 29661847f8eSopenharmony_ci /** 29761847f8eSopenharmony_ci * The model param. 29861847f8eSopenharmony_ci * 29961847f8eSopenharmony_ci * @type { ?string } 30061847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 30161847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 30261847f8eSopenharmony_ci * @since 12 30361847f8eSopenharmony_ci */ 30461847f8eSopenharmony_ci param?: string 30561847f8eSopenharmony_ci } 30661847f8eSopenharmony_ci 30761847f8eSopenharmony_ci /** 30861847f8eSopenharmony_ci * Provides the ModelResult type. 30961847f8eSopenharmony_ci * 31061847f8eSopenharmony_ci * @typedef ModelResult 31161847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 31261847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 31361847f8eSopenharmony_ci * @since 12 31461847f8eSopenharmony_ci */ 31561847f8eSopenharmony_ci interface ModelResult { 31661847f8eSopenharmony_ci /** 31761847f8eSopenharmony_ci * The result of security model. 31861847f8eSopenharmony_ci * 31961847f8eSopenharmony_ci * @type { string } 32061847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 32161847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 32261847f8eSopenharmony_ci * @since 12 32361847f8eSopenharmony_ci */ 32461847f8eSopenharmony_ci result: string; 32561847f8eSopenharmony_ci } 32661847f8eSopenharmony_ci 32761847f8eSopenharmony_ci /** 32861847f8eSopenharmony_ci * Request security model result from security guard. 32961847f8eSopenharmony_ci * 33061847f8eSopenharmony_ci * @permission ohos.permission.QUERY_SECURITY_MODEL_RESULT 33161847f8eSopenharmony_ci * @param { ModelRule } rule - indicates the security model rule. 33261847f8eSopenharmony_ci * @returns { Promise<ModelResult> } model Results with Promises. 33361847f8eSopenharmony_ci * @throws { BusinessError } 201 - check permission fail. 33461847f8eSopenharmony_ci * @throws { BusinessError } 202 - non-system application uses the system API. 33561847f8eSopenharmony_ci * @throws { BusinessError } 401 - invalid parameters. 33661847f8eSopenharmony_ci * Possible causes: 33761847f8eSopenharmony_ci * 1. Mandatory parameters are left unspecified. 33861847f8eSopenharmony_ci * 2. Incorrect parameter types. 33961847f8eSopenharmony_ci * 3. Parameter verification failed. 34061847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 34161847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 34261847f8eSopenharmony_ci * @since 12 34361847f8eSopenharmony_ci */ 34461847f8eSopenharmony_ci function getModelResult(rule: ModelRule): Promise<ModelResult>; 34561847f8eSopenharmony_ci 34661847f8eSopenharmony_ci /** 34761847f8eSopenharmony_ci * Provides the conditions of on/off. 34861847f8eSopenharmony_ci * 34961847f8eSopenharmony_ci * @interface SecurityEventInfo 35061847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 35161847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 35261847f8eSopenharmony_ci * @since 12 35361847f8eSopenharmony_ci */ 35461847f8eSopenharmony_ci interface SecurityEventInfo { 35561847f8eSopenharmony_ci /** 35661847f8eSopenharmony_ci * The security event id. 35761847f8eSopenharmony_ci * 35861847f8eSopenharmony_ci * @type { number } 35961847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 36061847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 36161847f8eSopenharmony_ci * @since 12 36261847f8eSopenharmony_ci */ 36361847f8eSopenharmony_ci eventId: number; 36461847f8eSopenharmony_ci } 36561847f8eSopenharmony_ci 36661847f8eSopenharmony_ci /** 36761847f8eSopenharmony_ci * Subscribe the security event. 36861847f8eSopenharmony_ci * 36961847f8eSopenharmony_ci * @permission ohos.permission.QUERY_SECURITY_EVENT 37061847f8eSopenharmony_ci * @param {'securityEventOccur'} type 37161847f8eSopenharmony_ci * @param { SecurityEventInfo } securityEventInfo - Indicates the subscribed event information. 37261847f8eSopenharmony_ci * @param { Callback<SecurityEvent> } callback - Indicates the listener when the security event occurs. 37361847f8eSopenharmony_ci * @throws { BusinessError } 201 - check permission fail. 37461847f8eSopenharmony_ci * @throws { BusinessError } 202 - non-system application uses the system API. 37561847f8eSopenharmony_ci * @throws { BusinessError } 401 - invalid parameters. 37661847f8eSopenharmony_ci * Possible causes: 37761847f8eSopenharmony_ci * 1. Mandatory parameters are left unspecified. 37861847f8eSopenharmony_ci * 2. Incorrect parameter types. 37961847f8eSopenharmony_ci * 3. Parameter verification failed. 38061847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 38161847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 38261847f8eSopenharmony_ci * @since 12 38361847f8eSopenharmony_ci */ 38461847f8eSopenharmony_ci function on(type: 'securityEventOccur', securityEventInfo: SecurityEventInfo, callback: Callback<SecurityEvent>): void; 38561847f8eSopenharmony_ci 38661847f8eSopenharmony_ci /** 38761847f8eSopenharmony_ci * Unsubscribe the security event. 38861847f8eSopenharmony_ci * 38961847f8eSopenharmony_ci * @permission ohos.permission.QUERY_SECURITY_EVENT 39061847f8eSopenharmony_ci * @param {'securityEventOccur'} type 39161847f8eSopenharmony_ci * @param { SecurityEventInfo } securityEventInfo - Indicates the subscribed event information. 39261847f8eSopenharmony_ci * @param { Callback<SecurityEvent> } callback - Indicates the listener when the security event occurs. 39361847f8eSopenharmony_ci * @throws { BusinessError } 201 - check permission fail. 39461847f8eSopenharmony_ci * @throws { BusinessError } 202 - non-system application uses the system API. 39561847f8eSopenharmony_ci * @throws { BusinessError } 401 - invalid parameters. 39661847f8eSopenharmony_ci * Possible causes: 39761847f8eSopenharmony_ci * 1. Mandatory parameters are left unspecified. 39861847f8eSopenharmony_ci * 2. Incorrect parameter types. 39961847f8eSopenharmony_ci * 3. Parameter verification failed. 40061847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 40161847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 40261847f8eSopenharmony_ci * @since 12 40361847f8eSopenharmony_ci */ 40461847f8eSopenharmony_ci function off(type: 'securityEventOccur', securityEventInfo: SecurityEventInfo, callback?: Callback<SecurityEvent>): void; 40561847f8eSopenharmony_ci 40661847f8eSopenharmony_ci /** 40761847f8eSopenharmony_ci * Provides policy file information. 40861847f8eSopenharmony_ci * 40961847f8eSopenharmony_ci * @interface PolicyFile 41061847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 41161847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 41261847f8eSopenharmony_ci * @since 12 41361847f8eSopenharmony_ci */ 41461847f8eSopenharmony_ci interface PolicyFile { 41561847f8eSopenharmony_ci /** 41661847f8eSopenharmony_ci * The policy file name. 41761847f8eSopenharmony_ci * 41861847f8eSopenharmony_ci * @type { string } 41961847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 42061847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 42161847f8eSopenharmony_ci * @since 12 42261847f8eSopenharmony_ci */ 42361847f8eSopenharmony_ci name: string; 42461847f8eSopenharmony_ci 42561847f8eSopenharmony_ci /** 42661847f8eSopenharmony_ci * The policy file descriptor. 42761847f8eSopenharmony_ci * 42861847f8eSopenharmony_ci * @type { number } 42961847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 43061847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 43161847f8eSopenharmony_ci * @since 12 43261847f8eSopenharmony_ci */ 43361847f8eSopenharmony_ci fd: number; 43461847f8eSopenharmony_ci } 43561847f8eSopenharmony_ci 43661847f8eSopenharmony_ci /** 43761847f8eSopenharmony_ci * Update the policy file. 43861847f8eSopenharmony_ci * 43961847f8eSopenharmony_ci * @permission ohos.permission.MANAGE_SECURITY_GUARD_CONFIG 44061847f8eSopenharmony_ci * @param { PolicyFile } policyFile - Indicates the policy file information. 44161847f8eSopenharmony_ci * @returns { Promise<void> } the promise returned by the function. 44261847f8eSopenharmony_ci * @throws { BusinessError } 201 - check permission fail. 44361847f8eSopenharmony_ci * @throws { BusinessError } 202 - non-system application uses the system API. 44461847f8eSopenharmony_ci * @throws { BusinessError } 401 - invalid parameters. 44561847f8eSopenharmony_ci * Possible causes: 44661847f8eSopenharmony_ci * 1. Mandatory parameters are left unspecified. 44761847f8eSopenharmony_ci * 2. Incorrect parameter types. 44861847f8eSopenharmony_ci * 3. Parameter verification failed. 44961847f8eSopenharmony_ci * @syscap SystemCapability.Security.SecurityGuard 45061847f8eSopenharmony_ci * @systemapi Hide this for inner system use. 45161847f8eSopenharmony_ci * @since 12 45261847f8eSopenharmony_ci */ 45361847f8eSopenharmony_ci function updatePolicyFile(policyFile: PolicyFile): Promise<void>; 45461847f8eSopenharmony_ci} 45561847f8eSopenharmony_ci 45661847f8eSopenharmony_ciexport default securityGuard; 457