1/* 2 * Copyright (c) 2025 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16package OHOS.Security.AccessToken; 17sequenceable OHOS.Security.AccessToken.PermissionDefParcel; 18sequenceable OHOS.Security.AccessToken.PermissionStatusParcel; 19sequenceable OHOS.Security.AccessToken.PermissionListStateParcel; 20sequenceable OHOS.Security.AccessToken.PermissionGrantInfoParcel; 21sequenceable OHOS.Security.AccessToken.HapInfoParcel; 22sequenceable OHOS.Security.AccessToken.HapPolicyParcel; 23sequenceable OHOS.Security.AccessToken.NativeTokenInfoParcel; 24sequenceable OHOS.Security.AccessToken.HapTokenInfoParcel; 25sequenceable OHOS.Security.AccessToken.PermStateChangeScopeParcel; 26sequenceable OHOS.IRemoteObject; 27sequenceable OHOS.Security.AccessToken.HapTokenInfoForSyncParcel; 28sequenceable OHOS.Security.AccessToken.HapBaseInfoParcel; 29sequenceable OHOS.Security.AccessToken.AtmToolsParamInfoParcel; 30sequenceable OHOS.Security.AccessToken.SecCompEnhanceDataParcel; 31 32import IdlCommon; 33 34option_stub_hooks on; 35 36interface OHOS.Security.AccessToken.IAccessTokenManager{ 37 [ipccode 1] void VerifyAccessToken([in] unsigned int tokenID, [in] String permissionName, [out] int state); 38 [ipccode 2] void GetDefPermission([in] String permissionName, [out] PermissionDefParcel permissionDefResult); 39 [ipccode 3] void GetReqPermissions([in] unsigned int tokenID, [out] List<PermissionStatusParcel> reqPermList, [in] boolean isSystemGrant); 40 [ipccode 4] void GetPermissionFlag([in] unsigned int tokenID, [in] String permissionName, [out] unsigned int flag); 41 [ipccode 5] void GrantPermission([in] unsigned int tokenID, [in] String permissionName, [in] unsigned int flag); 42 [ipccode 6] void RevokePermission([in] unsigned int tokenID, [in] String permissionName, [in] unsigned int flag); 43 [ipccode 7] void ClearUserGrantedPermissionState([in] unsigned int tokenID); 44 [ipccode 8] void AllocHapToken([in] HapInfoParcel hapInfo, [in] HapPolicyParcel policyParcel, [out] unsigned long fullTokenId); 45 [ipccode 9] void DeleteToken([in] unsigned int tokenID); 46 [ipccode 10] void InitHapToken([in] HapInfoParcel info, [in] HapPolicyParcel policy, [out] unsigned long fullTokenId, [out] HapInfoCheckResultIdl resultInfoIdl); 47 [ipccode 11] void SetPermissionRequestToggleStatus([in] String permissionName, [in] unsigned int status, [in] int userID); 48 [ipccode 12] void GetPermissionRequestToggleStatus([in] String permissionName, [out] unsigned int status, [in] int userID); 49 [ipccode 13] void GrantPermissionForSpecifiedTime([in] unsigned int tokenID, [in] String permissionName, [in] unsigned int onceTime); 50 [ipccode 14] void RequestAppPermOnSetting([in] unsigned int tokenID); 51 [ipccode 16] void GetTokenType([in] unsigned int tokenID, [out] int tokenType); 52 53 [ipccode 18] void GetHapTokenID([in] int userID, [in] String bundleName, [in] int instIndex, [out] unsigned long fullTokenId); 54 [ipccode 19] void AllocLocalTokenID([in] String remoteDeviceID, [in] unsigned int remoteTokenID, [out] unsigned int tokenId); 55 [ipccode 20] void GetNativeTokenInfo([in] unsigned int tokenID, [out] NativeTokenInfoParcel nativeTokenInfoRes); 56 [ipccode 21] void GetHapTokenInfo([in] unsigned int tokenID, [out] HapTokenInfoParcel hapTokenInfoRes); 57 [ipccode 22] void UpdateHapToken([inout] unsigned long fullTokenId, [in] UpdateHapInfoParamsIdl infoIdl, [in] HapPolicyParcel policyParcel, [out] HapInfoCheckResultIdl resultInfoIdl); 58 [ipccode 23] void GetTokenIDByUserID([in] int userID, [out] List<unsigned int> tokenIdList); 59 [macrodef TOKEN_SYNC_ENABLE, ipccode 32] void GetHapTokenInfoFromRemote([in] unsigned int tokenID, [out] HapTokenInfoForSyncParcel hapSyncParcel); 60 61 [macrodef TOKEN_SYNC_ENABLE, ipccode 34] void SetRemoteHapTokenInfo([in] String deviceID, [in] HapTokenInfoForSyncParcel hapSyncParcel); 62 63 [macrodef TOKEN_SYNC_ENABLE, ipccode 36] void DeleteRemoteToken([in] String deviceID, [in] unsigned int tokenID); 64 [macrodef TOKEN_SYNC_ENABLE, ipccode 37] void DeleteRemoteDeviceTokens([in] String deviceID); 65 [macrodef TOKEN_SYNC_ENABLE, ipccode 38] void GetRemoteNativeTokenID([in] String deviceID, [in] unsigned int tokenID, [out] unsigned int tokenId); 66 [macrodef TOKEN_SYNC_ENABLE, ipccode 39] void RegisterTokenSyncCallback([in] IRemoteObject cb); 67 [macrodef TOKEN_SYNC_ENABLE, ipccode 40] void UnRegisterTokenSyncCallback(); 68 [ipccode 48, ipcoutcapacity 2000] void DumpTokenInfo([in] AtmToolsParamInfoParcel infoParcel, [out] String tokenInfo); 69 [ipccode 49] void GetSelfPermissionsState([inout] List<PermissionListStateParcel> permListParcel, [out] PermissionGrantInfoParcel infoParcel, [out] int permOper); 70 [ipccode 50] void GetPermissionsStatus([in] unsigned int tokenID, [inout] List<PermissionListStateParcel>permListParcel); 71 [ipccode 51] void RegisterPermStateChangeCallback([in] PermStateChangeScopeParcel scope, [in] IRemoteObject cb); 72 [ipccode 52] void UnRegisterPermStateChangeCallback([in] IRemoteObject cb); 73 [ipccode 53, macrondef ATM_BUILD_VARIANT_USER_ENABLE] void ReloadNativeTokenInfo(); 74 [ipccode 54] void GetNativeTokenId([in] String processName, [out] unsigned int tokenID); 75 [ipccode 55] void SetPermDialogCap([in] HapBaseInfoParcel hapBaseInfoParcel, [in] boolean enable); 76 [ipccode 56] void GetPermissionUsedType([in] unsigned int tokenID, [in] String permissionName, [out] int permUsedType); 77 78 [ipccode 58] void GetVersion([out] unsigned int version); 79 [ipccode 59] void GetPermissionManagerInfo([out] PermissionGrantInfoParcel infoParcel); 80 81 [ipccode 61] void InitUserPolicy([in] List<UserStateIdl> userIdlList, [in] List<String> permList); 82 [ipccode 62] void UpdateUserPolicy([in] List<UserStateIdl> userIdlList); 83 [ipccode 63] void ClearUserPolicy(); 84 [ipccode 64] void GetHapTokenInfoExtension([in] unsigned int tokenID, [out] HapTokenInfoParcel hapTokenInfoRes, [out] String appID); 85 [ipccode 65] void RegisterSelfPermStateChangeCallback([in] PermStateChangeScopeParcel scope, [in] IRemoteObject cb); 86 [ipccode 66] void UnRegisterSelfPermStateChangeCallback([in] IRemoteObject cb); 87 [ipccode 67] void GetKernelPermissions([in] unsigned int tokenId, [out] List<PermissionWithValueIdl> kernelPermIdlList); 88 [ipccode 68] void GetReqPermissionByName([in] unsigned int tokenId, [in] String permissionName, [out] String value); 89 [ipccode 80] void VerifyAccessToken([in] unsigned int tokenID, [in] List<String> permissionList, [out] List<int> permStateList); 90 [ipccode 81] void GetSelfPermissionStatus([in] String permissionName, [out] int status); 91 [ipccode 101, macrodef SECURITY_COMPONENT_ENHANCE_ENABLE, oneway] void RegisterSecCompEnhance([in] SecCompEnhanceDataParcel enhanceParcel); 92 [ipccode 102, macrodef SECURITY_COMPONENT_ENHANCE_ENABLE] void UpdateSecCompEnhance([in] int pid, [in] unsigned int seqNum); 93 [ipccode 103, macrodef SECURITY_COMPONENT_ENHANCE_ENABLE] void GetSecCompEnhance([in] int pid, [out] SecCompEnhanceDataParcel enhanceParcel); 94 [ipccode 104] void IsToastShownNeeded([in] int pid, [out] boolean needToShow); 95 [ipccode 105] void SetPermissionStatusWithPolicy([in] unsigned int tokenID, [in] List<String> permissionList, [in] int status, [in] unsigned int flag); 96} 97