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