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 static android.app.admin.flags.Flags.FLAG_POLICY_ENGINE_MIGRATION_V2_ENABLED; 20 import static android.app.admin.flags.Flags.FLAG_SECURITY_LOG_V2_ENABLED; 21 22 import android.annotation.FlaggedApi; 23 import android.annotation.NonNull; 24 import android.annotation.SystemApi; 25 import android.annotation.TestApi; 26 import android.os.UserManager; 27 28 import java.util.Objects; 29 30 /** 31 * Class containing identifiers for policy APIs in {@link DevicePolicyManager}, for example they 32 * will be passed in {@link PolicyUpdateReceiver#onPolicySetResult} and 33 * {@link PolicyUpdateReceiver#onPolicyChanged} to communicate updates of a certain policy back 34 * to the admin. 35 */ 36 public final class DevicePolicyIdentifiers { 37 DevicePolicyIdentifiers()38 private DevicePolicyIdentifiers() {} 39 40 /** 41 * String identifier for {@link DevicePolicyManager#setAutoTimeZoneEnabled}. 42 */ 43 public static final String AUTO_TIMEZONE_POLICY = "autoTimezone"; 44 45 /** 46 * String identifier for {@link DevicePolicyManager#setPermissionGrantState}. 47 */ 48 public static final String PERMISSION_GRANT_POLICY = "permissionGrant"; 49 50 /** 51 * String identifier for {@link DevicePolicyManager#setSecurityLoggingEnabled}. 52 */ 53 @FlaggedApi(FLAG_SECURITY_LOG_V2_ENABLED) 54 public static final String SECURITY_LOGGING_POLICY = "securityLogging"; 55 56 /** 57 * String identifier for {@link DevicePolicyManager#setAuditLogEnabled}. 58 * 59 * @hide 60 */ 61 @FlaggedApi(FLAG_SECURITY_LOG_V2_ENABLED) 62 @SystemApi 63 public static final String AUDIT_LOGGING_POLICY = "auditLogging"; 64 65 /** 66 * String identifier for {@link DevicePolicyManager#setLockTaskPackages}. 67 */ 68 public static final String LOCK_TASK_POLICY = "lockTask"; 69 70 /** 71 * String identifier for {@link DevicePolicyManager#setUserControlDisabledPackages}. 72 */ 73 public static final String USER_CONTROL_DISABLED_PACKAGES_POLICY = 74 "userControlDisabledPackages"; 75 76 /** 77 * String identifier for {@link DevicePolicyManager#addPersistentPreferredActivity}. 78 */ 79 public static final String PERSISTENT_PREFERRED_ACTIVITY_POLICY = 80 "persistentPreferredActivity"; 81 82 /** 83 * String identifier for {@link DevicePolicyManager#setUninstallBlocked}. 84 */ 85 public static final String PACKAGE_UNINSTALL_BLOCKED_POLICY = "packageUninstallBlocked"; 86 87 /** 88 * String identifier for {@link DevicePolicyManager#setApplicationRestrictions}. 89 */ 90 public static final String APPLICATION_RESTRICTIONS_POLICY = "applicationRestrictions"; 91 92 /** 93 * String identifier for {@link DevicePolicyManager#setResetPasswordToken}. 94 */ 95 public static final String RESET_PASSWORD_TOKEN_POLICY = "resetPasswordToken"; 96 97 /** 98 * String identifier for {@link DevicePolicyManager#setAccountManagementDisabled}. 99 */ 100 public static final String ACCOUNT_MANAGEMENT_DISABLED_POLICY = "accountManagementDisabled"; 101 102 /** 103 * String identifier for {@link DevicePolicyManager#setApplicationHidden}. 104 */ 105 public static final String APPLICATION_HIDDEN_POLICY = "applicationHidden"; 106 107 /** 108 * String identifier for {@link DevicePolicyManager#setCameraDisabled}. 109 */ 110 public static final String CAMERA_DISABLED_POLICY = "cameraDisabled"; 111 112 /** 113 * String identifier for {@link DevicePolicyManager#setStatusBarDisabled}. 114 */ 115 public static final String STATUS_BAR_DISABLED_POLICY = "statusBarDisabled"; 116 117 /** 118 * String identifier for {@link DevicePolicyManager#setPackagesSuspended}. 119 */ 120 public static final String PACKAGES_SUSPENDED_POLICY = "packagesSuspended"; 121 122 /** 123 * String identifier for {@link DevicePolicyManager#setKeyguardDisabledFeatures}. 124 */ 125 public static final String KEYGUARD_DISABLED_FEATURES_POLICY = "keyguardDisabledFeatures"; 126 127 /** 128 * String identifier for {@link DevicePolicyManager#setAutoTimeEnabled}. 129 */ 130 public static final String AUTO_TIME_POLICY = "autoTime"; 131 132 /** 133 * String identifier for {@link DevicePolicyManager#setBackupServiceEnabled}. 134 */ 135 public static final String BACKUP_SERVICE_POLICY = "backupService"; 136 137 /** 138 * String identifier for {@link DevicePolicyManager#setPermittedInputMethods}. 139 * 140 * @hide 141 */ 142 @TestApi 143 public static final String PERMITTED_INPUT_METHODS_POLICY = "permittedInputMethods"; 144 145 /** 146 * String identifier for {@link DevicePolicyManager#setPersonalAppsSuspended}. 147 * 148 * @hide 149 */ 150 @TestApi 151 public static final String PERSONAL_APPS_SUSPENDED_POLICY = "personalAppsSuspended"; 152 153 /** 154 * String identifier for {@link DevicePolicyManager#setScreenCaptureDisabled}. 155 * 156 * @hide 157 */ 158 @TestApi 159 public static final String SCREEN_CAPTURE_DISABLED_POLICY = "screenCaptureDisabled"; 160 161 /** 162 * String identifier for {@link DevicePolicyManager#setTrustAgentConfiguration}. 163 * 164 * @hide 165 */ 166 public static final String TRUST_AGENT_CONFIGURATION_POLICY = "trustAgentConfiguration"; 167 168 /** 169 * String identifier for {@link DevicePolicyManager#addCrossProfileIntentFilter}. 170 * 171 * @hide 172 */ 173 public static final String CROSS_PROFILE_INTENT_FILTER_POLICY = "crossProfileIntentFilter"; 174 175 /** 176 * String identifier for {@link DevicePolicyManager#addCrossProfileWidgetProvider}. 177 * 178 * @hide 179 */ 180 public static final String CROSS_PROFILE_WIDGET_PROVIDER_POLICY = "crossProfileWidgetProvider"; 181 182 /** 183 * String identifier for {@link DevicePolicyManager#setContentProtectionPolicy}. 184 */ 185 @FlaggedApi(android.view.contentprotection.flags.Flags.FLAG_MANAGE_DEVICE_POLICY_ENABLED) 186 public static final String CONTENT_PROTECTION_POLICY = "contentProtection"; 187 188 /** 189 * String identifier for {@link DevicePolicyManager#setUsbDataSignalingEnabled}. 190 */ 191 @FlaggedApi(FLAG_POLICY_ENGINE_MIGRATION_V2_ENABLED) 192 public static final String USB_DATA_SIGNALING_POLICY = "usbDataSignaling"; 193 194 /** 195 * String identifier for {@link DevicePolicyManager#setRequiredPasswordComplexity}. 196 */ 197 @FlaggedApi(FLAG_POLICY_ENGINE_MIGRATION_V2_ENABLED) 198 public static final String PASSWORD_COMPLEXITY_POLICY = "passwordComplexity"; 199 200 /** 201 * @hide 202 */ 203 public static final String USER_RESTRICTION_PREFIX = "userRestriction_"; 204 205 /** 206 * Returns a string identifier for the provided user restrictions, see 207 * {@link DevicePolicyManager#addUserRestriction} and {@link UserManager} for the list of 208 * available restrictions. 209 */ 210 @NonNull getIdentifierForUserRestriction( @serManager.UserRestrictionKey @onNull String restriction)211 public static String getIdentifierForUserRestriction( 212 @UserManager.UserRestrictionKey @NonNull String restriction) { 213 Objects.requireNonNull(restriction); 214 return USER_RESTRICTION_PREFIX + restriction; 215 } 216 } 217