blob: 3c389e4aa38c80a4e8a0370ef8a330b9884b6d1a [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;
Neda Topoljanac19f29162018-10-22 18:12:16 +010023import android.app.admin.StartInstallingUpdateCallback;
Pavel Grafovd65799e2016-12-02 11:21:45 +000024import android.app.admin.SystemUpdateInfo;
Rubin Xud86d58c2015-05-05 16:57:37 +010025import android.app.admin.SystemUpdatePolicy;
Andrew Scull5f9e6f32016-08-02 14:22:17 +010026import android.app.admin.PasswordMetrics;
Dianne Hackbornd6847842010-01-12 18:14:19 -080027import android.content.ComponentName;
Adam Connors010cfd42014-04-16 12:48:13 +010028import android.content.Intent;
Sander Alewijnsef475ca32014-02-17 15:13:58 +000029import android.content.IntentFilter;
Benjamin Franza77e3572017-06-23 12:01:44 +010030import android.content.pm.IPackageDataObserver;
Rubin Xuc3cd05f2016-01-11 12:11:35 +000031import android.content.pm.ParceledListSlice;
Bartosz Fabianowski05dc9f72017-02-22 23:41:14 +010032import android.content.pm.StringParceledListSlice;
Julia Reynoldsfca04ca2015-02-17 13:39:12 -050033import android.graphics.Bitmap;
Jason Monk03bc9912014-05-13 09:44:57 -040034import android.net.ProxyInfo;
Robin Lee39087b12015-05-05 15:57:17 +010035import android.net.Uri;
Robin Lee66e5d962014-04-09 16:44:21 +010036import android.os.Bundle;
Jim Millere303bf42014-08-26 17:12:29 -070037import android.os.PersistableBundle;
Dianne Hackborn8ea138c2010-01-26 18:01:04 -080038import android.os.RemoteCallback;
Julia Reynolds1e958392014-05-16 14:25:21 -040039import android.os.UserHandle;
Eran Messeria1730642017-12-11 17:48:47 +000040import android.security.keymaster.KeymasterCertificateChain;
Eran Messeri852c8f12017-11-15 05:55:52 +000041import android.security.keystore.ParcelableKeyGenParameterSpec;
yuemingwe3d9c092018-01-11 12:11:44 +000042import android.telephony.data.ApnSetting;
Andrew Scull5f9e6f32016-08-02 14:22:17 +010043
Kenny Guyfa80a4f2014-08-20 19:40:59 +010044import java.util.List;
Dianne Hackbornd6847842010-01-12 18:14:19 -080045
46/**
47 * Internal IPC interface to the device policy service.
48 * {@hide}
49 */
50interface IDevicePolicyManager {
Clara Bayarri3e826ef2015-12-14 17:51:22 +000051 void setPasswordQuality(in ComponentName who, int quality, boolean parent);
52 int getPasswordQuality(in ComponentName who, int userHandle, boolean parent);
Konstantin Lopyreva15dcfa2010-05-24 17:10:56 -070053
Esteban Talavera62399912016-01-11 15:37:55 +000054 void setPasswordMinimumLength(in ComponentName who, int length, boolean parent);
55 int getPasswordMinimumLength(in ComponentName who, int userHandle, boolean parent);
Konstantin Lopyreva15dcfa2010-05-24 17:10:56 -070056
Esteban Talavera62399912016-01-11 15:37:55 +000057 void setPasswordMinimumUpperCase(in ComponentName who, int length, boolean parent);
58 int getPasswordMinimumUpperCase(in ComponentName who, int userHandle, boolean parent);
Konstantin Lopyreva15dcfa2010-05-24 17:10:56 -070059
Esteban Talavera62399912016-01-11 15:37:55 +000060 void setPasswordMinimumLowerCase(in ComponentName who, int length, boolean parent);
61 int getPasswordMinimumLowerCase(in ComponentName who, int userHandle, boolean parent);
Konstantin Lopyreva15dcfa2010-05-24 17:10:56 -070062
Esteban Talavera62399912016-01-11 15:37:55 +000063 void setPasswordMinimumLetters(in ComponentName who, int length, boolean parent);
64 int getPasswordMinimumLetters(in ComponentName who, int userHandle, boolean parent);
Konstantin Lopyreva15dcfa2010-05-24 17:10:56 -070065
Esteban Talavera62399912016-01-11 15:37:55 +000066 void setPasswordMinimumNumeric(in ComponentName who, int length, boolean parent);
67 int getPasswordMinimumNumeric(in ComponentName who, int userHandle, boolean parent);
Konstantin Lopyreva15dcfa2010-05-24 17:10:56 -070068
Esteban Talavera62399912016-01-11 15:37:55 +000069 void setPasswordMinimumSymbols(in ComponentName who, int length, boolean parent);
70 int getPasswordMinimumSymbols(in ComponentName who, int userHandle, boolean parent);
Konstantin Lopyrevc8577402010-06-04 17:15:02 -070071
Esteban Talavera62399912016-01-11 15:37:55 +000072 void setPasswordMinimumNonLetter(in ComponentName who, int length, boolean parent);
73 int getPasswordMinimumNonLetter(in ComponentName who, int userHandle, boolean parent);
Jim Millerb8ec4702012-08-31 17:19:10 -070074
Esteban Talavera62399912016-01-11 15:37:55 +000075 void setPasswordHistoryLength(in ComponentName who, int length, boolean parent);
76 int getPasswordHistoryLength(in ComponentName who, int userHandle, boolean parent);
Konstantin Lopyrev32558232010-05-20 16:18:05 -070077
Esteban Talavera62399912016-01-11 15:37:55 +000078 void setPasswordExpirationTimeout(in ComponentName who, long expiration, boolean parent);
79 long getPasswordExpirationTimeout(in ComponentName who, int userHandle, boolean parent);
Jim Millera4e28d12010-11-08 16:15:47 -080080
Esteban Talavera62399912016-01-11 15:37:55 +000081 long getPasswordExpiration(in ComponentName who, int userHandle, boolean parent);
Jim Millera4e28d12010-11-08 16:15:47 -080082
Clara Bayarri3e826ef2015-12-14 17:51:22 +000083 boolean isActivePasswordSufficient(int userHandle, boolean parent);
Clara Bayarrid7693912016-01-22 17:26:31 +000084 boolean isProfileActivePasswordSufficientForParent(int userHandle);
Bernard Chaue9586552018-11-29 10:59:31 +000085 int getPasswordComplexity();
Pavel Grafovc4f87e92017-10-26 16:34:25 +010086 boolean isUsingUnifiedPassword(in ComponentName admin);
Esteban Talavera62399912016-01-11 15:37:55 +000087 int getCurrentFailedPasswordAttempts(int userHandle, boolean parent);
88 int getProfileWithMinimumFailedPasswordsForWipe(int userHandle, boolean parent);
Jim Millerb8ec4702012-08-31 17:19:10 -070089
Esteban Talavera62399912016-01-11 15:37:55 +000090 void setMaximumFailedPasswordsForWipe(in ComponentName admin, int num, boolean parent);
91 int getMaximumFailedPasswordsForWipe(in ComponentName admin, int userHandle, boolean parent);
Jim Millerb8ec4702012-08-31 17:19:10 -070092
Fyodor Kupolovbdc58c62015-01-29 13:24:03 -080093 boolean resetPassword(String password, int flags);
Jim Millerb8ec4702012-08-31 17:19:10 -070094
Esteban Talavera62399912016-01-11 15:37:55 +000095 void setMaximumTimeToLock(in ComponentName who, long timeMs, boolean parent);
96 long getMaximumTimeToLock(in ComponentName who, int userHandle, boolean parent);
Jim Millerb8ec4702012-08-31 17:19:10 -070097
Michal Karpinski8f010dd2016-06-21 15:05:53 +010098 void setRequiredStrongAuthTimeout(in ComponentName who, long timeMs, boolean parent);
99 long getRequiredStrongAuthTimeout(in ComponentName who, int userId, boolean parent);
100
Andrew Scull85a63bc2016-10-24 13:47:47 +0100101 void lockNow(int flags, boolean parent);
Jim Millerb8ec4702012-08-31 17:19:10 -0700102
yuemingwf7f67dc2017-09-08 14:23:53 +0100103 void wipeDataWithReason(int flags, String wipeReasonForUser);
Oscar Montemayor69238c62010-08-03 10:51:06 -0700104
Fyodor Kupolovbdc58c62015-01-29 13:24:03 -0800105 ComponentName setGlobalProxy(in ComponentName admin, String proxySpec, String exclusionList);
Amith Yamasani599dd7c2012-09-14 23:20:08 -0700106 ComponentName getGlobalProxyAdmin(int userHandle);
Jason Monk03bc9912014-05-13 09:44:57 -0400107 void setRecommendedGlobalProxy(in ComponentName admin, in ProxyInfo proxyInfo);
Andy Stadler7b0f8f02011-01-12 14:59:52 -0800108
Fyodor Kupolovbdc58c62015-01-29 13:24:03 -0800109 int setStorageEncryption(in ComponentName who, boolean encrypt);
Amith Yamasani599dd7c2012-09-14 23:20:08 -0700110 boolean getStorageEncryption(in ComponentName who, int userHandle);
Makoto Onukid4c9e542016-02-25 18:17:30 -0800111 int getStorageEncryptionStatus(in String callerPackage, int userHandle);
Andy Stadler7b0f8f02011-01-12 14:59:52 -0800112
Michal Karpinski3fc437e2015-12-15 10:09:00 +0000113 boolean requestBugreport(in ComponentName who);
114
Fyodor Kupolovbdc58c62015-01-29 13:24:03 -0800115 void setCameraDisabled(in ComponentName who, boolean disabled);
Amith Yamasani599dd7c2012-09-14 23:20:08 -0700116 boolean getCameraDisabled(in ComponentName who, int userHandle);
Ben Komalo2447edd2011-05-09 16:05:33 -0700117
Fyodor Kupolovbdc58c62015-01-29 13:24:03 -0800118 void setScreenCaptureDisabled(in ComponentName who, boolean disabled);
Sander Alewijnsed2a1eec2014-07-09 12:57:05 +0100119 boolean getScreenCaptureDisabled(in ComponentName who, int userHandle);
120
Esteban Talavera62399912016-01-11 15:37:55 +0000121 void setKeyguardDisabledFeatures(in ComponentName who, int which, boolean parent);
122 int getKeyguardDisabledFeatures(in ComponentName who, int userHandle, boolean parent);
Jim Millerb8ec4702012-08-31 17:19:10 -0700123
Amith Yamasani599dd7c2012-09-14 23:20:08 -0700124 void setActiveAdmin(in ComponentName policyReceiver, boolean refreshing, int userHandle);
125 boolean isAdminActive(in ComponentName policyReceiver, int userHandle);
126 List<ComponentName> getActiveAdmins(int userHandle);
Andrei Oneaf650e3c2019-02-25 13:15:54 +0000127 @UnsupportedAppUsage
Amith Yamasani599dd7c2012-09-14 23:20:08 -0700128 boolean packageHasActiveAdmins(String packageName, int userHandle);
129 void getRemoveWarning(in ComponentName policyReceiver, in RemoteCallback result, int userHandle);
130 void removeActiveAdmin(in ComponentName policyReceiver, int userHandle);
Kenny Guy38dcca52016-04-19 13:09:18 +0100131 void forceRemoveActiveAdmin(in ComponentName policyReceiver, int userHandle);
Amith Yamasani599dd7c2012-09-14 23:20:08 -0700132 boolean hasGrantedPolicy(in ComponentName policyReceiver, int usesPolicy, int userHandle);
Jim Millerb8ec4702012-08-31 17:19:10 -0700133
Andrew Scull5f9e6f32016-08-02 14:22:17 +0100134 void setActivePasswordState(in PasswordMetrics metrics, int userHandle);
Andrew Scull5daf2732016-11-14 15:02:45 +0000135 void reportPasswordChanged(int userId);
Amith Yamasani599dd7c2012-09-14 23:20:08 -0700136 void reportFailedPasswordAttempt(int userHandle);
137 void reportSuccessfulPasswordAttempt(int userHandle);
Gilad Brettercb51b8b2018-03-22 17:04:51 +0200138 void reportFailedBiometricAttempt(int userHandle);
139 void reportSuccessfulBiometricAttempt(int userHandle);
Michal Karpinskied5c8f02016-02-09 15:43:41 +0000140 void reportKeyguardDismissed(int userHandle);
141 void reportKeyguardSecured(int userHandle);
Michal Karpinski31502d32016-01-25 16:43:07 +0000142
Makoto Onukia52562c2015-10-01 16:12:31 -0700143 boolean setDeviceOwner(in ComponentName who, String ownerName, int userId);
Makoto Onukic8a5a552015-11-19 14:29:12 -0800144 ComponentName getDeviceOwnerComponent(boolean callingUserOnly);
Bartosz Fabianowskidd7f8da2016-11-30 11:09:22 +0100145 boolean hasDeviceOwner();
Geoffrey Borggaard334c7e32013-08-08 14:31:36 -0400146 String getDeviceOwnerName();
Jason Monkb0dced82014-06-06 14:36:20 -0400147 void clearDeviceOwner(String packageName);
Makoto Onukic8a5a552015-11-19 14:29:12 -0800148 int getDeviceOwnerUserId();
Maggie Benthallda51e682013-08-08 22:35:44 -0400149
Amith Yamasanibf3a9462014-07-28 14:26:42 -0700150 boolean setProfileOwner(in ComponentName who, String ownerName, int userHandle);
Philip P. Moltmann4e615e62018-08-28 14:57:49 -0700151 ComponentName getProfileOwnerAsUser(int userHandle);
Amith Yamasanibf3a9462014-07-28 14:26:42 -0700152 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
Michael Groover1905f3f2018-10-11 19:04:50 -0700159 boolean checkDeviceIdentifierAccess(in String packageName, int userHandle, int pid, int uid);
Michael Groover6d20d752018-10-01 16:14:50 -0700160
Andrei Stingaceanu16187902016-03-21 15:44:45 +0000161 void setDeviceOwnerLockScreenInfo(in ComponentName who, CharSequence deviceOwnerInfo);
162 CharSequence getDeviceOwnerLockScreenInfo();
Andrei Stingaceanu6644cd92015-11-10 13:03:31 +0000163
Edman Anjos52088e42017-01-13 22:26:17 +0100164 String[] setPackagesSuspended(in ComponentName admin, in String callerPackage, in String[] packageNames, boolean suspended);
165 boolean isPackageSuspended(in ComponentName admin, in String callerPackage, String packageName);
Andrei Stingaceanu1e283912015-11-26 15:26:28 +0000166
Edman Anjosf9946772016-11-28 16:35:15 +0100167 boolean installCaCert(in ComponentName admin, String callerPackage, in byte[] certBuffer);
168 void uninstallCaCerts(in ComponentName admin, String callerPackage, in String[] aliases);
169 void enforceCanManageCaCerts(in ComponentName admin, in String callerPackage);
Robin Lee2f7e1e42016-03-21 10:50:01 +0000170 boolean approveCaCert(in String alias, int userHandle, boolean approval);
171 boolean isCaCertApproved(in String alias, int userHandle);
Sander Alewijnsef475ca32014-02-17 15:13:58 +0000172
Edman Anjosf9946772016-11-28 16:35:15 +0100173 boolean installKeyPair(in ComponentName who, in String callerPackage, in byte[] privKeyBuffer,
Eran Messeri19d19042017-11-20 12:48:52 +0000174 in byte[] certBuffer, in byte[] certChainBuffer, String alias, boolean requestAccess,
175 boolean isUserSelectable);
Edman Anjosf9946772016-11-28 16:35:15 +0100176 boolean removeKeyPair(in ComponentName who, in String callerPackage, String alias);
Eran Messeria1730642017-12-11 17:48:47 +0000177 boolean generateKeyPair(in ComponentName who, in String callerPackage, in String algorithm,
178 in ParcelableKeyGenParameterSpec keySpec,
Eran Messeri94d56762017-12-21 20:50:54 +0000179 in int idAttestationFlags, out KeymasterCertificateChain attestationChain);
Eran Messeriecf0f222017-12-11 12:32:13 +0000180 boolean setKeyPairCertificate(in ComponentName who, in String callerPackage, in String alias,
181 in byte[] certBuffer, in byte[] certChainBuffer, boolean isUserSelectable);
Robin Lee39087b12015-05-05 15:57:17 +0100182 void choosePrivateKeyAlias(int uid, in Uri uri, in String alias, IBinder aliasCallback);
Bernhard Bauer26408cc2014-09-08 14:07:31 +0100183
Edman Anjosf9946772016-11-28 16:35:15 +0100184 void setDelegatedScopes(in ComponentName who, in String delegatePackage, in List<String> scopes);
185 List<String> getDelegatedScopes(in ComponentName who, String delegatePackage);
186 List<String> getDelegatePackages(in ComponentName who, String scope);
187
Rubin Xuec32b562015-03-03 17:34:05 +0000188 void setCertInstallerPackage(in ComponentName who, String installerPackage);
189 String getCertInstallerPackage(in ComponentName who);
190
Pavel Grafov5cba3362019-01-25 08:50:06 +0000191 boolean setAlwaysOnVpnPackage(in ComponentName who, String vpnPackage, boolean lockdown, in List<String> lockdownWhitelist);
Robin Lee244ce8e2016-01-05 18:03:46 +0000192 String getAlwaysOnVpnPackage(in ComponentName who);
Pavel Grafov5cba3362019-01-25 08:50:06 +0000193 boolean isAlwaysOnVpnLockdownEnabled(in ComponentName who);
194 List<String> getAlwaysOnVpnLockdownWhitelist(in ComponentName who);
Robin Lee244ce8e2016-01-05 18:03:46 +0000195
Sander Alewijnsef475ca32014-02-17 15:13:58 +0000196 void addPersistentPreferredActivity(in ComponentName admin, in IntentFilter filter, in ComponentName activity);
197 void clearPackagePersistentPreferredActivities(in ComponentName admin, String packageName);
Robin Lee66e5d962014-04-09 16:44:21 +0100198
Christine Franks26449ed2018-02-22 16:19:26 -0800199 void setDefaultSmsApplication(in ComponentName admin, String packageName);
200
Edman Anjosf9946772016-11-28 16:35:15 +0100201 void setApplicationRestrictions(in ComponentName who, in String callerPackage, in String packageName, in Bundle settings);
202 Bundle getApplicationRestrictions(in ComponentName who, in String callerPackage, in String packageName);
Victor Changcd14c0a2016-03-16 19:10:15 +0000203 boolean setApplicationRestrictionsManagingPackage(in ComponentName admin, in String packageName);
Esteban Talaverabf60f722015-12-10 16:26:44 +0000204 String getApplicationRestrictionsManagingPackage(in ComponentName admin);
Edman Anjosf9946772016-11-28 16:35:15 +0100205 boolean isCallerApplicationRestrictionsManagingPackage(in String callerPackage);
Amith Yamasanibe465322014-04-24 13:45:17 -0700206
Amith Yamasanif20d6402014-05-24 15:34:37 -0700207 void setRestrictionsProvider(in ComponentName who, in ComponentName provider);
208 ComponentName getRestrictionsProvider(int userHandle);
209
Amith Yamasanibe465322014-04-24 13:45:17 -0700210 void setUserRestriction(in ComponentName who, in String key, boolean enable);
Sudheer Shanka549b9692016-03-30 17:12:07 -0700211 Bundle getUserRestrictions(in ComponentName who);
Nicolas Prevot81948992014-05-16 18:25:26 +0100212 void addCrossProfileIntentFilter(in ComponentName admin, in IntentFilter filter, int flags);
213 void clearCrossProfileIntentFilters(in ComponentName admin);
Adam Connors010cfd42014-04-16 12:48:13 +0100214
Kenny Guyfa80a4f2014-08-20 19:40:59 +0100215 boolean setPermittedAccessibilityServices(in ComponentName admin,in List packageList);
216 List getPermittedAccessibilityServices(in ComponentName admin);
217 List getPermittedAccessibilityServicesForUser(int userId);
Sudheer Shanka56925862016-01-28 19:43:59 +0000218 boolean isAccessibilityServicePermittedByAdmin(in ComponentName admin, String packageName, int userId);
Kenny Guyfa80a4f2014-08-20 19:40:59 +0100219
220 boolean setPermittedInputMethods(in ComponentName admin,in List packageList);
221 List getPermittedInputMethods(in ComponentName admin);
222 List getPermittedInputMethodsForCurrentUser();
Sudheer Shanka56925862016-01-28 19:43:59 +0000223 boolean isInputMethodPermittedByAdmin(in ComponentName admin, String packageName, int userId);
Kenny Guyfa80a4f2014-08-20 19:40:59 +0100224
Esteban Talavera7e4cbad2017-03-30 17:59:50 +0100225 boolean setPermittedCrossProfileNotificationListeners(in ComponentName admin, in List<String> packageList);
226 List<String> getPermittedCrossProfileNotificationListeners(in ComponentName admin);
227 boolean isNotificationListenerServicePermitted(in String packageName, int userId);
228
phweiss73145f42017-01-17 19:06:38 +0100229 Intent createAdminSupportIntent(in String restriction);
Edman Anjos52088e42017-01-13 22:26:17 +0100230 boolean setApplicationHidden(in ComponentName admin, in String callerPackage, in String packageName, boolean hidden);
231 boolean isApplicationHidden(in ComponentName admin, in String callerPackage, in String packageName);
Julia Reynolds966881e2014-05-14 12:23:08 -0400232
phweissa92e1212016-01-25 17:14:10 +0100233 UserHandle createAndManageUser(in ComponentName who, in String name, in ComponentName profileOwner, in PersistableBundle adminExtras, in int flags);
Julia Reynolds1e958392014-05-16 14:25:21 -0400234 boolean removeUser(in ComponentName who, in UserHandle userHandle);
Jason Monk582d9112014-07-09 19:57:08 -0400235 boolean switchUser(in ComponentName who, in UserHandle userHandle);
Alex Chau596c2882018-01-29 14:39:37 +0000236 int startUserInBackground(in ComponentName who, in UserHandle userHandle);
237 int stopUser(in ComponentName who, in UserHandle userHandle);
238 int logoutUser(in ComponentName who);
Alex Chauaf9bb8d2017-12-06 14:38:25 +0000239 List<UserHandle> getSecondaryUsers(in ComponentName who);
Julia Reynolds1e958392014-05-16 14:25:21 -0400240
Edman Anjos52088e42017-01-13 22:26:17 +0100241 void enableSystemApp(in ComponentName admin, in String callerPackage, in String packageName);
242 int enableSystemAppWithIntent(in ComponentName admin, in String callerPackage, in Intent intent);
Alex Chau5343fcb2017-12-05 16:49:19 +0000243 boolean installExistingPackage(in ComponentName admin, in String callerPackage, in String packageName);
Adam Connors655be2a2014-07-14 09:01:25 +0000244
Sander Alewijnse5c02db62014-05-07 10:46:57 +0100245 void setAccountManagementDisabled(in ComponentName who, in String accountType, in boolean disabled);
246 String[] getAccountTypesWithManagementDisabled();
Alexandra Gherghina999d3942014-07-03 11:40:08 +0100247 String[] getAccountTypesWithManagementDisabledAsUser(int userId);
justinzhang511e0d82014-03-24 16:09:24 -0400248
Jason Monk48aacba2014-08-13 16:29:08 -0400249 void setLockTaskPackages(in ComponentName who, in String[] packages);
250 String[] getLockTaskPackages(in ComponentName who);
Jason Monkd7b86212014-06-16 13:15:38 -0400251 boolean isLockTaskPermitted(in String pkg);
Julia Reynoldsda551652014-05-14 17:15:16 -0400252
Charles Hee078db72017-10-19 18:03:20 +0100253 void setLockTaskFeatures(in ComponentName who, int flags);
254 int getLockTaskFeatures(in ComponentName who);
255
Julia Reynoldsda551652014-05-14 17:15:16 -0400256 void setGlobalSetting(in ComponentName who, in String setting, in String value);
yuemingw0de748d2017-11-15 19:22:27 +0000257 void setSystemSetting(in ComponentName who, in String setting, in String value);
Julia Reynoldsda551652014-05-14 17:15:16 -0400258 void setSecureSetting(in ComponentName who, in String setting, in String value);
Julia Reynolds4a21b252014-06-04 11:11:43 -0400259
yuemingwe43cdf72017-10-12 16:52:11 +0100260 boolean setTime(in ComponentName who, long millis);
261 boolean setTimeZone(in ComponentName who, String timeZone);
262
Julia Reynolds4a21b252014-06-04 11:11:43 -0400263 void setMasterVolumeMuted(in ComponentName admin, boolean on);
264 boolean isMasterVolumeMuted(in ComponentName admin);
Jason Monk35c62a42014-06-17 10:24:47 -0400265
266 void notifyLockTaskModeChanged(boolean isEnabled, String pkg, int userId);
Kenny Guyc13053b2014-05-29 14:17:17 +0100267
Edman Anjosa5f2fb12016-12-19 11:25:54 -0800268 void setUninstallBlocked(in ComponentName admin, in String callerPackage, in String packageName, boolean uninstallBlocked);
Esteban Talavera729b2a62014-08-27 18:01:58 +0100269 boolean isUninstallBlocked(in ComponentName admin, in String packageName);
Adam Connors210fe212014-07-17 15:41:43 +0100270
271 void setCrossProfileCallerIdDisabled(in ComponentName who, boolean disabled);
272 boolean getCrossProfileCallerIdDisabled(in ComponentName who);
273 boolean getCrossProfileCallerIdDisabledForUser(int userId);
Victor Chang1060c6182016-01-04 20:16:23 +0000274 void setCrossProfileContactsSearchDisabled(in ComponentName who, boolean disabled);
275 boolean getCrossProfileContactsSearchDisabled(in ComponentName who);
276 boolean getCrossProfileContactsSearchDisabledForUser(int userId);
Victor Chang97bdacc2016-01-21 22:24:11 +0000277 void startManagedQuickContact(String lookupKey, long contactId, boolean isContactIdIgnored, long directoryId, in Intent originalIntent);
Jim Miller604e7552014-07-18 19:00:02 -0700278
Ricky Wai778ba132015-03-31 14:21:22 +0100279 void setBluetoothContactSharingDisabled(in ComponentName who, boolean disabled);
280 boolean getBluetoothContactSharingDisabled(in ComponentName who);
281 boolean getBluetoothContactSharingDisabledForUser(int userId);
282
Jim Millere303bf42014-08-26 17:12:29 -0700283 void setTrustAgentConfiguration(in ComponentName admin, in ComponentName agent,
Tony Mak089d8402016-04-05 17:42:55 +0100284 in PersistableBundle args, boolean parent);
Jim Millere303bf42014-08-26 17:12:29 -0700285 List<PersistableBundle> getTrustAgentConfiguration(in ComponentName admin,
Tony Mak089d8402016-04-05 17:42:55 +0100286 in ComponentName agent, int userId, boolean parent);
Jim Miller604e7552014-07-18 19:00:02 -0700287
Svetoslav976e8bd2014-07-16 15:12:03 -0700288 boolean addCrossProfileWidgetProvider(in ComponentName admin, String packageName);
289 boolean removeCrossProfileWidgetProvider(in ComponentName admin, String packageName);
290 List<String> getCrossProfileWidgetProviders(in ComponentName admin);
Sander Alewijnse0ced6272014-08-26 11:18:26 +0100291
Fyodor Kupolovbdc58c62015-01-29 13:24:03 -0800292 void setAutoTimeRequired(in ComponentName who, boolean required);
Sander Alewijnse0ced6272014-08-26 11:18:26 +0100293 boolean getAutoTimeRequired();
Fyodor Kupolov96fb9322014-12-01 15:08:09 -0800294
Lenka Trochtovaf348e8e2016-01-07 17:20:34 +0100295 void setForceEphemeralUsers(in ComponentName who, boolean forceEpehemeralUsers);
296 boolean getForceEphemeralUsers(in ComponentName who);
297
Fyodor Kupolov96fb9322014-12-01 15:08:09 -0800298 boolean isRemovingAdmin(in ComponentName adminReceiver, int userHandle);
Julia Reynolds20118f12015-02-11 12:34:08 -0500299
Julia Reynoldsfca04ca2015-02-17 13:39:12 -0500300 void setUserIcon(in ComponentName admin, in Bitmap icon);
Craig Lafayettedbe31a62015-04-02 13:14:39 -0400301
Rubin Xud86d58c2015-05-05 16:57:37 +0100302 void setSystemUpdatePolicy(in ComponentName who, in SystemUpdatePolicy policy);
303 SystemUpdatePolicy getSystemUpdatePolicy();
Rubin Xu29b9a7d2018-01-11 09:24:02 +0000304 void clearSystemUpdatePolicyFreezePeriodRecord();
Benjamin Franze36087e2015-04-07 16:40:34 +0100305
Benjamin Franzbece8062015-05-06 12:14:31 +0100306 boolean setKeyguardDisabled(in ComponentName admin, boolean disabled);
307 boolean setStatusBarDisabled(in ComponentName who, boolean disabled);
Andrei Kapishnikov4eb6a362015-04-02 15:21:20 -0400308 boolean getDoNotAskCredentialsOnBoot();
Rubin Xudc105cc2015-04-14 23:38:01 +0100309
Charles Hedea0c3b2017-01-13 10:04:12 +0000310 void notifyPendingSystemUpdate(in SystemUpdateInfo info);
Pavel Grafovd65799e2016-12-02 11:21:45 +0000311 SystemUpdateInfo getPendingSystemUpdate(in ComponentName admin);
Amith Yamasanid49489b2015-04-28 14:00:26 -0700312
Edman Anjos52088e42017-01-13 22:26:17 +0100313 void setPermissionPolicy(in ComponentName admin, in String callerPackage, int policy);
Amith Yamasanid49489b2015-04-28 14:00:26 -0700314 int getPermissionPolicy(in ComponentName admin);
Philip P. Moltmann41df9f92019-02-08 13:07:57 -0800315 void setPermissionGrantState(in ComponentName admin, in String callerPackage, String packageName,
316 String permission, int grantState, in RemoteCallback resultReceiver);
Edman Anjos52088e42017-01-13 22:26:17 +0100317 int getPermissionGrantState(in ComponentName admin, in String callerPackage, String packageName, String permission);
Esteban Talavera01576862016-12-15 11:16:44 +0000318 boolean isProvisioningAllowed(String action, String packageName);
319 int checkProvisioningPreCondition(String action, String packageName);
Edman Anjos52088e42017-01-13 22:26:17 +0100320 void setKeepUninstalledPackages(in ComponentName admin, in String callerPackage, in List<String> packageList);
321 List<String> getKeepUninstalledPackages(in ComponentName admin, in String callerPackage);
Mahaver Chopra15a46b02015-11-11 14:54:35 +0000322 boolean isManagedProfile(in ComponentName admin);
323 boolean isSystemOnlyUser(in ComponentName admin);
Sudheer Shanka3cb4da12016-03-07 18:51:49 -0800324 String getWifiMacAddress(in ComponentName admin);
Mahaver Chopra1ce53bc2015-12-14 13:35:14 +0000325 void reboot(in ComponentName admin);
Kenny Guy06de4e72015-12-22 12:07:39 +0000326
Sudheer Shanka3ccca91e2016-04-11 21:36:17 -0700327 void setShortSupportMessage(in ComponentName admin, in CharSequence message);
328 CharSequence getShortSupportMessage(in ComponentName admin);
329 void setLongSupportMessage(in ComponentName admin, in CharSequence message);
330 CharSequence getLongSupportMessage(in ComponentName admin);
Kenny Guy06de4e72015-12-22 12:07:39 +0000331
Sudheer Shanka3ccca91e2016-04-11 21:36:17 -0700332 CharSequence getShortSupportMessageForUser(in ComponentName admin, int userHandle);
333 CharSequence getLongSupportMessageForUser(in ComponentName admin, int userHandle);
Clara Bayarria1771112015-12-18 16:29:18 +0000334
335 boolean isSeparateProfileChallengeAllowed(int userHandle);
Benjamin Franz59720bb2016-01-18 15:26:11 +0000336
337 void setOrganizationColor(in ComponentName admin, in int color);
Nicolas Prevot8f7698a2016-02-11 16:05:33 +0000338 void setOrganizationColorForUser(in int color, in int userId);
Benjamin Franz59720bb2016-01-18 15:26:11 +0000339 int getOrganizationColor(in ComponentName admin);
340 int getOrganizationColorForUser(int userHandle);
Bartosz Fabianowski4c052f22016-01-25 14:18:43 +0100341
Michal Karpinski74cd7302016-04-12 15:17:36 +0100342 void setOrganizationName(in ComponentName admin, in CharSequence title);
343 CharSequence getOrganizationName(in ComponentName admin);
Bartosz Fabianowski365a3db2016-11-30 18:28:10 +0100344 CharSequence getDeviceOwnerOrganizationName();
Michal Karpinski74cd7302016-04-12 15:17:36 +0100345 CharSequence getOrganizationNameForUser(int userHandle);
Benjamin Franz3e8a7092016-01-25 16:19:08 +0000346
Alan Treadwayafad8782016-01-19 15:15:08 +0000347 int getUserProvisioningState();
348 void setUserProvisioningState(int state, int userHandle);
349
Bartosz Fabianowski4c052f22016-01-25 14:18:43 +0100350 void setAffiliationIds(in ComponentName admin, in List<String> ids);
Esteban Talaverac9bb3782016-11-11 15:41:14 +0000351 List<String> getAffiliationIds(in ComponentName admin);
Bartosz Fabianowski4c052f22016-01-25 14:18:43 +0100352 boolean isAffiliatedUser();
Rubin Xuc3cd05f2016-01-11 12:11:35 +0000353
Michal Karpinski6235a942016-03-15 12:07:23 +0000354 void setSecurityLoggingEnabled(in ComponentName admin, boolean enabled);
355 boolean isSecurityLoggingEnabled(in ComponentName admin);
356 ParceledListSlice retrieveSecurityLogs(in ComponentName admin);
357 ParceledListSlice retrievePreRebootSecurityLogs(in ComponentName admin);
Irina Dumitrescu24ed35c2018-06-08 14:51:12 +0100358 long forceNetworkLogs();
Pavel Grafov5bb5a622018-01-31 21:06:24 +0000359 long forceSecurityLogs();
Suprabh Shuklaa2ae2232016-01-28 18:05:14 -0800360
361 boolean isUninstallInQueue(String packageName);
362 void uninstallPackageWithActiveAdmins(String packageName);
Mahaver Chopra790d1982016-07-07 16:06:49 +0100363
364 boolean isDeviceProvisioned();
Benjamin Franz2aa9bab2016-07-11 19:10:36 +0100365 boolean isDeviceProvisioningConfigApplied();
366 void setDeviceProvisioningConfigApplied();
Victor Chang9bfc65f2016-08-15 12:27:09 +0100367
368 void forceUpdateUserSetupComplete();
Vladislav Kuzkokova8202522016-08-18 19:01:27 +0200369
370 void setBackupServiceEnabled(in ComponentName admin, boolean enabled);
371 boolean isBackupServiceEnabled(in ComponentName admin);
Michal Karpinskidd9bb4f2016-10-12 14:59:26 +0100372
Rubin Xu99a66a92018-11-21 17:41:54 +0000373 void setNetworkLoggingEnabled(in ComponentName admin, in String packageName, boolean enabled);
374 boolean isNetworkLoggingEnabled(in ComponentName admin, in String packageName);
375 List<NetworkEvent> retrieveNetworkLogs(in ComponentName admin, in String packageName, long batchToken);
Tony Mak46aabe52016-11-14 12:53:06 +0000376
377 boolean bindDeviceAdminServiceAsUser(in ComponentName admin,
378 IApplicationThread caller, IBinder token, in Intent service,
379 IServiceConnection connection, int flags, int targetUserId);
Esteban Talaverafc291bc2016-11-21 13:52:03 +0000380 List<UserHandle> getBindDeviceAdminTargetUsers(in ComponentName admin);
Alex Chau8d6e18c2017-12-08 18:11:27 +0000381 boolean isEphemeralUser(in ComponentName admin);
Bartosz Fabianowskib21b2412016-11-17 04:53:33 +0100382
383 long getLastSecurityLogRetrievalTime();
384 long getLastBugReportRequestTime();
385 long getLastNetworkLogRetrievalTime();
Rubin Xuaab7a412016-12-30 21:13:29 +0000386
387 boolean setResetPasswordToken(in ComponentName admin, in byte[] token);
388 boolean clearResetPasswordToken(in ComponentName admin);
389 boolean isResetPasswordTokenActive(in ComponentName admin);
390 boolean resetPasswordWithToken(in ComponentName admin, String password, in byte[] token, int flags);
Bartosz Fabianowskiaff5e9c2017-01-25 06:09:13 +0100391
Bartosz Fabianowski172f7802017-03-06 12:07:57 +0100392 boolean isCurrentInputMethodSetByOwner();
Bartosz Fabianowski05dc9f72017-02-22 23:41:14 +0100393 StringParceledListSlice getOwnerInstalledCaCerts(in UserHandle user);
Benjamin Franza77e3572017-06-23 12:01:44 +0100394
Alex Chau1033e382018-01-25 15:53:39 +0000395 void clearApplicationUserData(in ComponentName admin, in String packageName, in IPackageDataObserver callback);
Alex Chau04458852017-11-27 18:21:23 +0000396
Alex Chaud7958272017-12-08 11:30:52 +0000397 void setLogoutEnabled(in ComponentName admin, boolean enabled);
398 boolean isLogoutEnabled();
Alex Chaub6a9f942017-11-07 11:28:56 +0800399
400 List<String> getDisallowedSystemApps(in ComponentName admin, int userId, String provisioningAction);
arangelov91201bd2018-01-04 17:10:21 +0000401
arangelov8bae4ea2017-12-20 20:26:46 +0000402 void transferOwnership(in ComponentName admin, in ComponentName target, in PersistableBundle bundle);
arangelov91201bd2018-01-04 17:10:21 +0000403 PersistableBundle getTransferOwnershipBundle();
Alex Chau93ae42b2018-01-11 15:10:12 +0000404
405 void setStartUserSessionMessage(in ComponentName admin, in CharSequence startUserSessionMessage);
406 void setEndUserSessionMessage(in ComponentName admin, in CharSequence endUserSessionMessage);
407 CharSequence getStartUserSessionMessage(in ComponentName admin);
408 CharSequence getEndUserSessionMessage(in ComponentName admin);
Vladislav Kuzkokov792d58f2018-01-15 15:04:05 +0100409
Michael Wachenschwanz54164682018-03-08 16:23:52 -0800410 List<String> setMeteredDataDisabledPackages(in ComponentName admin, in List<String> packageNames);
411 List<String> getMeteredDataDisabledPackages(in ComponentName admin);
yuemingwe3d9c092018-01-11 12:11:44 +0000412
413 int addOverrideApn(in ComponentName admin, in ApnSetting apnSetting);
414 boolean updateOverrideApn(in ComponentName admin, int apnId, in ApnSetting apnSetting);
415 boolean removeOverrideApn(in ComponentName admin, int apnId);
416 List<ApnSetting> getOverrideApns(in ComponentName admin);
417 void setOverrideApnsEnabled(in ComponentName admin, boolean enabled);
418 boolean isOverrideApnEnabled(in ComponentName admin);
Sudheer Shanka5be44ff2018-01-23 15:15:03 -0800419
Michael Wachenschwanz54164682018-03-08 16:23:52 -0800420 boolean isMeteredDataDisabledPackageForUser(in ComponentName admin, String packageName, int userId);
Eran Messeria2e0ca72018-09-20 15:15:41 +0100421
Eran Messeri309e0712018-11-20 08:42:42 +0000422 int setGlobalPrivateDns(in ComponentName admin, int mode, in String privateDnsHost);
Eran Messeria2e0ca72018-09-20 15:15:41 +0100423 int getGlobalPrivateDnsMode(in ComponentName admin);
424 String getGlobalPrivateDnsHost(in ComponentName admin);
Eran Messeribb271892018-10-17 18:27:50 +0100425
426 void grantDeviceIdsAccessToProfileOwner(in ComponentName who, int userId);
Neda Topoljanac19f29162018-10-22 18:12:16 +0100427
428 void installUpdateFromFile(in ComponentName admin, in ParcelFileDescriptor updateFileDescriptor, in StartInstallingUpdateCallback listener);
yuemingw4bcea962018-07-12 11:55:04 +0100429
yuemingwd2bfbc82019-01-02 11:42:25 +0000430 void setCrossProfileCalendarPackages(in ComponentName admin, in List<String> packageNames);
yuemingw4bcea962018-07-12 11:55:04 +0100431 List<String> getCrossProfileCalendarPackages(in ComponentName admin);
432 boolean isPackageAllowedToAccessCalendarForUser(String packageName, int userHandle);
yuemingw9dd0ba02018-11-30 21:09:40 +0000433 List<String> getCrossProfileCalendarPackagesForUser(int userHandle);
Alex Kershaw2418ea92018-10-19 17:17:49 +0100434
435 boolean isManagedKiosk();
436 boolean isUnattendedManagedKiosk();
yuemingw369f96d2018-12-05 22:07:04 +0000437
438 boolean startViewCalendarEventInManagedProfile(String packageName, long eventId, long start, long end, boolean allDay, int flags);
Dianne Hackbornd6847842010-01-12 18:14:19 -0800439}