IDevicePolicyManager.aidl revision 56681f761e941b1268cde9fc71de39d133280d27
1/* 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 18package android.app.admin; 19 20import android.app.admin.NetworkEvent; 21import android.app.IApplicationThread; 22import android.app.IServiceConnection; 23import android.app.admin.SystemUpdateInfo; 24import android.app.admin.SystemUpdatePolicy; 25import android.app.admin.PasswordMetrics; 26import android.content.ComponentName; 27import android.content.Intent; 28import android.content.IntentFilter; 29import android.content.pm.IPackageDataObserver; 30import android.content.pm.ParceledListSlice; 31import android.content.pm.StringParceledListSlice; 32import android.graphics.Bitmap; 33import android.net.ProxyInfo; 34import android.net.Uri; 35import android.os.Bundle; 36import android.os.PersistableBundle; 37import android.os.RemoteCallback; 38import android.os.UserHandle; 39import android.security.keymaster.KeymasterCertificateChain; 40import android.security.keystore.ParcelableKeyGenParameterSpec; 41import android.telephony.data.ApnSetting; 42 43import java.util.List; 44 45/** 46 * Internal IPC interface to the device policy service. 47 * {@hide} 48 */ 49interface IDevicePolicyManager { 50 void setPasswordQuality(in ComponentName who, int quality, boolean parent); 51 int getPasswordQuality(in ComponentName who, int userHandle, boolean parent); 52 53 void setPasswordMinimumLength(in ComponentName who, int length, boolean parent); 54 int getPasswordMinimumLength(in ComponentName who, int userHandle, boolean parent); 55 56 void setPasswordMinimumUpperCase(in ComponentName who, int length, boolean parent); 57 int getPasswordMinimumUpperCase(in ComponentName who, int userHandle, boolean parent); 58 59 void setPasswordMinimumLowerCase(in ComponentName who, int length, boolean parent); 60 int getPasswordMinimumLowerCase(in ComponentName who, int userHandle, boolean parent); 61 62 void setPasswordMinimumLetters(in ComponentName who, int length, boolean parent); 63 int getPasswordMinimumLetters(in ComponentName who, int userHandle, boolean parent); 64 65 void setPasswordMinimumNumeric(in ComponentName who, int length, boolean parent); 66 int getPasswordMinimumNumeric(in ComponentName who, int userHandle, boolean parent); 67 68 void setPasswordMinimumSymbols(in ComponentName who, int length, boolean parent); 69 int getPasswordMinimumSymbols(in ComponentName who, int userHandle, boolean parent); 70 71 void setPasswordMinimumNonLetter(in ComponentName who, int length, boolean parent); 72 int getPasswordMinimumNonLetter(in ComponentName who, int userHandle, boolean parent); 73 74 void setPasswordHistoryLength(in ComponentName who, int length, boolean parent); 75 int getPasswordHistoryLength(in ComponentName who, int userHandle, boolean parent); 76 77 void setPasswordExpirationTimeout(in ComponentName who, long expiration, boolean parent); 78 long getPasswordExpirationTimeout(in ComponentName who, int userHandle, boolean parent); 79 80 long getPasswordExpiration(in ComponentName who, int userHandle, boolean parent); 81 82 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 86 boolean isActivePasswordSufficient(int userHandle, boolean parent); 87 boolean isProfileActivePasswordSufficientForParent(int userHandle); 88 boolean isUsingUnifiedPassword(in ComponentName admin); 89 int getCurrentFailedPasswordAttempts(int userHandle, boolean parent); 90 int getProfileWithMinimumFailedPasswordsForWipe(int userHandle, boolean parent); 91 92 void setMaximumFailedPasswordsForWipe(in ComponentName admin, int num, boolean parent); 93 int getMaximumFailedPasswordsForWipe(in ComponentName admin, int userHandle, boolean parent); 94 95 boolean resetPassword(String password, int flags); 96 97 void setMaximumTimeToLock(in ComponentName who, long timeMs, boolean parent); 98 long getMaximumTimeToLock(in ComponentName who, int userHandle, boolean parent); 99 100 void setRequiredStrongAuthTimeout(in ComponentName who, long timeMs, boolean parent); 101 long getRequiredStrongAuthTimeout(in ComponentName who, int userId, boolean parent); 102 103 void lockNow(int flags, boolean parent); 104 105 void wipeDataWithReason(int flags, String wipeReasonForUser); 106 107 ComponentName setGlobalProxy(in ComponentName admin, String proxySpec, String exclusionList); 108 ComponentName getGlobalProxyAdmin(int userHandle); 109 void setRecommendedGlobalProxy(in ComponentName admin, in ProxyInfo proxyInfo); 110 111 int setStorageEncryption(in ComponentName who, boolean encrypt); 112 boolean getStorageEncryption(in ComponentName who, int userHandle); 113 int getStorageEncryptionStatus(in String callerPackage, int userHandle); 114 115 boolean requestBugreport(in ComponentName who); 116 117 void setCameraDisabled(in ComponentName who, boolean disabled); 118 boolean getCameraDisabled(in ComponentName who, int userHandle); 119 120 void setScreenCaptureDisabled(in ComponentName who, boolean disabled); 121 boolean getScreenCaptureDisabled(in ComponentName who, int userHandle); 122 123 void setKeyguardDisabledFeatures(in ComponentName who, int which, boolean parent); 124 int getKeyguardDisabledFeatures(in ComponentName who, int userHandle, boolean parent); 125 126 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); 132 void forceRemoveActiveAdmin(in ComponentName policyReceiver, int userHandle); 133 boolean hasGrantedPolicy(in ComponentName policyReceiver, int usesPolicy, int userHandle); 134 135 void setActivePasswordState(in PasswordMetrics metrics, int userHandle); 136 void reportPasswordChanged(int userId); 137 void reportFailedPasswordAttempt(int userHandle); 138 void reportSuccessfulPasswordAttempt(int userHandle); 139 void reportFailedFingerprintAttempt(int userHandle); 140 void reportSuccessfulFingerprintAttempt(int userHandle); 141 void reportKeyguardDismissed(int userHandle); 142 void reportKeyguardSecured(int userHandle); 143 144 boolean setDeviceOwner(in ComponentName who, String ownerName, int userId); 145 ComponentName getDeviceOwnerComponent(boolean callingUserOnly); 146 boolean hasDeviceOwner(); 147 String getDeviceOwnerName(); 148 void clearDeviceOwner(String packageName); 149 int getDeviceOwnerUserId(); 150 151 boolean setProfileOwner(in ComponentName who, String ownerName, int userHandle); 152 ComponentName getProfileOwner(int userHandle); 153 String getProfileOwnerName(int userHandle); 154 void setProfileEnabled(in ComponentName who); 155 void setProfileName(in ComponentName who, String profileName); 156 void clearProfileOwner(in ComponentName who); 157 boolean hasUserSetupCompleted(); 158 159 void setDeviceOwnerLockScreenInfo(in ComponentName who, CharSequence deviceOwnerInfo); 160 CharSequence getDeviceOwnerLockScreenInfo(); 161 162 String[] setPackagesSuspended(in ComponentName admin, in String callerPackage, in String[] packageNames, boolean suspended); 163 boolean isPackageSuspended(in ComponentName admin, in String callerPackage, String packageName); 164 165 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); 168 boolean approveCaCert(in String alias, int userHandle, boolean approval); 169 boolean isCaCertApproved(in String alias, int userHandle); 170 171 boolean installKeyPair(in ComponentName who, in String callerPackage, in byte[] privKeyBuffer, 172 in byte[] certBuffer, in byte[] certChainBuffer, String alias, boolean requestAccess, 173 boolean isUserSelectable); 174 boolean removeKeyPair(in ComponentName who, in String callerPackage, String alias); 175 boolean generateKeyPair(in ComponentName who, in String callerPackage, in String algorithm, 176 in ParcelableKeyGenParameterSpec keySpec, 177 in int idAttestationFlags, out KeymasterCertificateChain attestationChain); 178 boolean setKeyPairCertificate(in ComponentName who, in String callerPackage, in String alias, 179 in byte[] certBuffer, in byte[] certChainBuffer, boolean isUserSelectable); 180 void choosePrivateKeyAlias(int uid, in Uri uri, in String alias, IBinder aliasCallback); 181 182 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 186 void setCertInstallerPackage(in ComponentName who, String installerPackage); 187 String getCertInstallerPackage(in ComponentName who); 188 189 boolean setAlwaysOnVpnPackage(in ComponentName who, String vpnPackage, boolean lockdown); 190 String getAlwaysOnVpnPackage(in ComponentName who); 191 192 void addPersistentPreferredActivity(in ComponentName admin, in IntentFilter filter, in ComponentName activity); 193 void clearPackagePersistentPreferredActivities(in ComponentName admin, String packageName); 194 195 void setDefaultSmsApplication(in ComponentName admin, String packageName); 196 197 void setApplicationRestrictions(in ComponentName who, in String callerPackage, in String packageName, in Bundle settings); 198 Bundle getApplicationRestrictions(in ComponentName who, in String callerPackage, in String packageName); 199 boolean setApplicationRestrictionsManagingPackage(in ComponentName admin, in String packageName); 200 String getApplicationRestrictionsManagingPackage(in ComponentName admin); 201 boolean isCallerApplicationRestrictionsManagingPackage(in String callerPackage); 202 203 void setRestrictionsProvider(in ComponentName who, in ComponentName provider); 204 ComponentName getRestrictionsProvider(int userHandle); 205 206 void setUserRestriction(in ComponentName who, in String key, boolean enable); 207 Bundle getUserRestrictions(in ComponentName who); 208 void addCrossProfileIntentFilter(in ComponentName admin, in IntentFilter filter, int flags); 209 void clearCrossProfileIntentFilters(in ComponentName admin); 210 211 boolean setPermittedAccessibilityServices(in ComponentName admin,in List packageList); 212 List getPermittedAccessibilityServices(in ComponentName admin); 213 List getPermittedAccessibilityServicesForUser(int userId); 214 boolean isAccessibilityServicePermittedByAdmin(in ComponentName admin, String packageName, int userId); 215 216 boolean setPermittedInputMethods(in ComponentName admin,in List packageList); 217 List getPermittedInputMethods(in ComponentName admin); 218 List getPermittedInputMethodsForCurrentUser(); 219 boolean isInputMethodPermittedByAdmin(in ComponentName admin, String packageName, int userId); 220 221 boolean setPermittedCrossProfileNotificationListeners(in ComponentName admin, in List<String> packageList); 222 List<String> getPermittedCrossProfileNotificationListeners(in ComponentName admin); 223 boolean isNotificationListenerServicePermitted(in String packageName, int userId); 224 225 Intent createAdminSupportIntent(in String restriction); 226 boolean setApplicationHidden(in ComponentName admin, in String callerPackage, in String packageName, boolean hidden); 227 boolean isApplicationHidden(in ComponentName admin, in String callerPackage, in String packageName); 228 229 UserHandle createAndManageUser(in ComponentName who, in String name, in ComponentName profileOwner, in PersistableBundle adminExtras, in int flags); 230 boolean removeUser(in ComponentName who, in UserHandle userHandle); 231 boolean switchUser(in ComponentName who, in UserHandle userHandle); 232 int startUserInBackground(in ComponentName who, in UserHandle userHandle); 233 int stopUser(in ComponentName who, in UserHandle userHandle); 234 int logoutUser(in ComponentName who); 235 List<UserHandle> getSecondaryUsers(in ComponentName who); 236 237 void enableSystemApp(in ComponentName admin, in String callerPackage, in String packageName); 238 int enableSystemAppWithIntent(in ComponentName admin, in String callerPackage, in Intent intent); 239 boolean installExistingPackage(in ComponentName admin, in String callerPackage, in String packageName); 240 241 void setAccountManagementDisabled(in ComponentName who, in String accountType, in boolean disabled); 242 String[] getAccountTypesWithManagementDisabled(); 243 String[] getAccountTypesWithManagementDisabledAsUser(int userId); 244 245 void setLockTaskPackages(in ComponentName who, in String[] packages); 246 String[] getLockTaskPackages(in ComponentName who); 247 boolean isLockTaskPermitted(in String pkg); 248 249 void setLockTaskFeatures(in ComponentName who, int flags); 250 int getLockTaskFeatures(in ComponentName who); 251 252 void setGlobalSetting(in ComponentName who, in String setting, in String value); 253 void setSystemSetting(in ComponentName who, in String setting, in String value); 254 void setSecureSetting(in ComponentName who, in String setting, in String value); 255 256 boolean setTime(in ComponentName who, long millis); 257 boolean setTimeZone(in ComponentName who, String timeZone); 258 259 void setMasterVolumeMuted(in ComponentName admin, boolean on); 260 boolean isMasterVolumeMuted(in ComponentName admin); 261 262 void notifyLockTaskModeChanged(boolean isEnabled, String pkg, int userId); 263 264 void setUninstallBlocked(in ComponentName admin, in String callerPackage, in String packageName, boolean uninstallBlocked); 265 boolean isUninstallBlocked(in ComponentName admin, in String packageName); 266 267 void setCrossProfileCallerIdDisabled(in ComponentName who, boolean disabled); 268 boolean getCrossProfileCallerIdDisabled(in ComponentName who); 269 boolean getCrossProfileCallerIdDisabledForUser(int userId); 270 void setCrossProfileContactsSearchDisabled(in ComponentName who, boolean disabled); 271 boolean getCrossProfileContactsSearchDisabled(in ComponentName who); 272 boolean getCrossProfileContactsSearchDisabledForUser(int userId); 273 void startManagedQuickContact(String lookupKey, long contactId, boolean isContactIdIgnored, long directoryId, in Intent originalIntent); 274 275 void setBluetoothContactSharingDisabled(in ComponentName who, boolean disabled); 276 boolean getBluetoothContactSharingDisabled(in ComponentName who); 277 boolean getBluetoothContactSharingDisabledForUser(int userId); 278 279 void setTrustAgentConfiguration(in ComponentName admin, in ComponentName agent, 280 in PersistableBundle args, boolean parent); 281 List<PersistableBundle> getTrustAgentConfiguration(in ComponentName admin, 282 in ComponentName agent, int userId, boolean parent); 283 284 boolean addCrossProfileWidgetProvider(in ComponentName admin, String packageName); 285 boolean removeCrossProfileWidgetProvider(in ComponentName admin, String packageName); 286 List<String> getCrossProfileWidgetProviders(in ComponentName admin); 287 288 void setAutoTimeRequired(in ComponentName who, boolean required); 289 boolean getAutoTimeRequired(); 290 291 void setForceEphemeralUsers(in ComponentName who, boolean forceEpehemeralUsers); 292 boolean getForceEphemeralUsers(in ComponentName who); 293 294 boolean isRemovingAdmin(in ComponentName adminReceiver, int userHandle); 295 296 void setUserIcon(in ComponentName admin, in Bitmap icon); 297 298 void setSystemUpdatePolicy(in ComponentName who, in SystemUpdatePolicy policy); 299 SystemUpdatePolicy getSystemUpdatePolicy(); 300 void clearSystemUpdatePolicyFreezePeriodRecord(); 301 302 boolean setKeyguardDisabled(in ComponentName admin, boolean disabled); 303 boolean setStatusBarDisabled(in ComponentName who, boolean disabled); 304 boolean getDoNotAskCredentialsOnBoot(); 305 306 void notifyPendingSystemUpdate(in SystemUpdateInfo info); 307 SystemUpdateInfo getPendingSystemUpdate(in ComponentName admin); 308 309 void setPermissionPolicy(in ComponentName admin, in String callerPackage, int policy); 310 int getPermissionPolicy(in ComponentName admin); 311 boolean setPermissionGrantState(in ComponentName admin, in String callerPackage, String packageName, 312 String permission, int grantState); 313 int getPermissionGrantState(in ComponentName admin, in String callerPackage, String packageName, String permission); 314 boolean isProvisioningAllowed(String action, String packageName); 315 int checkProvisioningPreCondition(String action, String packageName); 316 void setKeepUninstalledPackages(in ComponentName admin, in String callerPackage, in List<String> packageList); 317 List<String> getKeepUninstalledPackages(in ComponentName admin, in String callerPackage); 318 boolean isManagedProfile(in ComponentName admin); 319 boolean isSystemOnlyUser(in ComponentName admin); 320 String getWifiMacAddress(in ComponentName admin); 321 void reboot(in ComponentName admin); 322 323 void setShortSupportMessage(in ComponentName admin, in CharSequence message); 324 CharSequence getShortSupportMessage(in ComponentName admin); 325 void setLongSupportMessage(in ComponentName admin, in CharSequence message); 326 CharSequence getLongSupportMessage(in ComponentName admin); 327 328 CharSequence getShortSupportMessageForUser(in ComponentName admin, int userHandle); 329 CharSequence getLongSupportMessageForUser(in ComponentName admin, int userHandle); 330 331 boolean isSeparateProfileChallengeAllowed(int userHandle); 332 333 void setOrganizationColor(in ComponentName admin, in int color); 334 void setOrganizationColorForUser(in int color, in int userId); 335 int getOrganizationColor(in ComponentName admin); 336 int getOrganizationColorForUser(int userHandle); 337 338 void setOrganizationName(in ComponentName admin, in CharSequence title); 339 CharSequence getOrganizationName(in ComponentName admin); 340 CharSequence getDeviceOwnerOrganizationName(); 341 CharSequence getOrganizationNameForUser(int userHandle); 342 343 int getUserProvisioningState(); 344 void setUserProvisioningState(int state, int userHandle); 345 346 void setAffiliationIds(in ComponentName admin, in List<String> ids); 347 List<String> getAffiliationIds(in ComponentName admin); 348 boolean isAffiliatedUser(); 349 350 void setSecurityLoggingEnabled(in ComponentName admin, boolean enabled); 351 boolean isSecurityLoggingEnabled(in ComponentName admin); 352 ParceledListSlice retrieveSecurityLogs(in ComponentName admin); 353 ParceledListSlice retrievePreRebootSecurityLogs(in ComponentName admin); 354 long forceSecurityLogs(); 355 356 boolean isUninstallInQueue(String packageName); 357 void uninstallPackageWithActiveAdmins(String packageName); 358 359 boolean isDeviceProvisioned(); 360 boolean isDeviceProvisioningConfigApplied(); 361 void setDeviceProvisioningConfigApplied(); 362 363 void forceUpdateUserSetupComplete(); 364 365 void setBackupServiceEnabled(in ComponentName admin, boolean enabled); 366 boolean isBackupServiceEnabled(in ComponentName admin); 367 boolean setMandatoryBackupTransport(in ComponentName admin, in ComponentName backupTransportComponent); 368 ComponentName getMandatoryBackupTransport(); 369 370 void setNetworkLoggingEnabled(in ComponentName admin, boolean enabled); 371 boolean isNetworkLoggingEnabled(in ComponentName admin); 372 List<NetworkEvent> retrieveNetworkLogs(in ComponentName admin, long batchToken); 373 374 boolean bindDeviceAdminServiceAsUser(in ComponentName admin, 375 IApplicationThread caller, IBinder token, in Intent service, 376 IServiceConnection connection, int flags, int targetUserId); 377 List<UserHandle> getBindDeviceAdminTargetUsers(in ComponentName admin); 378 boolean isEphemeralUser(in ComponentName admin); 379 380 long getLastSecurityLogRetrievalTime(); 381 long getLastBugReportRequestTime(); 382 long getLastNetworkLogRetrievalTime(); 383 384 boolean setResetPasswordToken(in ComponentName admin, in byte[] token); 385 boolean clearResetPasswordToken(in ComponentName admin); 386 boolean isResetPasswordTokenActive(in ComponentName admin); 387 boolean resetPasswordWithToken(in ComponentName admin, String password, in byte[] token, int flags); 388 389 boolean isCurrentInputMethodSetByOwner(); 390 StringParceledListSlice getOwnerInstalledCaCerts(in UserHandle user); 391 392 void clearApplicationUserData(in ComponentName admin, in String packageName, in IPackageDataObserver callback); 393 394 void setLogoutEnabled(in ComponentName admin, boolean enabled); 395 boolean isLogoutEnabled(); 396 397 List<String> getDisallowedSystemApps(in ComponentName admin, int userId, String provisioningAction); 398 399 void transferOwnership(in ComponentName admin, in ComponentName target, in PersistableBundle bundle); 400 PersistableBundle getTransferOwnershipBundle(); 401 402 void setStartUserSessionMessage(in ComponentName admin, in CharSequence startUserSessionMessage); 403 void setEndUserSessionMessage(in ComponentName admin, in CharSequence endUserSessionMessage); 404 CharSequence getStartUserSessionMessage(in ComponentName admin); 405 CharSequence getEndUserSessionMessage(in ComponentName admin); 406 407 List<String> setMeteredDataDisabled(in ComponentName admin, in List<String> packageNames); 408 List<String> getMeteredDataDisabled(in ComponentName admin); 409 410 int addOverrideApn(in ComponentName admin, in ApnSetting apnSetting); 411 boolean updateOverrideApn(in ComponentName admin, int apnId, in ApnSetting apnSetting); 412 boolean removeOverrideApn(in ComponentName admin, int apnId); 413 List<ApnSetting> getOverrideApns(in ComponentName admin); 414 void setOverrideApnsEnabled(in ComponentName admin, boolean enabled); 415 boolean isOverrideApnEnabled(in ComponentName admin); 416 417 boolean isMeteredDataDisabledForUser(in ComponentName admin, String packageName, int userId); 418} 419