/* * Copyright (C) 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.app.admin; import static android.app.admin.flags.Flags.FLAG_POLICY_ENGINE_MIGRATION_V2_ENABLED; import static android.app.admin.flags.Flags.FLAG_SECURITY_LOG_V2_ENABLED; import android.annotation.FlaggedApi; import android.annotation.NonNull; import android.annotation.SystemApi; import android.annotation.TestApi; import android.os.UserManager; import java.util.Objects; /** * Class containing identifiers for policy APIs in {@link DevicePolicyManager}, for example they * will be passed in {@link PolicyUpdateReceiver#onPolicySetResult} and * {@link PolicyUpdateReceiver#onPolicyChanged} to communicate updates of a certain policy back * to the admin. */ public final class DevicePolicyIdentifiers { private DevicePolicyIdentifiers() {} /** * String identifier for {@link DevicePolicyManager#setAutoTimeZoneEnabled}. */ public static final String AUTO_TIMEZONE_POLICY = "autoTimezone"; /** * String identifier for {@link DevicePolicyManager#setPermissionGrantState}. */ public static final String PERMISSION_GRANT_POLICY = "permissionGrant"; /** * String identifier for {@link DevicePolicyManager#setSecurityLoggingEnabled}. */ @FlaggedApi(FLAG_SECURITY_LOG_V2_ENABLED) public static final String SECURITY_LOGGING_POLICY = "securityLogging"; /** * String identifier for {@link DevicePolicyManager#setAuditLogEnabled}. * * @hide */ @FlaggedApi(FLAG_SECURITY_LOG_V2_ENABLED) @SystemApi public static final String AUDIT_LOGGING_POLICY = "auditLogging"; /** * String identifier for {@link DevicePolicyManager#setLockTaskPackages}. */ public static final String LOCK_TASK_POLICY = "lockTask"; /** * String identifier for {@link DevicePolicyManager#setUserControlDisabledPackages}. */ public static final String USER_CONTROL_DISABLED_PACKAGES_POLICY = "userControlDisabledPackages"; /** * String identifier for {@link DevicePolicyManager#addPersistentPreferredActivity}. */ public static final String PERSISTENT_PREFERRED_ACTIVITY_POLICY = "persistentPreferredActivity"; /** * String identifier for {@link DevicePolicyManager#setUninstallBlocked}. */ public static final String PACKAGE_UNINSTALL_BLOCKED_POLICY = "packageUninstallBlocked"; /** * String identifier for {@link DevicePolicyManager#setApplicationRestrictions}. */ public static final String APPLICATION_RESTRICTIONS_POLICY = "applicationRestrictions"; /** * String identifier for {@link DevicePolicyManager#setResetPasswordToken}. */ public static final String RESET_PASSWORD_TOKEN_POLICY = "resetPasswordToken"; /** * String identifier for {@link DevicePolicyManager#setAccountManagementDisabled}. */ public static final String ACCOUNT_MANAGEMENT_DISABLED_POLICY = "accountManagementDisabled"; /** * String identifier for {@link DevicePolicyManager#setApplicationHidden}. */ public static final String APPLICATION_HIDDEN_POLICY = "applicationHidden"; /** * String identifier for {@link DevicePolicyManager#setCameraDisabled}. */ public static final String CAMERA_DISABLED_POLICY = "cameraDisabled"; /** * String identifier for {@link DevicePolicyManager#setStatusBarDisabled}. */ public static final String STATUS_BAR_DISABLED_POLICY = "statusBarDisabled"; /** * String identifier for {@link DevicePolicyManager#setPackagesSuspended}. */ public static final String PACKAGES_SUSPENDED_POLICY = "packagesSuspended"; /** * String identifier for {@link DevicePolicyManager#setKeyguardDisabledFeatures}. */ public static final String KEYGUARD_DISABLED_FEATURES_POLICY = "keyguardDisabledFeatures"; /** * String identifier for {@link DevicePolicyManager#setAutoTimeEnabled}. */ public static final String AUTO_TIME_POLICY = "autoTime"; /** * String identifier for {@link DevicePolicyManager#setBackupServiceEnabled}. */ public static final String BACKUP_SERVICE_POLICY = "backupService"; /** * String identifier for {@link DevicePolicyManager#setPermittedInputMethods}. * * @hide */ @TestApi public static final String PERMITTED_INPUT_METHODS_POLICY = "permittedInputMethods"; /** * String identifier for {@link DevicePolicyManager#setPersonalAppsSuspended}. * * @hide */ @TestApi public static final String PERSONAL_APPS_SUSPENDED_POLICY = "personalAppsSuspended"; /** * String identifier for {@link DevicePolicyManager#setScreenCaptureDisabled}. * * @hide */ @TestApi public static final String SCREEN_CAPTURE_DISABLED_POLICY = "screenCaptureDisabled"; /** * String identifier for {@link DevicePolicyManager#setTrustAgentConfiguration}. * * @hide */ public static final String TRUST_AGENT_CONFIGURATION_POLICY = "trustAgentConfiguration"; /** * String identifier for {@link DevicePolicyManager#addCrossProfileIntentFilter}. * * @hide */ public static final String CROSS_PROFILE_INTENT_FILTER_POLICY = "crossProfileIntentFilter"; /** * String identifier for {@link DevicePolicyManager#addCrossProfileWidgetProvider}. * * @hide */ public static final String CROSS_PROFILE_WIDGET_PROVIDER_POLICY = "crossProfileWidgetProvider"; /** * String identifier for {@link DevicePolicyManager#setContentProtectionPolicy}. */ @FlaggedApi(android.view.contentprotection.flags.Flags.FLAG_MANAGE_DEVICE_POLICY_ENABLED) public static final String CONTENT_PROTECTION_POLICY = "contentProtection"; /** * String identifier for {@link DevicePolicyManager#setUsbDataSignalingEnabled}. */ @FlaggedApi(FLAG_POLICY_ENGINE_MIGRATION_V2_ENABLED) public static final String USB_DATA_SIGNALING_POLICY = "usbDataSignaling"; /** * String identifier for {@link DevicePolicyManager#setRequiredPasswordComplexity}. */ @FlaggedApi(FLAG_POLICY_ENGINE_MIGRATION_V2_ENABLED) public static final String PASSWORD_COMPLEXITY_POLICY = "passwordComplexity"; /** * @hide */ public static final String USER_RESTRICTION_PREFIX = "userRestriction_"; /** * Returns a string identifier for the provided user restrictions, see * {@link DevicePolicyManager#addUserRestriction} and {@link UserManager} for the list of * available restrictions. */ @NonNull public static String getIdentifierForUserRestriction( @UserManager.UserRestrictionKey @NonNull String restriction) { Objects.requireNonNull(restriction); return USER_RESTRICTION_PREFIX + restriction; } }