1 /* 2 * Copyright (C) 2023 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.app.admin; 18 19 import android.annotation.FlaggedApi; 20 import android.annotation.NonNull; 21 import android.annotation.SystemApi; 22 import android.annotation.TestApi; 23 import android.app.appfunctions.flags.Flags; 24 import android.os.UserManager; 25 26 import java.util.Objects; 27 28 /** 29 * Class containing identifiers for policy APIs in {@link DevicePolicyManager}, for example they 30 * will be passed in {@link PolicyUpdateReceiver#onPolicySetResult} and 31 * {@link PolicyUpdateReceiver#onPolicyChanged} to communicate updates of a certain policy back 32 * to the admin. 33 */ 34 public final class DevicePolicyIdentifiers { 35 DevicePolicyIdentifiers()36 private DevicePolicyIdentifiers() {} 37 38 /** 39 * String identifier for {@link DevicePolicyManager#setAutoTimeZoneEnabled}. 40 */ 41 public static final String AUTO_TIMEZONE_POLICY = "autoTimezone"; 42 43 /** 44 * String identifier for {@link DevicePolicyManager#setPermissionGrantState}. 45 */ 46 public static final String PERMISSION_GRANT_POLICY = "permissionGrant"; 47 48 /** 49 * String identifier for {@link DevicePolicyManager#setSecurityLoggingEnabled}. 50 */ 51 public static final String SECURITY_LOGGING_POLICY = "securityLogging"; 52 53 /** 54 * String identifier for {@link DevicePolicyManager#setAuditLogEnabled}. 55 * 56 * @hide 57 */ 58 @SystemApi 59 public static final String AUDIT_LOGGING_POLICY = "auditLogging"; 60 61 /** 62 * String identifier for {@link DevicePolicyManager#setLockTaskPackages}. 63 */ 64 public static final String LOCK_TASK_POLICY = "lockTask"; 65 66 /** 67 * String identifier for {@link DevicePolicyManager#setUserControlDisabledPackages}. 68 */ 69 public static final String USER_CONTROL_DISABLED_PACKAGES_POLICY = 70 "userControlDisabledPackages"; 71 72 /** 73 * String identifier for {@link DevicePolicyManager#addPersistentPreferredActivity}. 74 */ 75 public static final String PERSISTENT_PREFERRED_ACTIVITY_POLICY = 76 "persistentPreferredActivity"; 77 78 /** 79 * String identifier for {@link DevicePolicyManager#setUninstallBlocked}. 80 */ 81 public static final String PACKAGE_UNINSTALL_BLOCKED_POLICY = "packageUninstallBlocked"; 82 83 /** 84 * String identifier for {@link DevicePolicyManager#setApplicationRestrictions}. 85 */ 86 public static final String APPLICATION_RESTRICTIONS_POLICY = "applicationRestrictions"; 87 88 /** 89 * String identifier for {@link DevicePolicyManager#setResetPasswordToken}. 90 */ 91 public static final String RESET_PASSWORD_TOKEN_POLICY = "resetPasswordToken"; 92 93 /** 94 * String identifier for {@link DevicePolicyManager#setAccountManagementDisabled}. 95 */ 96 public static final String ACCOUNT_MANAGEMENT_DISABLED_POLICY = "accountManagementDisabled"; 97 98 /** 99 * String identifier for {@link DevicePolicyManager#setApplicationHidden}. 100 */ 101 public static final String APPLICATION_HIDDEN_POLICY = "applicationHidden"; 102 103 /** 104 * String identifier for {@link DevicePolicyManager#setCameraDisabled}. 105 */ 106 public static final String CAMERA_DISABLED_POLICY = "cameraDisabled"; 107 108 /** 109 * String identifier for {@link DevicePolicyManager#setStatusBarDisabled}. 110 */ 111 public static final String STATUS_BAR_DISABLED_POLICY = "statusBarDisabled"; 112 113 /** 114 * String identifier for {@link DevicePolicyManager#setPackagesSuspended}. 115 */ 116 public static final String PACKAGES_SUSPENDED_POLICY = "packagesSuspended"; 117 118 /** 119 * String identifier for {@link DevicePolicyManager#setKeyguardDisabledFeatures}. 120 */ 121 public static final String KEYGUARD_DISABLED_FEATURES_POLICY = "keyguardDisabledFeatures"; 122 123 /** 124 * String identifier for {@link DevicePolicyManager#setAutoTimeEnabled}. 125 */ 126 public static final String AUTO_TIME_POLICY = "autoTime"; 127 128 /** 129 * String identifier for {@link DevicePolicyManager#setBackupServiceEnabled}. 130 */ 131 public static final String BACKUP_SERVICE_POLICY = "backupService"; 132 133 /** 134 * String identifier for {@link DevicePolicyManager#setPermittedInputMethods}. 135 * 136 * @hide 137 */ 138 @TestApi 139 public static final String PERMITTED_INPUT_METHODS_POLICY = "permittedInputMethods"; 140 141 /** 142 * String identifier for {@link DevicePolicyManager#setPersonalAppsSuspended}. 143 * 144 * @hide 145 */ 146 @TestApi 147 public static final String PERSONAL_APPS_SUSPENDED_POLICY = "personalAppsSuspended"; 148 149 /** 150 * String identifier for {@link DevicePolicyManager#setScreenCaptureDisabled}. 151 * 152 * @hide 153 */ 154 @TestApi 155 public static final String SCREEN_CAPTURE_DISABLED_POLICY = "screenCaptureDisabled"; 156 157 /** 158 * String identifier for {@link DevicePolicyManager#setTrustAgentConfiguration}. 159 * 160 * @hide 161 */ 162 public static final String TRUST_AGENT_CONFIGURATION_POLICY = "trustAgentConfiguration"; 163 164 /** 165 * String identifier for {@link DevicePolicyManager#addCrossProfileIntentFilter}. 166 * 167 * @hide 168 */ 169 public static final String CROSS_PROFILE_INTENT_FILTER_POLICY = "crossProfileIntentFilter"; 170 171 /** 172 * String identifier for {@link DevicePolicyManager#addCrossProfileWidgetProvider}. 173 * 174 * @hide 175 */ 176 public static final String CROSS_PROFILE_WIDGET_PROVIDER_POLICY = "crossProfileWidgetProvider"; 177 178 /** 179 * String identifier for {@link DevicePolicyManager#setContentProtectionPolicy}. 180 */ 181 @FlaggedApi(android.view.contentprotection.flags.Flags.FLAG_MANAGE_DEVICE_POLICY_ENABLED) 182 public static final String CONTENT_PROTECTION_POLICY = "contentProtection"; 183 184 /** 185 * String identifier for {@link DevicePolicyManager#setAppFunctionsPolicy(int)}. 186 */ 187 @FlaggedApi(Flags.FLAG_ENABLE_APP_FUNCTION_MANAGER) 188 public static final String APP_FUNCTIONS_POLICY = "appFunctions"; 189 190 /** 191 * String identifier for {@link DevicePolicyManager#setUsbDataSignalingEnabled}. 192 */ 193 public static final String USB_DATA_SIGNALING_POLICY = "usbDataSignaling"; 194 195 /** 196 * String identifier for {@link DevicePolicyManager#setRequiredPasswordComplexity}. 197 */ 198 public static final String PASSWORD_COMPLEXITY_POLICY = "passwordComplexity"; 199 200 /** 201 * String identifier for {@link DevicePolicyManager#setMtePolicy(int)}. 202 */ 203 @FlaggedApi(android.app.admin.flags.Flags.FLAG_SET_MTE_POLICY_COEXISTENCE) 204 public static final String MEMORY_TAGGING_POLICY = "memoryTagging"; 205 206 /** 207 * @hide 208 */ 209 public static final String USER_RESTRICTION_PREFIX = "userRestriction_"; 210 211 /** 212 * Returns a string identifier for the provided user restrictions, see 213 * {@link DevicePolicyManager#addUserRestriction} and {@link UserManager} for the list of 214 * available restrictions. 215 */ 216 @NonNull getIdentifierForUserRestriction( @serManager.UserRestrictionKey @onNull String restriction)217 public static String getIdentifierForUserRestriction( 218 @UserManager.UserRestrictionKey @NonNull String restriction) { 219 Objects.requireNonNull(restriction); 220 return USER_RESTRICTION_PREFIX + restriction; 221 } 222 } 223