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 18 package android.app.admin; 19 20 import android.app.admin.SystemUpdatePolicy; 21 import android.content.ComponentName; 22 import android.content.Intent; 23 import android.content.IntentFilter; 24 import android.graphics.Bitmap; 25 import android.net.ProxyInfo; 26 import android.net.Uri; 27 import android.os.Bundle; 28 import android.os.PersistableBundle; 29 import android.os.RemoteCallback; 30 import android.os.UserHandle; 31 import java.util.List; 32 33 /** 34 * Internal IPC interface to the device policy service. 35 * {@hide} 36 */ 37 interface IDevicePolicyManager { setPasswordQuality(in ComponentName who, int quality)38 void setPasswordQuality(in ComponentName who, int quality); getPasswordQuality(in ComponentName who, int userHandle)39 int getPasswordQuality(in ComponentName who, int userHandle); 40 setPasswordMinimumLength(in ComponentName who, int length)41 void setPasswordMinimumLength(in ComponentName who, int length); getPasswordMinimumLength(in ComponentName who, int userHandle)42 int getPasswordMinimumLength(in ComponentName who, int userHandle); 43 setPasswordMinimumUpperCase(in ComponentName who, int length)44 void setPasswordMinimumUpperCase(in ComponentName who, int length); getPasswordMinimumUpperCase(in ComponentName who, int userHandle)45 int getPasswordMinimumUpperCase(in ComponentName who, int userHandle); 46 setPasswordMinimumLowerCase(in ComponentName who, int length)47 void setPasswordMinimumLowerCase(in ComponentName who, int length); getPasswordMinimumLowerCase(in ComponentName who, int userHandle)48 int getPasswordMinimumLowerCase(in ComponentName who, int userHandle); 49 setPasswordMinimumLetters(in ComponentName who, int length)50 void setPasswordMinimumLetters(in ComponentName who, int length); getPasswordMinimumLetters(in ComponentName who, int userHandle)51 int getPasswordMinimumLetters(in ComponentName who, int userHandle); 52 setPasswordMinimumNumeric(in ComponentName who, int length)53 void setPasswordMinimumNumeric(in ComponentName who, int length); getPasswordMinimumNumeric(in ComponentName who, int userHandle)54 int getPasswordMinimumNumeric(in ComponentName who, int userHandle); 55 setPasswordMinimumSymbols(in ComponentName who, int length)56 void setPasswordMinimumSymbols(in ComponentName who, int length); getPasswordMinimumSymbols(in ComponentName who, int userHandle)57 int getPasswordMinimumSymbols(in ComponentName who, int userHandle); 58 setPasswordMinimumNonLetter(in ComponentName who, int length)59 void setPasswordMinimumNonLetter(in ComponentName who, int length); getPasswordMinimumNonLetter(in ComponentName who, int userHandle)60 int getPasswordMinimumNonLetter(in ComponentName who, int userHandle); 61 setPasswordHistoryLength(in ComponentName who, int length)62 void setPasswordHistoryLength(in ComponentName who, int length); getPasswordHistoryLength(in ComponentName who, int userHandle)63 int getPasswordHistoryLength(in ComponentName who, int userHandle); 64 setPasswordExpirationTimeout(in ComponentName who, long expiration)65 void setPasswordExpirationTimeout(in ComponentName who, long expiration); getPasswordExpirationTimeout(in ComponentName who, int userHandle)66 long getPasswordExpirationTimeout(in ComponentName who, int userHandle); 67 getPasswordExpiration(in ComponentName who, int userHandle)68 long getPasswordExpiration(in ComponentName who, int userHandle); 69 isActivePasswordSufficient(int userHandle)70 boolean isActivePasswordSufficient(int userHandle); getCurrentFailedPasswordAttempts(int userHandle)71 int getCurrentFailedPasswordAttempts(int userHandle); getProfileWithMinimumFailedPasswordsForWipe(int userHandle)72 int getProfileWithMinimumFailedPasswordsForWipe(int userHandle); 73 setMaximumFailedPasswordsForWipe(in ComponentName admin, int num)74 void setMaximumFailedPasswordsForWipe(in ComponentName admin, int num); getMaximumFailedPasswordsForWipe(in ComponentName admin, int userHandle)75 int getMaximumFailedPasswordsForWipe(in ComponentName admin, int userHandle); 76 resetPassword(String password, int flags)77 boolean resetPassword(String password, int flags); 78 setMaximumTimeToLock(in ComponentName who, long timeMs)79 void setMaximumTimeToLock(in ComponentName who, long timeMs); getMaximumTimeToLock(in ComponentName who, int userHandle)80 long getMaximumTimeToLock(in ComponentName who, int userHandle); 81 lockNow()82 void lockNow(); 83 wipeData(int flags, int userHandle)84 void wipeData(int flags, int userHandle); 85 setGlobalProxy(in ComponentName admin, String proxySpec, String exclusionList)86 ComponentName setGlobalProxy(in ComponentName admin, String proxySpec, String exclusionList); getGlobalProxyAdmin(int userHandle)87 ComponentName getGlobalProxyAdmin(int userHandle); setRecommendedGlobalProxy(in ComponentName admin, in ProxyInfo proxyInfo)88 void setRecommendedGlobalProxy(in ComponentName admin, in ProxyInfo proxyInfo); 89 setStorageEncryption(in ComponentName who, boolean encrypt)90 int setStorageEncryption(in ComponentName who, boolean encrypt); getStorageEncryption(in ComponentName who, int userHandle)91 boolean getStorageEncryption(in ComponentName who, int userHandle); getStorageEncryptionStatus(int userHandle)92 int getStorageEncryptionStatus(int userHandle); 93 setCameraDisabled(in ComponentName who, boolean disabled)94 void setCameraDisabled(in ComponentName who, boolean disabled); getCameraDisabled(in ComponentName who, int userHandle)95 boolean getCameraDisabled(in ComponentName who, int userHandle); 96 setScreenCaptureDisabled(in ComponentName who, boolean disabled)97 void setScreenCaptureDisabled(in ComponentName who, boolean disabled); getScreenCaptureDisabled(in ComponentName who, int userHandle)98 boolean getScreenCaptureDisabled(in ComponentName who, int userHandle); 99 setKeyguardDisabledFeatures(in ComponentName who, int which)100 void setKeyguardDisabledFeatures(in ComponentName who, int which); getKeyguardDisabledFeatures(in ComponentName who, int userHandle)101 int getKeyguardDisabledFeatures(in ComponentName who, int userHandle); 102 setActiveAdmin(in ComponentName policyReceiver, boolean refreshing, int userHandle)103 void setActiveAdmin(in ComponentName policyReceiver, boolean refreshing, int userHandle); isAdminActive(in ComponentName policyReceiver, int userHandle)104 boolean isAdminActive(in ComponentName policyReceiver, int userHandle); getActiveAdmins(int userHandle)105 List<ComponentName> getActiveAdmins(int userHandle); packageHasActiveAdmins(String packageName, int userHandle)106 boolean packageHasActiveAdmins(String packageName, int userHandle); getRemoveWarning(in ComponentName policyReceiver, in RemoteCallback result, int userHandle)107 void getRemoveWarning(in ComponentName policyReceiver, in RemoteCallback result, int userHandle); removeActiveAdmin(in ComponentName policyReceiver, int userHandle)108 void removeActiveAdmin(in ComponentName policyReceiver, int userHandle); hasGrantedPolicy(in ComponentName policyReceiver, int usesPolicy, int userHandle)109 boolean hasGrantedPolicy(in ComponentName policyReceiver, int usesPolicy, int userHandle); 110 setActivePasswordState(int quality, int length, int letters, int uppercase, int lowercase, int numbers, int symbols, int nonletter, int userHandle)111 void setActivePasswordState(int quality, int length, int letters, int uppercase, int lowercase, 112 int numbers, int symbols, int nonletter, int userHandle); reportFailedPasswordAttempt(int userHandle)113 void reportFailedPasswordAttempt(int userHandle); reportSuccessfulPasswordAttempt(int userHandle)114 void reportSuccessfulPasswordAttempt(int userHandle); 115 setDeviceOwner(String packageName, String ownerName)116 boolean setDeviceOwner(String packageName, String ownerName); isDeviceOwner(String packageName)117 boolean isDeviceOwner(String packageName); getDeviceOwner()118 String getDeviceOwner(); getDeviceOwnerName()119 String getDeviceOwnerName(); clearDeviceOwner(String packageName)120 void clearDeviceOwner(String packageName); 121 setProfileOwner(in ComponentName who, String ownerName, int userHandle)122 boolean setProfileOwner(in ComponentName who, String ownerName, int userHandle); getProfileOwner(int userHandle)123 ComponentName getProfileOwner(int userHandle); getProfileOwnerName(int userHandle)124 String getProfileOwnerName(int userHandle); setProfileEnabled(in ComponentName who)125 void setProfileEnabled(in ComponentName who); setProfileName(in ComponentName who, String profileName)126 void setProfileName(in ComponentName who, String profileName); clearProfileOwner(in ComponentName who)127 void clearProfileOwner(in ComponentName who); hasUserSetupCompleted()128 boolean hasUserSetupCompleted(); 129 installCaCert(in ComponentName admin, in byte[] certBuffer)130 boolean installCaCert(in ComponentName admin, in byte[] certBuffer); uninstallCaCerts(in ComponentName admin, in String[] aliases)131 void uninstallCaCerts(in ComponentName admin, in String[] aliases); enforceCanManageCaCerts(in ComponentName admin)132 void enforceCanManageCaCerts(in ComponentName admin); 133 installKeyPair(in ComponentName who, in byte[] privKeyBuffer, in byte[] certBuffer, String alias)134 boolean installKeyPair(in ComponentName who, in byte[] privKeyBuffer, in byte[] certBuffer, String alias); choosePrivateKeyAlias(int uid, in Uri uri, in String alias, IBinder aliasCallback)135 void choosePrivateKeyAlias(int uid, in Uri uri, in String alias, IBinder aliasCallback); 136 setCertInstallerPackage(in ComponentName who, String installerPackage)137 void setCertInstallerPackage(in ComponentName who, String installerPackage); getCertInstallerPackage(in ComponentName who)138 String getCertInstallerPackage(in ComponentName who); 139 addPersistentPreferredActivity(in ComponentName admin, in IntentFilter filter, in ComponentName activity)140 void addPersistentPreferredActivity(in ComponentName admin, in IntentFilter filter, in ComponentName activity); clearPackagePersistentPreferredActivities(in ComponentName admin, String packageName)141 void clearPackagePersistentPreferredActivities(in ComponentName admin, String packageName); 142 setApplicationRestrictions(in ComponentName who, in String packageName, in Bundle settings)143 void setApplicationRestrictions(in ComponentName who, in String packageName, in Bundle settings); getApplicationRestrictions(in ComponentName who, in String packageName)144 Bundle getApplicationRestrictions(in ComponentName who, in String packageName); 145 setRestrictionsProvider(in ComponentName who, in ComponentName provider)146 void setRestrictionsProvider(in ComponentName who, in ComponentName provider); getRestrictionsProvider(int userHandle)147 ComponentName getRestrictionsProvider(int userHandle); 148 setUserRestriction(in ComponentName who, in String key, boolean enable)149 void setUserRestriction(in ComponentName who, in String key, boolean enable); addCrossProfileIntentFilter(in ComponentName admin, in IntentFilter filter, int flags)150 void addCrossProfileIntentFilter(in ComponentName admin, in IntentFilter filter, int flags); clearCrossProfileIntentFilters(in ComponentName admin)151 void clearCrossProfileIntentFilters(in ComponentName admin); 152 setPermittedAccessibilityServices(in ComponentName admin,in List packageList)153 boolean setPermittedAccessibilityServices(in ComponentName admin,in List packageList); getPermittedAccessibilityServices(in ComponentName admin)154 List getPermittedAccessibilityServices(in ComponentName admin); getPermittedAccessibilityServicesForUser(int userId)155 List getPermittedAccessibilityServicesForUser(int userId); 156 setPermittedInputMethods(in ComponentName admin,in List packageList)157 boolean setPermittedInputMethods(in ComponentName admin,in List packageList); getPermittedInputMethods(in ComponentName admin)158 List getPermittedInputMethods(in ComponentName admin); getPermittedInputMethodsForCurrentUser()159 List getPermittedInputMethodsForCurrentUser(); 160 setApplicationHidden(in ComponentName admin, in String packageName, boolean hidden)161 boolean setApplicationHidden(in ComponentName admin, in String packageName, boolean hidden); isApplicationHidden(in ComponentName admin, in String packageName)162 boolean isApplicationHidden(in ComponentName admin, in String packageName); 163 createUser(in ComponentName who, in String name)164 UserHandle createUser(in ComponentName who, in String name); createAndInitializeUser(in ComponentName who, in String name, in String profileOwnerName, in ComponentName profileOwnerComponent, in Bundle adminExtras)165 UserHandle createAndInitializeUser(in ComponentName who, in String name, in String profileOwnerName, in ComponentName profileOwnerComponent, in Bundle adminExtras); removeUser(in ComponentName who, in UserHandle userHandle)166 boolean removeUser(in ComponentName who, in UserHandle userHandle); switchUser(in ComponentName who, in UserHandle userHandle)167 boolean switchUser(in ComponentName who, in UserHandle userHandle); 168 enableSystemApp(in ComponentName admin, in String packageName)169 void enableSystemApp(in ComponentName admin, in String packageName); enableSystemAppWithIntent(in ComponentName admin, in Intent intent)170 int enableSystemAppWithIntent(in ComponentName admin, in Intent intent); 171 setAccountManagementDisabled(in ComponentName who, in String accountType, in boolean disabled)172 void setAccountManagementDisabled(in ComponentName who, in String accountType, in boolean disabled); getAccountTypesWithManagementDisabled()173 String[] getAccountTypesWithManagementDisabled(); getAccountTypesWithManagementDisabledAsUser(int userId)174 String[] getAccountTypesWithManagementDisabledAsUser(int userId); 175 setLockTaskPackages(in ComponentName who, in String[] packages)176 void setLockTaskPackages(in ComponentName who, in String[] packages); getLockTaskPackages(in ComponentName who)177 String[] getLockTaskPackages(in ComponentName who); isLockTaskPermitted(in String pkg)178 boolean isLockTaskPermitted(in String pkg); 179 setGlobalSetting(in ComponentName who, in String setting, in String value)180 void setGlobalSetting(in ComponentName who, in String setting, in String value); setSecureSetting(in ComponentName who, in String setting, in String value)181 void setSecureSetting(in ComponentName who, in String setting, in String value); 182 setMasterVolumeMuted(in ComponentName admin, boolean on)183 void setMasterVolumeMuted(in ComponentName admin, boolean on); isMasterVolumeMuted(in ComponentName admin)184 boolean isMasterVolumeMuted(in ComponentName admin); 185 notifyLockTaskModeChanged(boolean isEnabled, String pkg, int userId)186 void notifyLockTaskModeChanged(boolean isEnabled, String pkg, int userId); 187 setUninstallBlocked(in ComponentName admin, in String packageName, boolean uninstallBlocked)188 void setUninstallBlocked(in ComponentName admin, in String packageName, boolean uninstallBlocked); isUninstallBlocked(in ComponentName admin, in String packageName)189 boolean isUninstallBlocked(in ComponentName admin, in String packageName); 190 setCrossProfileCallerIdDisabled(in ComponentName who, boolean disabled)191 void setCrossProfileCallerIdDisabled(in ComponentName who, boolean disabled); getCrossProfileCallerIdDisabled(in ComponentName who)192 boolean getCrossProfileCallerIdDisabled(in ComponentName who); getCrossProfileCallerIdDisabledForUser(int userId)193 boolean getCrossProfileCallerIdDisabledForUser(int userId); startManagedQuickContact(String lookupKey, long contactId, in Intent originalIntent)194 void startManagedQuickContact(String lookupKey, long contactId, in Intent originalIntent); 195 setBluetoothContactSharingDisabled(in ComponentName who, boolean disabled)196 void setBluetoothContactSharingDisabled(in ComponentName who, boolean disabled); getBluetoothContactSharingDisabled(in ComponentName who)197 boolean getBluetoothContactSharingDisabled(in ComponentName who); getBluetoothContactSharingDisabledForUser(int userId)198 boolean getBluetoothContactSharingDisabledForUser(int userId); 199 setTrustAgentConfiguration(in ComponentName admin, in ComponentName agent, in PersistableBundle args)200 void setTrustAgentConfiguration(in ComponentName admin, in ComponentName agent, 201 in PersistableBundle args); getTrustAgentConfiguration(in ComponentName admin, in ComponentName agent, int userId)202 List<PersistableBundle> getTrustAgentConfiguration(in ComponentName admin, 203 in ComponentName agent, int userId); 204 addCrossProfileWidgetProvider(in ComponentName admin, String packageName)205 boolean addCrossProfileWidgetProvider(in ComponentName admin, String packageName); removeCrossProfileWidgetProvider(in ComponentName admin, String packageName)206 boolean removeCrossProfileWidgetProvider(in ComponentName admin, String packageName); getCrossProfileWidgetProviders(in ComponentName admin)207 List<String> getCrossProfileWidgetProviders(in ComponentName admin); 208 setAutoTimeRequired(in ComponentName who, boolean required)209 void setAutoTimeRequired(in ComponentName who, boolean required); getAutoTimeRequired()210 boolean getAutoTimeRequired(); 211 isRemovingAdmin(in ComponentName adminReceiver, int userHandle)212 boolean isRemovingAdmin(in ComponentName adminReceiver, int userHandle); 213 setUserEnabled(in ComponentName who)214 boolean setUserEnabled(in ComponentName who); isDeviceInitializer(String packageName)215 boolean isDeviceInitializer(String packageName); clearDeviceInitializer(in ComponentName who)216 void clearDeviceInitializer(in ComponentName who); setDeviceInitializer(in ComponentName who, in ComponentName initializer)217 boolean setDeviceInitializer(in ComponentName who, in ComponentName initializer); getDeviceInitializer()218 String getDeviceInitializer(); getDeviceInitializerComponent()219 ComponentName getDeviceInitializerComponent(); 220 setUserIcon(in ComponentName admin, in Bitmap icon)221 void setUserIcon(in ComponentName admin, in Bitmap icon); 222 setSystemUpdatePolicy(in ComponentName who, in SystemUpdatePolicy policy)223 void setSystemUpdatePolicy(in ComponentName who, in SystemUpdatePolicy policy); getSystemUpdatePolicy()224 SystemUpdatePolicy getSystemUpdatePolicy(); 225 setKeyguardDisabled(in ComponentName admin, boolean disabled)226 boolean setKeyguardDisabled(in ComponentName admin, boolean disabled); setStatusBarDisabled(in ComponentName who, boolean disabled)227 boolean setStatusBarDisabled(in ComponentName who, boolean disabled); getDoNotAskCredentialsOnBoot()228 boolean getDoNotAskCredentialsOnBoot(); 229 notifyPendingSystemUpdate(in long updateReceivedTime)230 void notifyPendingSystemUpdate(in long updateReceivedTime); 231 setPermissionPolicy(in ComponentName admin, int policy)232 void setPermissionPolicy(in ComponentName admin, int policy); getPermissionPolicy(in ComponentName admin)233 int getPermissionPolicy(in ComponentName admin); setPermissionGrantState(in ComponentName admin, String packageName, String permission, int grantState)234 boolean setPermissionGrantState(in ComponentName admin, String packageName, 235 String permission, int grantState); getPermissionGrantState(in ComponentName admin, String packageName, String permission)236 int getPermissionGrantState(in ComponentName admin, String packageName, String permission); 237 } 238