• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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