blob: a5ca4cf12ffac48a216eac48e5858648148b7ebc [file] [log] [blame]
Dianne Hackbornd6847842010-01-12 18:14:19 -08001/*
2**
3** Copyright 2010, The Android Open Source Project
4**
5** Licensed under the Apache License, Version 2.0 (the "License");
6** you may not use this file except in compliance with the License.
7** You may obtain a copy of the License at
8**
9** http://www.apache.org/licenses/LICENSE-2.0
10**
11** Unless required by applicable law or agreed to in writing, software
12** distributed under the License is distributed on an "AS IS" BASIS,
13** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14** See the License for the specific language governing permissions and
15** limitations under the License.
16*/
17
Dianne Hackborn87bba1e2010-02-26 17:25:54 -080018package android.app.admin;
Dianne Hackbornd6847842010-01-12 18:14:19 -080019
Michal Karpinskif77ee4f2016-10-12 16:40:06 +010020import android.app.admin.NetworkEvent;
Tony Mak46aabe52016-11-14 12:53:06 +000021import android.app.IApplicationThread;
22import android.app.IServiceConnection;
Pavel Grafovd65799e2016-12-02 11:21:45 +000023import android.app.admin.SystemUpdateInfo;
Rubin Xud86d58c2015-05-05 16:57:37 +010024import android.app.admin.SystemUpdatePolicy;
Andrew Scull5f9e6f32016-08-02 14:22:17 +010025import android.app.admin.PasswordMetrics;
Dianne Hackbornd6847842010-01-12 18:14:19 -080026import android.content.ComponentName;
Adam Connors010cfd42014-04-16 12:48:13 +010027import android.content.Intent;
Sander Alewijnsef475ca32014-02-17 15:13:58 +000028import android.content.IntentFilter;
Benjamin Franza77e3572017-06-23 12:01:44 +010029import android.content.pm.IPackageDataObserver;
Rubin Xuc3cd05f2016-01-11 12:11:35 +000030import android.content.pm.ParceledListSlice;
Bartosz Fabianowski05dc9f72017-02-22 23:41:14 +010031import android.content.pm.StringParceledListSlice;
Julia Reynoldsfca04ca2015-02-17 13:39:12 -050032import android.graphics.Bitmap;
Jason Monk03bc9912014-05-13 09:44:57 -040033import android.net.ProxyInfo;
Robin Lee39087b12015-05-05 15:57:17 +010034import android.net.Uri;
Robin Lee66e5d962014-04-09 16:44:21 +010035import android.os.Bundle;
Jim Millere303bf42014-08-26 17:12:29 -070036import android.os.PersistableBundle;
Dianne Hackborn8ea138c2010-01-26 18:01:04 -080037import android.os.RemoteCallback;
Julia Reynolds1e958392014-05-16 14:25:21 -040038import android.os.UserHandle;
Eran Messeria1730642017-12-11 17:48:47 +000039import android.security.keymaster.KeymasterCertificateChain;
Eran Messeri852c8f12017-11-15 05:55:52 +000040import android.security.keystore.ParcelableKeyGenParameterSpec;
yuemingwe3d9c092018-01-11 12:11:44 +000041import android.telephony.data.ApnSetting;
Andrew Scull5f9e6f32016-08-02 14:22:17 +010042
Kenny Guyfa80a4f2014-08-20 19:40:59 +010043import java.util.List;
Dianne Hackbornd6847842010-01-12 18:14:19 -080044
45/**
46 * Internal IPC interface to the device policy service.
47 * {@hide}
48 */
49interface IDevicePolicyManager {
Clara Bayarri3e826ef2015-12-14 17:51:22 +000050 void setPasswordQuality(in ComponentName who, int quality, boolean parent);
51 int getPasswordQuality(in ComponentName who, int userHandle, boolean parent);
Konstantin Lopyreva15dcfa2010-05-24 17:10:56 -070052
Esteban Talavera62399912016-01-11 15:37:55 +000053 void setPasswordMinimumLength(in ComponentName who, int length, boolean parent);
54 int getPasswordMinimumLength(in ComponentName who, int userHandle, boolean parent);
Konstantin Lopyreva15dcfa2010-05-24 17:10:56 -070055
Esteban Talavera62399912016-01-11 15:37:55 +000056 void setPasswordMinimumUpperCase(in ComponentName who, int length, boolean parent);
57 int getPasswordMinimumUpperCase(in ComponentName who, int userHandle, boolean parent);
Konstantin Lopyreva15dcfa2010-05-24 17:10:56 -070058
Esteban Talavera62399912016-01-11 15:37:55 +000059 void setPasswordMinimumLowerCase(in ComponentName who, int length, boolean parent);
60 int getPasswordMinimumLowerCase(in ComponentName who, int userHandle, boolean parent);
Konstantin Lopyreva15dcfa2010-05-24 17:10:56 -070061
Esteban Talavera62399912016-01-11 15:37:55 +000062 void setPasswordMinimumLetters(in ComponentName who, int length, boolean parent);
63 int getPasswordMinimumLetters(in ComponentName who, int userHandle, boolean parent);
Konstantin Lopyreva15dcfa2010-05-24 17:10:56 -070064
Esteban Talavera62399912016-01-11 15:37:55 +000065 void setPasswordMinimumNumeric(in ComponentName who, int length, boolean parent);
66 int getPasswordMinimumNumeric(in ComponentName who, int userHandle, boolean parent);
Konstantin Lopyreva15dcfa2010-05-24 17:10:56 -070067
Esteban Talavera62399912016-01-11 15:37:55 +000068 void setPasswordMinimumSymbols(in ComponentName who, int length, boolean parent);
69 int getPasswordMinimumSymbols(in ComponentName who, int userHandle, boolean parent);
Konstantin Lopyrevc8577402010-06-04 17:15:02 -070070
Esteban Talavera62399912016-01-11 15:37:55 +000071 void setPasswordMinimumNonLetter(in ComponentName who, int length, boolean parent);
72 int getPasswordMinimumNonLetter(in ComponentName who, int userHandle, boolean parent);
Jim Millerb8ec4702012-08-31 17:19:10 -070073
Esteban Talavera62399912016-01-11 15:37:55 +000074 void setPasswordHistoryLength(in ComponentName who, int length, boolean parent);
75 int getPasswordHistoryLength(in ComponentName who, int userHandle, boolean parent);
Konstantin Lopyrev32558232010-05-20 16:18:05 -070076
Esteban Talavera62399912016-01-11 15:37:55 +000077 void setPasswordExpirationTimeout(in ComponentName who, long expiration, boolean parent);
78 long getPasswordExpirationTimeout(in ComponentName who, int userHandle, boolean parent);
Jim Millera4e28d12010-11-08 16:15:47 -080079
Esteban Talavera62399912016-01-11 15:37:55 +000080 long getPasswordExpiration(in ComponentName who, int userHandle, boolean parent);
Jim Millera4e28d12010-11-08 16:15:47 -080081
Alexandru-Andrei Rotaru7f31bb02017-09-07 16:29:48 +010082 boolean setPasswordBlacklist(in ComponentName who, String name, in List<String> blacklist, boolean parent);
83 String getPasswordBlacklistName(in ComponentName who, int userId, boolean parent);
84 boolean isPasswordBlacklisted(int userId, String password);
85
Clara Bayarri3e826ef2015-12-14 17:51:22 +000086 boolean isActivePasswordSufficient(int userHandle, boolean parent);
Clara Bayarrid7693912016-01-22 17:26:31 +000087 boolean isProfileActivePasswordSufficientForParent(int userHandle);
Pavel Grafovc4f87e92017-10-26 16:34:25 +010088 boolean isUsingUnifiedPassword(in ComponentName admin);
Esteban Talavera62399912016-01-11 15:37:55 +000089 int getCurrentFailedPasswordAttempts(int userHandle, boolean parent);
90 int getProfileWithMinimumFailedPasswordsForWipe(int userHandle, boolean parent);
Jim Millerb8ec4702012-08-31 17:19:10 -070091
Esteban Talavera62399912016-01-11 15:37:55 +000092 void setMaximumFailedPasswordsForWipe(in ComponentName admin, int num, boolean parent);
93 int getMaximumFailedPasswordsForWipe(in ComponentName admin, int userHandle, boolean parent);
Jim Millerb8ec4702012-08-31 17:19:10 -070094
Fyodor Kupolovbdc58c62015-01-29 13:24:03 -080095 boolean resetPassword(String password, int flags);
Jim Millerb8ec4702012-08-31 17:19:10 -070096
Esteban Talavera62399912016-01-11 15:37:55 +000097 void setMaximumTimeToLock(in ComponentName who, long timeMs, boolean parent);
98 long getMaximumTimeToLock(in ComponentName who, int userHandle, boolean parent);
Jim Millerb8ec4702012-08-31 17:19:10 -070099
Michal Karpinski8f010dd2016-06-21 15:05:53 +0100100 void setRequiredStrongAuthTimeout(in ComponentName who, long timeMs, boolean parent);
101 long getRequiredStrongAuthTimeout(in ComponentName who, int userId, boolean parent);
102
Andrew Scull85a63bc2016-10-24 13:47:47 +0100103 void lockNow(int flags, boolean parent);
Jim Millerb8ec4702012-08-31 17:19:10 -0700104
yuemingwf7f67dc2017-09-08 14:23:53 +0100105 void wipeDataWithReason(int flags, String wipeReasonForUser);
Oscar Montemayor69238c62010-08-03 10:51:06 -0700106
Fyodor Kupolovbdc58c62015-01-29 13:24:03 -0800107 ComponentName setGlobalProxy(in ComponentName admin, String proxySpec, String exclusionList);
Amith Yamasani599dd7c2012-09-14 23:20:08 -0700108 ComponentName getGlobalProxyAdmin(int userHandle);
Jason Monk03bc9912014-05-13 09:44:57 -0400109 void setRecommendedGlobalProxy(in ComponentName admin, in ProxyInfo proxyInfo);
Andy Stadler7b0f8f02011-01-12 14:59:52 -0800110
Fyodor Kupolovbdc58c62015-01-29 13:24:03 -0800111 int setStorageEncryption(in ComponentName who, boolean encrypt);
Amith Yamasani599dd7c2012-09-14 23:20:08 -0700112 boolean getStorageEncryption(in ComponentName who, int userHandle);
Makoto Onukid4c9e542016-02-25 18:17:30 -0800113 int getStorageEncryptionStatus(in String callerPackage, int userHandle);
Andy Stadler7b0f8f02011-01-12 14:59:52 -0800114
Michal Karpinski3fc437e2015-12-15 10:09:00 +0000115 boolean requestBugreport(in ComponentName who);
116
Fyodor Kupolovbdc58c62015-01-29 13:24:03 -0800117 void setCameraDisabled(in ComponentName who, boolean disabled);
Amith Yamasani599dd7c2012-09-14 23:20:08 -0700118 boolean getCameraDisabled(in ComponentName who, int userHandle);
Ben Komalo2447edd2011-05-09 16:05:33 -0700119
Fyodor Kupolovbdc58c62015-01-29 13:24:03 -0800120 void setScreenCaptureDisabled(in ComponentName who, boolean disabled);
Sander Alewijnsed2a1eec2014-07-09 12:57:05 +0100121 boolean getScreenCaptureDisabled(in ComponentName who, int userHandle);
122
Esteban Talavera62399912016-01-11 15:37:55 +0000123 void setKeyguardDisabledFeatures(in ComponentName who, int which, boolean parent);
124 int getKeyguardDisabledFeatures(in ComponentName who, int userHandle, boolean parent);
Jim Millerb8ec4702012-08-31 17:19:10 -0700125
Amith Yamasani599dd7c2012-09-14 23:20:08 -0700126 void setActiveAdmin(in ComponentName policyReceiver, boolean refreshing, int userHandle);
127 boolean isAdminActive(in ComponentName policyReceiver, int userHandle);
128 List<ComponentName> getActiveAdmins(int userHandle);
129 boolean packageHasActiveAdmins(String packageName, int userHandle);
130 void getRemoveWarning(in ComponentName policyReceiver, in RemoteCallback result, int userHandle);
131 void removeActiveAdmin(in ComponentName policyReceiver, int userHandle);
Kenny Guy38dcca52016-04-19 13:09:18 +0100132 void forceRemoveActiveAdmin(in ComponentName policyReceiver, int userHandle);
Amith Yamasani599dd7c2012-09-14 23:20:08 -0700133 boolean hasGrantedPolicy(in ComponentName policyReceiver, int usesPolicy, int userHandle);
Jim Millerb8ec4702012-08-31 17:19:10 -0700134
Andrew Scull5f9e6f32016-08-02 14:22:17 +0100135 void setActivePasswordState(in PasswordMetrics metrics, int userHandle);
Andrew Scull5daf2732016-11-14 15:02:45 +0000136 void reportPasswordChanged(int userId);
Amith Yamasani599dd7c2012-09-14 23:20:08 -0700137 void reportFailedPasswordAttempt(int userHandle);
138 void reportSuccessfulPasswordAttempt(int userHandle);
Michal Karpinskied5c8f02016-02-09 15:43:41 +0000139 void reportFailedFingerprintAttempt(int userHandle);
140 void reportSuccessfulFingerprintAttempt(int userHandle);
141 void reportKeyguardDismissed(int userHandle);
142 void reportKeyguardSecured(int userHandle);
Michal Karpinski31502d32016-01-25 16:43:07 +0000143
Makoto Onukia52562c2015-10-01 16:12:31 -0700144 boolean setDeviceOwner(in ComponentName who, String ownerName, int userId);
Makoto Onukic8a5a552015-11-19 14:29:12 -0800145 ComponentName getDeviceOwnerComponent(boolean callingUserOnly);
Bartosz Fabianowskidd7f8da2016-11-30 11:09:22 +0100146 boolean hasDeviceOwner();
Geoffrey Borggaard334c7e32013-08-08 14:31:36 -0400147 String getDeviceOwnerName();
Jason Monkb0dced82014-06-06 14:36:20 -0400148 void clearDeviceOwner(String packageName);
Makoto Onukic8a5a552015-11-19 14:29:12 -0800149 int getDeviceOwnerUserId();
Maggie Benthallda51e682013-08-08 22:35:44 -0400150
Amith Yamasanibf3a9462014-07-28 14:26:42 -0700151 boolean setProfileOwner(in ComponentName who, String ownerName, int userHandle);
152 ComponentName getProfileOwner(int userHandle);
Adam Connors776c5552014-01-09 10:42:56 +0000153 String getProfileOwnerName(int userHandle);
Alexandra Gherghina512675b2014-04-02 11:23:54 +0100154 void setProfileEnabled(in ComponentName who);
Jessica Hummel1333ea12014-06-23 11:20:10 +0100155 void setProfileName(in ComponentName who, String profileName);
Amith Yamasanibf3a9462014-07-28 14:26:42 -0700156 void clearProfileOwner(in ComponentName who);
157 boolean hasUserSetupCompleted();
Adam Connors776c5552014-01-09 10:42:56 +0000158
Andrei Stingaceanu16187902016-03-21 15:44:45 +0000159 void setDeviceOwnerLockScreenInfo(in ComponentName who, CharSequence deviceOwnerInfo);
160 CharSequence getDeviceOwnerLockScreenInfo();
Andrei Stingaceanu6644cd92015-11-10 13:03:31 +0000161
Edman Anjos52088e42017-01-13 22:26:17 +0100162 String[] setPackagesSuspended(in ComponentName admin, in String callerPackage, in String[] packageNames, boolean suspended);
163 boolean isPackageSuspended(in ComponentName admin, in String callerPackage, String packageName);
Andrei Stingaceanu1e283912015-11-26 15:26:28 +0000164
Edman Anjosf9946772016-11-28 16:35:15 +0100165 boolean installCaCert(in ComponentName admin, String callerPackage, in byte[] certBuffer);
166 void uninstallCaCerts(in ComponentName admin, String callerPackage, in String[] aliases);
167 void enforceCanManageCaCerts(in ComponentName admin, in String callerPackage);
Robin Lee2f7e1e42016-03-21 10:50:01 +0000168 boolean approveCaCert(in String alias, int userHandle, boolean approval);
169 boolean isCaCertApproved(in String alias, int userHandle);
Sander Alewijnsef475ca32014-02-17 15:13:58 +0000170
Edman Anjosf9946772016-11-28 16:35:15 +0100171 boolean installKeyPair(in ComponentName who, in String callerPackage, in byte[] privKeyBuffer,
Eran Messeri19d19042017-11-20 12:48:52 +0000172 in byte[] certBuffer, in byte[] certChainBuffer, String alias, boolean requestAccess,
173 boolean isUserSelectable);
Edman Anjosf9946772016-11-28 16:35:15 +0100174 boolean removeKeyPair(in ComponentName who, in String callerPackage, String alias);
Eran Messeria1730642017-12-11 17:48:47 +0000175 boolean generateKeyPair(in ComponentName who, in String callerPackage, in String algorithm,
176 in ParcelableKeyGenParameterSpec keySpec,
Eran Messeri94d56762017-12-21 20:50:54 +0000177 in int idAttestationFlags, out KeymasterCertificateChain attestationChain);
Eran Messeriecf0f222017-12-11 12:32:13 +0000178 boolean setKeyPairCertificate(in ComponentName who, in String callerPackage, in String alias,
179 in byte[] certBuffer, in byte[] certChainBuffer, boolean isUserSelectable);
Robin Lee39087b12015-05-05 15:57:17 +0100180 void choosePrivateKeyAlias(int uid, in Uri uri, in String alias, IBinder aliasCallback);
Bernhard Bauer26408cc2014-09-08 14:07:31 +0100181
Edman Anjosf9946772016-11-28 16:35:15 +0100182 void setDelegatedScopes(in ComponentName who, in String delegatePackage, in List<String> scopes);
183 List<String> getDelegatedScopes(in ComponentName who, String delegatePackage);
184 List<String> getDelegatePackages(in ComponentName who, String scope);
185
Rubin Xuec32b562015-03-03 17:34:05 +0000186 void setCertInstallerPackage(in ComponentName who, String installerPackage);
187 String getCertInstallerPackage(in ComponentName who);
188
Robin Leedc679712016-05-03 13:23:03 +0100189 boolean setAlwaysOnVpnPackage(in ComponentName who, String vpnPackage, boolean lockdown);
Robin Lee244ce8e2016-01-05 18:03:46 +0000190 String getAlwaysOnVpnPackage(in ComponentName who);
191
Sander Alewijnsef475ca32014-02-17 15:13:58 +0000192 void addPersistentPreferredActivity(in ComponentName admin, in IntentFilter filter, in ComponentName activity);
193 void clearPackagePersistentPreferredActivities(in ComponentName admin, String packageName);
Robin Lee66e5d962014-04-09 16:44:21 +0100194
Edman Anjosf9946772016-11-28 16:35:15 +0100195 void setApplicationRestrictions(in ComponentName who, in String callerPackage, in String packageName, in Bundle settings);
196 Bundle getApplicationRestrictions(in ComponentName who, in String callerPackage, in String packageName);
Victor Changcd14c0a2016-03-16 19:10:15 +0000197 boolean setApplicationRestrictionsManagingPackage(in ComponentName admin, in String packageName);
Esteban Talaverabf60f722015-12-10 16:26:44 +0000198 String getApplicationRestrictionsManagingPackage(in ComponentName admin);
Edman Anjosf9946772016-11-28 16:35:15 +0100199 boolean isCallerApplicationRestrictionsManagingPackage(in String callerPackage);
Amith Yamasanibe465322014-04-24 13:45:17 -0700200
Amith Yamasanif20d6402014-05-24 15:34:37 -0700201 void setRestrictionsProvider(in ComponentName who, in ComponentName provider);
202 ComponentName getRestrictionsProvider(int userHandle);
203
Amith Yamasanibe465322014-04-24 13:45:17 -0700204 void setUserRestriction(in ComponentName who, in String key, boolean enable);
Sudheer Shanka549b9692016-03-30 17:12:07 -0700205 Bundle getUserRestrictions(in ComponentName who);
Nicolas Prevot81948992014-05-16 18:25:26 +0100206 void addCrossProfileIntentFilter(in ComponentName admin, in IntentFilter filter, int flags);
207 void clearCrossProfileIntentFilters(in ComponentName admin);
Adam Connors010cfd42014-04-16 12:48:13 +0100208
Kenny Guyfa80a4f2014-08-20 19:40:59 +0100209 boolean setPermittedAccessibilityServices(in ComponentName admin,in List packageList);
210 List getPermittedAccessibilityServices(in ComponentName admin);
211 List getPermittedAccessibilityServicesForUser(int userId);
Sudheer Shanka56925862016-01-28 19:43:59 +0000212 boolean isAccessibilityServicePermittedByAdmin(in ComponentName admin, String packageName, int userId);
Kenny Guyfa80a4f2014-08-20 19:40:59 +0100213
214 boolean setPermittedInputMethods(in ComponentName admin,in List packageList);
215 List getPermittedInputMethods(in ComponentName admin);
216 List getPermittedInputMethodsForCurrentUser();
Sudheer Shanka56925862016-01-28 19:43:59 +0000217 boolean isInputMethodPermittedByAdmin(in ComponentName admin, String packageName, int userId);
Kenny Guyfa80a4f2014-08-20 19:40:59 +0100218
Esteban Talavera7e4cbad2017-03-30 17:59:50 +0100219 boolean setPermittedCrossProfileNotificationListeners(in ComponentName admin, in List<String> packageList);
220 List<String> getPermittedCrossProfileNotificationListeners(in ComponentName admin);
221 boolean isNotificationListenerServicePermitted(in String packageName, int userId);
222
phweiss73145f42017-01-17 19:06:38 +0100223 Intent createAdminSupportIntent(in String restriction);
Edman Anjos52088e42017-01-13 22:26:17 +0100224 boolean setApplicationHidden(in ComponentName admin, in String callerPackage, in String packageName, boolean hidden);
225 boolean isApplicationHidden(in ComponentName admin, in String callerPackage, in String packageName);
Julia Reynolds966881e2014-05-14 12:23:08 -0400226
phweissa92e1212016-01-25 17:14:10 +0100227 UserHandle createAndManageUser(in ComponentName who, in String name, in ComponentName profileOwner, in PersistableBundle adminExtras, in int flags);
Julia Reynolds1e958392014-05-16 14:25:21 -0400228 boolean removeUser(in ComponentName who, in UserHandle userHandle);
Jason Monk582d9112014-07-09 19:57:08 -0400229 boolean switchUser(in ComponentName who, in UserHandle userHandle);
Alex Chaub6ef8692018-01-09 14:16:36 +0000230 boolean startUserInBackground(in ComponentName who, in UserHandle userHandle);
Alex Chauaf9bb8d2017-12-06 14:38:25 +0000231 boolean stopUser(in ComponentName who, in UserHandle userHandle);
232 boolean logoutUser(in ComponentName who);
233 List<UserHandle> getSecondaryUsers(in ComponentName who);
Julia Reynolds1e958392014-05-16 14:25:21 -0400234
Edman Anjos52088e42017-01-13 22:26:17 +0100235 void enableSystemApp(in ComponentName admin, in String callerPackage, in String packageName);
236 int enableSystemAppWithIntent(in ComponentName admin, in String callerPackage, in Intent intent);
Alex Chau5343fcb2017-12-05 16:49:19 +0000237 boolean installExistingPackage(in ComponentName admin, in String callerPackage, in String packageName);
Adam Connors655be2a2014-07-14 09:01:25 +0000238
Sander Alewijnse5c02db62014-05-07 10:46:57 +0100239 void setAccountManagementDisabled(in ComponentName who, in String accountType, in boolean disabled);
240 String[] getAccountTypesWithManagementDisabled();
Alexandra Gherghina999d3942014-07-03 11:40:08 +0100241 String[] getAccountTypesWithManagementDisabledAsUser(int userId);
justinzhang511e0d82014-03-24 16:09:24 -0400242
Jason Monk48aacba2014-08-13 16:29:08 -0400243 void setLockTaskPackages(in ComponentName who, in String[] packages);
244 String[] getLockTaskPackages(in ComponentName who);
Jason Monkd7b86212014-06-16 13:15:38 -0400245 boolean isLockTaskPermitted(in String pkg);
Julia Reynoldsda551652014-05-14 17:15:16 -0400246
Charles Hee078db72017-10-19 18:03:20 +0100247 void setLockTaskFeatures(in ComponentName who, int flags);
248 int getLockTaskFeatures(in ComponentName who);
249
Julia Reynoldsda551652014-05-14 17:15:16 -0400250 void setGlobalSetting(in ComponentName who, in String setting, in String value);
yuemingw0de748d2017-11-15 19:22:27 +0000251 void setSystemSetting(in ComponentName who, in String setting, in String value);
Julia Reynoldsda551652014-05-14 17:15:16 -0400252 void setSecureSetting(in ComponentName who, in String setting, in String value);
Julia Reynolds4a21b252014-06-04 11:11:43 -0400253
yuemingwe43cdf72017-10-12 16:52:11 +0100254 boolean setTime(in ComponentName who, long millis);
255 boolean setTimeZone(in ComponentName who, String timeZone);
256
Julia Reynolds4a21b252014-06-04 11:11:43 -0400257 void setMasterVolumeMuted(in ComponentName admin, boolean on);
258 boolean isMasterVolumeMuted(in ComponentName admin);
Jason Monk35c62a42014-06-17 10:24:47 -0400259
260 void notifyLockTaskModeChanged(boolean isEnabled, String pkg, int userId);
Kenny Guyc13053b2014-05-29 14:17:17 +0100261
Edman Anjosa5f2fb12016-12-19 11:25:54 -0800262 void setUninstallBlocked(in ComponentName admin, in String callerPackage, in String packageName, boolean uninstallBlocked);
Esteban Talavera729b2a62014-08-27 18:01:58 +0100263 boolean isUninstallBlocked(in ComponentName admin, in String packageName);
Adam Connors210fe212014-07-17 15:41:43 +0100264
265 void setCrossProfileCallerIdDisabled(in ComponentName who, boolean disabled);
266 boolean getCrossProfileCallerIdDisabled(in ComponentName who);
267 boolean getCrossProfileCallerIdDisabledForUser(int userId);
Victor Chang1060c6182016-01-04 20:16:23 +0000268 void setCrossProfileContactsSearchDisabled(in ComponentName who, boolean disabled);
269 boolean getCrossProfileContactsSearchDisabled(in ComponentName who);
270 boolean getCrossProfileContactsSearchDisabledForUser(int userId);
Victor Chang97bdacc2016-01-21 22:24:11 +0000271 void startManagedQuickContact(String lookupKey, long contactId, boolean isContactIdIgnored, long directoryId, in Intent originalIntent);
Jim Miller604e7552014-07-18 19:00:02 -0700272
Ricky Wai778ba132015-03-31 14:21:22 +0100273 void setBluetoothContactSharingDisabled(in ComponentName who, boolean disabled);
274 boolean getBluetoothContactSharingDisabled(in ComponentName who);
275 boolean getBluetoothContactSharingDisabledForUser(int userId);
276
Jim Millere303bf42014-08-26 17:12:29 -0700277 void setTrustAgentConfiguration(in ComponentName admin, in ComponentName agent,
Tony Mak089d8402016-04-05 17:42:55 +0100278 in PersistableBundle args, boolean parent);
Jim Millere303bf42014-08-26 17:12:29 -0700279 List<PersistableBundle> getTrustAgentConfiguration(in ComponentName admin,
Tony Mak089d8402016-04-05 17:42:55 +0100280 in ComponentName agent, int userId, boolean parent);
Jim Miller604e7552014-07-18 19:00:02 -0700281
Svetoslav976e8bd2014-07-16 15:12:03 -0700282 boolean addCrossProfileWidgetProvider(in ComponentName admin, String packageName);
283 boolean removeCrossProfileWidgetProvider(in ComponentName admin, String packageName);
284 List<String> getCrossProfileWidgetProviders(in ComponentName admin);
Sander Alewijnse0ced6272014-08-26 11:18:26 +0100285
Fyodor Kupolovbdc58c62015-01-29 13:24:03 -0800286 void setAutoTimeRequired(in ComponentName who, boolean required);
Sander Alewijnse0ced6272014-08-26 11:18:26 +0100287 boolean getAutoTimeRequired();
Fyodor Kupolov96fb9322014-12-01 15:08:09 -0800288
Lenka Trochtovaf348e8e2016-01-07 17:20:34 +0100289 void setForceEphemeralUsers(in ComponentName who, boolean forceEpehemeralUsers);
290 boolean getForceEphemeralUsers(in ComponentName who);
291
Fyodor Kupolov96fb9322014-12-01 15:08:09 -0800292 boolean isRemovingAdmin(in ComponentName adminReceiver, int userHandle);
Julia Reynolds20118f12015-02-11 12:34:08 -0500293
Julia Reynoldsfca04ca2015-02-17 13:39:12 -0500294 void setUserIcon(in ComponentName admin, in Bitmap icon);
Craig Lafayettedbe31a62015-04-02 13:14:39 -0400295
Rubin Xud86d58c2015-05-05 16:57:37 +0100296 void setSystemUpdatePolicy(in ComponentName who, in SystemUpdatePolicy policy);
297 SystemUpdatePolicy getSystemUpdatePolicy();
Benjamin Franze36087e2015-04-07 16:40:34 +0100298
Benjamin Franzbece8062015-05-06 12:14:31 +0100299 boolean setKeyguardDisabled(in ComponentName admin, boolean disabled);
300 boolean setStatusBarDisabled(in ComponentName who, boolean disabled);
Andrei Kapishnikov4eb6a362015-04-02 15:21:20 -0400301 boolean getDoNotAskCredentialsOnBoot();
Rubin Xudc105cc2015-04-14 23:38:01 +0100302
Charles Hedea0c3b2017-01-13 10:04:12 +0000303 void notifyPendingSystemUpdate(in SystemUpdateInfo info);
Pavel Grafovd65799e2016-12-02 11:21:45 +0000304 SystemUpdateInfo getPendingSystemUpdate(in ComponentName admin);
Amith Yamasanid49489b2015-04-28 14:00:26 -0700305
Edman Anjos52088e42017-01-13 22:26:17 +0100306 void setPermissionPolicy(in ComponentName admin, in String callerPackage, int policy);
Amith Yamasanid49489b2015-04-28 14:00:26 -0700307 int getPermissionPolicy(in ComponentName admin);
Edman Anjos52088e42017-01-13 22:26:17 +0100308 boolean setPermissionGrantState(in ComponentName admin, in String callerPackage, String packageName,
Svet Ganovd8ecc5a2015-05-20 10:45:43 -0700309 String permission, int grantState);
Edman Anjos52088e42017-01-13 22:26:17 +0100310 int getPermissionGrantState(in ComponentName admin, in String callerPackage, String packageName, String permission);
Esteban Talavera01576862016-12-15 11:16:44 +0000311 boolean isProvisioningAllowed(String action, String packageName);
312 int checkProvisioningPreCondition(String action, String packageName);
Edman Anjos52088e42017-01-13 22:26:17 +0100313 void setKeepUninstalledPackages(in ComponentName admin, in String callerPackage, in List<String> packageList);
314 List<String> getKeepUninstalledPackages(in ComponentName admin, in String callerPackage);
Mahaver Chopra15a46b02015-11-11 14:54:35 +0000315 boolean isManagedProfile(in ComponentName admin);
316 boolean isSystemOnlyUser(in ComponentName admin);
Sudheer Shanka3cb4da12016-03-07 18:51:49 -0800317 String getWifiMacAddress(in ComponentName admin);
Mahaver Chopra1ce53bc2015-12-14 13:35:14 +0000318 void reboot(in ComponentName admin);
Kenny Guy06de4e72015-12-22 12:07:39 +0000319
Sudheer Shanka3ccca91e2016-04-11 21:36:17 -0700320 void setShortSupportMessage(in ComponentName admin, in CharSequence message);
321 CharSequence getShortSupportMessage(in ComponentName admin);
322 void setLongSupportMessage(in ComponentName admin, in CharSequence message);
323 CharSequence getLongSupportMessage(in ComponentName admin);
Kenny Guy06de4e72015-12-22 12:07:39 +0000324
Sudheer Shanka3ccca91e2016-04-11 21:36:17 -0700325 CharSequence getShortSupportMessageForUser(in ComponentName admin, int userHandle);
326 CharSequence getLongSupportMessageForUser(in ComponentName admin, int userHandle);
Clara Bayarria1771112015-12-18 16:29:18 +0000327
328 boolean isSeparateProfileChallengeAllowed(int userHandle);
Benjamin Franz59720bb2016-01-18 15:26:11 +0000329
330 void setOrganizationColor(in ComponentName admin, in int color);
Nicolas Prevot8f7698a2016-02-11 16:05:33 +0000331 void setOrganizationColorForUser(in int color, in int userId);
Benjamin Franz59720bb2016-01-18 15:26:11 +0000332 int getOrganizationColor(in ComponentName admin);
333 int getOrganizationColorForUser(int userHandle);
Bartosz Fabianowski4c052f22016-01-25 14:18:43 +0100334
Michal Karpinski74cd7302016-04-12 15:17:36 +0100335 void setOrganizationName(in ComponentName admin, in CharSequence title);
336 CharSequence getOrganizationName(in ComponentName admin);
Bartosz Fabianowski365a3db2016-11-30 18:28:10 +0100337 CharSequence getDeviceOwnerOrganizationName();
Michal Karpinski74cd7302016-04-12 15:17:36 +0100338 CharSequence getOrganizationNameForUser(int userHandle);
Benjamin Franz3e8a7092016-01-25 16:19:08 +0000339
Alan Treadwayafad8782016-01-19 15:15:08 +0000340 int getUserProvisioningState();
341 void setUserProvisioningState(int state, int userHandle);
342
Bartosz Fabianowski4c052f22016-01-25 14:18:43 +0100343 void setAffiliationIds(in ComponentName admin, in List<String> ids);
Esteban Talaverac9bb3782016-11-11 15:41:14 +0000344 List<String> getAffiliationIds(in ComponentName admin);
Bartosz Fabianowski4c052f22016-01-25 14:18:43 +0100345 boolean isAffiliatedUser();
Rubin Xuc3cd05f2016-01-11 12:11:35 +0000346
Michal Karpinski6235a942016-03-15 12:07:23 +0000347 void setSecurityLoggingEnabled(in ComponentName admin, boolean enabled);
348 boolean isSecurityLoggingEnabled(in ComponentName admin);
349 ParceledListSlice retrieveSecurityLogs(in ComponentName admin);
350 ParceledListSlice retrievePreRebootSecurityLogs(in ComponentName admin);
Suprabh Shuklaa2ae2232016-01-28 18:05:14 -0800351
352 boolean isUninstallInQueue(String packageName);
353 void uninstallPackageWithActiveAdmins(String packageName);
Mahaver Chopra790d1982016-07-07 16:06:49 +0100354
355 boolean isDeviceProvisioned();
Benjamin Franz2aa9bab2016-07-11 19:10:36 +0100356 boolean isDeviceProvisioningConfigApplied();
357 void setDeviceProvisioningConfigApplied();
Victor Chang9bfc65f2016-08-15 12:27:09 +0100358
359 void forceUpdateUserSetupComplete();
Vladislav Kuzkokova8202522016-08-18 19:01:27 +0200360
361 void setBackupServiceEnabled(in ComponentName admin, boolean enabled);
362 boolean isBackupServiceEnabled(in ComponentName admin);
Lenka Trochtovac141d082017-12-20 14:45:16 +0100363 void setMandatoryBackupTransport(in ComponentName admin, in ComponentName backupTransportComponent);
364 ComponentName getMandatoryBackupTransport();
Michal Karpinskidd9bb4f2016-10-12 14:59:26 +0100365
366 void setNetworkLoggingEnabled(in ComponentName admin, boolean enabled);
367 boolean isNetworkLoggingEnabled(in ComponentName admin);
Michal Karpinskia9ff2062016-11-03 15:46:17 +0000368 List<NetworkEvent> retrieveNetworkLogs(in ComponentName admin, long batchToken);
Tony Mak46aabe52016-11-14 12:53:06 +0000369
370 boolean bindDeviceAdminServiceAsUser(in ComponentName admin,
371 IApplicationThread caller, IBinder token, in Intent service,
372 IServiceConnection connection, int flags, int targetUserId);
Esteban Talaverafc291bc2016-11-21 13:52:03 +0000373 List<UserHandle> getBindDeviceAdminTargetUsers(in ComponentName admin);
Alex Chau8d6e18c2017-12-08 18:11:27 +0000374 boolean isEphemeralUser(in ComponentName admin);
Bartosz Fabianowskib21b2412016-11-17 04:53:33 +0100375
376 long getLastSecurityLogRetrievalTime();
377 long getLastBugReportRequestTime();
378 long getLastNetworkLogRetrievalTime();
Rubin Xuaab7a412016-12-30 21:13:29 +0000379
380 boolean setResetPasswordToken(in ComponentName admin, in byte[] token);
381 boolean clearResetPasswordToken(in ComponentName admin);
382 boolean isResetPasswordTokenActive(in ComponentName admin);
383 boolean resetPasswordWithToken(in ComponentName admin, String password, in byte[] token, int flags);
Bartosz Fabianowskiaff5e9c2017-01-25 06:09:13 +0100384
Bartosz Fabianowski172f7802017-03-06 12:07:57 +0100385 boolean isCurrentInputMethodSetByOwner();
Bartosz Fabianowski05dc9f72017-02-22 23:41:14 +0100386 StringParceledListSlice getOwnerInstalledCaCerts(in UserHandle user);
Benjamin Franza77e3572017-06-23 12:01:44 +0100387
388 boolean clearApplicationUserData(in ComponentName admin, in String packageName, in IPackageDataObserver callback);
Alex Chau04458852017-11-27 18:21:23 +0000389
Alex Chaud7958272017-12-08 11:30:52 +0000390 void setLogoutEnabled(in ComponentName admin, boolean enabled);
391 boolean isLogoutEnabled();
Alex Chaub6a9f942017-11-07 11:28:56 +0800392
393 List<String> getDisallowedSystemApps(in ComponentName admin, int userId, String provisioningAction);
arangelov8bae4ea2017-12-20 20:26:46 +0000394 void transferOwnership(in ComponentName admin, in ComponentName target, in PersistableBundle bundle);
Alex Chau93ae42b2018-01-11 15:10:12 +0000395
396 void setStartUserSessionMessage(in ComponentName admin, in CharSequence startUserSessionMessage);
397 void setEndUserSessionMessage(in ComponentName admin, in CharSequence endUserSessionMessage);
398 CharSequence getStartUserSessionMessage(in ComponentName admin);
399 CharSequence getEndUserSessionMessage(in ComponentName admin);
Vladislav Kuzkokov792d58f2018-01-15 15:04:05 +0100400
401 void setPrintingEnabled(in ComponentName admin, boolean enabled);
402 boolean isPrintingEnabled();
403 CharSequence getPrintingDisabledReason();
Sudheer Shanka04d61ae2018-01-17 12:16:57 -0800404
405 List<String> setMeteredDataDisabled(in ComponentName admin, in List<String> packageNames);
406 List<String> getMeteredDataDisabled(in ComponentName admin);
yuemingwe3d9c092018-01-11 12:11:44 +0000407
408 int addOverrideApn(in ComponentName admin, in ApnSetting apnSetting);
409 boolean updateOverrideApn(in ComponentName admin, int apnId, in ApnSetting apnSetting);
410 boolean removeOverrideApn(in ComponentName admin, int apnId);
411 List<ApnSetting> getOverrideApns(in ComponentName admin);
412 void setOverrideApnsEnabled(in ComponentName admin, boolean enabled);
413 boolean isOverrideApnEnabled(in ComponentName admin);
Dianne Hackbornd6847842010-01-12 18:14:19 -0800414}