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