Merge "Minor renamings in DevicePolicyManager" into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
045cc2ab0b
@@ -1075,7 +1075,7 @@ package android.app.admin {
|
||||
}
|
||||
|
||||
public class DevicePolicyManager {
|
||||
method @RequiresPermission(android.Manifest.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS) public int checkProvisioningPreCondition(@NonNull String, @NonNull String);
|
||||
method @RequiresPermission(android.Manifest.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS) public int checkProvisioningPrecondition(@NonNull String, @NonNull String);
|
||||
method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS) public android.os.UserHandle createAndProvisionManagedProfile(@NonNull android.app.admin.ManagedProfileProvisioningParams) throws android.app.admin.ProvisioningException;
|
||||
method @Nullable public android.content.Intent createProvisioningIntentFromNfcIntent(@NonNull android.content.Intent);
|
||||
method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public boolean getBluetoothContactSharingDisabled(@NonNull android.os.UserHandle);
|
||||
@@ -1128,21 +1128,6 @@ package android.app.admin {
|
||||
field public static final String ACTION_SET_PROFILE_OWNER = "android.app.action.SET_PROFILE_OWNER";
|
||||
field @Deprecated public static final String ACTION_STATE_USER_SETUP_COMPLETE = "android.app.action.STATE_USER_SETUP_COMPLETE";
|
||||
field @RequiresPermission(android.Manifest.permission.LAUNCH_DEVICE_MANAGER_SETUP) public static final String ACTION_UPDATE_DEVICE_MANAGEMENT_ROLE_HOLDER = "android.app.action.UPDATE_DEVICE_MANAGEMENT_ROLE_HOLDER";
|
||||
field public static final int CODE_ACCOUNTS_NOT_EMPTY = 6; // 0x6
|
||||
field public static final int CODE_CANNOT_ADD_MANAGED_PROFILE = 11; // 0xb
|
||||
field public static final int CODE_DEVICE_ADMIN_NOT_SUPPORTED = 13; // 0xd
|
||||
field public static final int CODE_HAS_DEVICE_OWNER = 1; // 0x1
|
||||
field public static final int CODE_HAS_PAIRED = 8; // 0x8
|
||||
field public static final int CODE_MANAGED_USERS_NOT_SUPPORTED = 9; // 0x9
|
||||
field public static final int CODE_NONSYSTEM_USER_EXISTS = 5; // 0x5
|
||||
field public static final int CODE_NOT_SYSTEM_USER = 7; // 0x7
|
||||
field public static final int CODE_OK = 0; // 0x0
|
||||
field public static final int CODE_PROVISIONING_NOT_ALLOWED_FOR_NON_DEVELOPER_USERS = 15; // 0xf
|
||||
field public static final int CODE_SYSTEM_USER = 10; // 0xa
|
||||
field public static final int CODE_UNKNOWN_ERROR = -1; // 0xffffffff
|
||||
field public static final int CODE_USER_HAS_PROFILE_OWNER = 2; // 0x2
|
||||
field public static final int CODE_USER_NOT_RUNNING = 3; // 0x3
|
||||
field public static final int CODE_USER_SETUP_COMPLETED = 4; // 0x4
|
||||
field public static final String EXTRA_FORCE_UPDATE_ROLE_HOLDER = "android.app.extra.FORCE_UPDATE_ROLE_HOLDER";
|
||||
field public static final String EXTRA_LOST_MODE_LOCATION = "android.app.extra.LOST_MODE_LOCATION";
|
||||
field public static final String EXTRA_PROFILE_OWNER_NAME = "android.app.extra.PROFILE_OWNER_NAME";
|
||||
@@ -1185,6 +1170,21 @@ package android.app.admin {
|
||||
field public static final int STATE_USER_SETUP_FINALIZED = 3; // 0x3
|
||||
field public static final int STATE_USER_SETUP_INCOMPLETE = 1; // 0x1
|
||||
field public static final int STATE_USER_UNMANAGED = 0; // 0x0
|
||||
field public static final int STATUS_ACCOUNTS_NOT_EMPTY = 6; // 0x6
|
||||
field public static final int STATUS_CANNOT_ADD_MANAGED_PROFILE = 11; // 0xb
|
||||
field public static final int STATUS_DEVICE_ADMIN_NOT_SUPPORTED = 13; // 0xd
|
||||
field public static final int STATUS_HAS_DEVICE_OWNER = 1; // 0x1
|
||||
field public static final int STATUS_HAS_PAIRED = 8; // 0x8
|
||||
field public static final int STATUS_MANAGED_USERS_NOT_SUPPORTED = 9; // 0x9
|
||||
field public static final int STATUS_NONSYSTEM_USER_EXISTS = 5; // 0x5
|
||||
field public static final int STATUS_NOT_SYSTEM_USER = 7; // 0x7
|
||||
field public static final int STATUS_OK = 0; // 0x0
|
||||
field public static final int STATUS_PROVISIONING_NOT_ALLOWED_FOR_NON_DEVELOPER_USERS = 15; // 0xf
|
||||
field public static final int STATUS_SYSTEM_USER = 10; // 0xa
|
||||
field public static final int STATUS_UNKNOWN_ERROR = -1; // 0xffffffff
|
||||
field public static final int STATUS_USER_HAS_PROFILE_OWNER = 2; // 0x2
|
||||
field public static final int STATUS_USER_NOT_RUNNING = 3; // 0x3
|
||||
field public static final int STATUS_USER_SETUP_COMPLETED = 4; // 0x4
|
||||
}
|
||||
|
||||
public static final class DevicePolicyResources.Strings {
|
||||
|
||||
@@ -525,7 +525,6 @@ package android.app.admin {
|
||||
method @RequiresPermission(android.Manifest.permission.MANAGE_DEVICE_ADMINS) public void setNextOperationSafety(int, int);
|
||||
field public static final String ACTION_DATA_SHARING_RESTRICTION_APPLIED = "android.app.action.DATA_SHARING_RESTRICTION_APPLIED";
|
||||
field public static final String ACTION_DEVICE_POLICY_CONSTANTS_CHANGED = "android.app.action.DEVICE_POLICY_CONSTANTS_CHANGED";
|
||||
field @Deprecated public static final int CODE_SPLIT_SYSTEM_USER_DEVICE_SYSTEM_USER = 14; // 0xe
|
||||
field public static final int DEVICE_OWNER_TYPE_DEFAULT = 0; // 0x0
|
||||
field public static final int DEVICE_OWNER_TYPE_FINANCED = 1; // 0x1
|
||||
field public static final int OPERATION_CLEAR_APPLICATION_USER_DATA = 23; // 0x17
|
||||
@@ -569,6 +568,7 @@ package android.app.admin {
|
||||
field public static final int OPERATION_SWITCH_USER = 2; // 0x2
|
||||
field public static final int OPERATION_UNINSTALL_CA_CERT = 40; // 0x28
|
||||
field public static final int OPERATION_WIPE_DATA = 8; // 0x8
|
||||
field @Deprecated public static final int STATUS_SPLIT_SYSTEM_USER_DEVICE_SYSTEM_USER = 14; // 0xe
|
||||
}
|
||||
|
||||
public static final class SecurityLog.SecurityEvent implements android.os.Parcelable {
|
||||
|
||||
@@ -2523,7 +2523,7 @@ public class DevicePolicyManager {
|
||||
public @interface UserProvisioningState {}
|
||||
|
||||
/**
|
||||
* Result code for {@link #checkProvisioningPreCondition}.
|
||||
* Result code for {@link #checkProvisioningPrecondition}.
|
||||
*
|
||||
* <p>Unknown error code returned for {@link #ACTION_PROVISION_MANAGED_DEVICE},
|
||||
* {@link #ACTION_PROVISION_MANAGED_PROFILE} and {@link #ACTION_PROVISION_MANAGED_USER}.
|
||||
@@ -2531,10 +2531,10 @@ public class DevicePolicyManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int CODE_UNKNOWN_ERROR = -1;
|
||||
public static final int STATUS_UNKNOWN_ERROR = -1;
|
||||
|
||||
/**
|
||||
* Result code for {@link #checkProvisioningPreCondition}.
|
||||
* Result code for {@link #checkProvisioningPrecondition}.
|
||||
*
|
||||
* <p>Returned for {@link #ACTION_PROVISION_MANAGED_DEVICE},
|
||||
* {@link #ACTION_PROVISION_MANAGED_PROFILE} and {@link #ACTION_PROVISION_MANAGED_USER}
|
||||
@@ -2543,10 +2543,10 @@ public class DevicePolicyManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int CODE_OK = 0;
|
||||
public static final int STATUS_OK = 0;
|
||||
|
||||
/**
|
||||
* Result code for {@link #checkProvisioningPreCondition}.
|
||||
* Result code for {@link #checkProvisioningPrecondition}.
|
||||
*
|
||||
* <p>Returned for {@link #ACTION_PROVISION_MANAGED_DEVICE} when the device already has a
|
||||
* device owner.
|
||||
@@ -2554,10 +2554,10 @@ public class DevicePolicyManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int CODE_HAS_DEVICE_OWNER = 1;
|
||||
public static final int STATUS_HAS_DEVICE_OWNER = 1;
|
||||
|
||||
/**
|
||||
* Result code for {@link #checkProvisioningPreCondition}.
|
||||
* Result code for {@link #checkProvisioningPrecondition}.
|
||||
*
|
||||
* <p>Returned for {@link #ACTION_PROVISION_MANAGED_DEVICE} when the user has a profile owner
|
||||
* and for {@link #ACTION_PROVISION_MANAGED_PROFILE} when the profile owner is already set.
|
||||
@@ -2565,20 +2565,20 @@ public class DevicePolicyManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int CODE_USER_HAS_PROFILE_OWNER = 2;
|
||||
public static final int STATUS_USER_HAS_PROFILE_OWNER = 2;
|
||||
|
||||
/**
|
||||
* Result code for {@link #checkProvisioningPreCondition}.
|
||||
* Result code for {@link #checkProvisioningPrecondition}.
|
||||
*
|
||||
* <p>Returned for {@link #ACTION_PROVISION_MANAGED_DEVICE} when the user isn't running.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int CODE_USER_NOT_RUNNING = 3;
|
||||
public static final int STATUS_USER_NOT_RUNNING = 3;
|
||||
|
||||
/**
|
||||
* Result code for {@link #checkProvisioningPreCondition}.
|
||||
* Result code for {@link #checkProvisioningPrecondition}.
|
||||
*
|
||||
* <p>Returned for {@link #ACTION_PROVISION_MANAGED_DEVICE} if the device has already been
|
||||
* setup and for {@link #ACTION_PROVISION_MANAGED_USER} if the user has already been setup.
|
||||
@@ -2586,7 +2586,7 @@ public class DevicePolicyManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int CODE_USER_SETUP_COMPLETED = 4;
|
||||
public static final int STATUS_USER_SETUP_COMPLETED = 4;
|
||||
|
||||
/**
|
||||
* Code used to indicate that the device also has a user other than the system user.
|
||||
@@ -2594,7 +2594,7 @@ public class DevicePolicyManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int CODE_NONSYSTEM_USER_EXISTS = 5;
|
||||
public static final int STATUS_NONSYSTEM_USER_EXISTS = 5;
|
||||
|
||||
/**
|
||||
* Code used to indicate that device has an account that prevents provisioning.
|
||||
@@ -2602,20 +2602,20 @@ public class DevicePolicyManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int CODE_ACCOUNTS_NOT_EMPTY = 6;
|
||||
public static final int STATUS_ACCOUNTS_NOT_EMPTY = 6;
|
||||
|
||||
/**
|
||||
* Result code for {@link #checkProvisioningPreCondition}.
|
||||
* Result code for {@link #checkProvisioningPrecondition}.
|
||||
*
|
||||
* <p>Returned for {@link #ACTION_PROVISION_MANAGED_DEVICE} if the user is not a system user.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int CODE_NOT_SYSTEM_USER = 7;
|
||||
public static final int STATUS_NOT_SYSTEM_USER = 7;
|
||||
|
||||
/**
|
||||
* Result code for {@link #checkProvisioningPreCondition}.
|
||||
* Result code for {@link #checkProvisioningPrecondition}.
|
||||
*
|
||||
* <p>Returned for {@link #ACTION_PROVISION_MANAGED_DEVICE} and
|
||||
* {@link #ACTION_PROVISION_MANAGED_USER} when the device is a watch and is already paired.
|
||||
@@ -2623,10 +2623,10 @@ public class DevicePolicyManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int CODE_HAS_PAIRED = 8;
|
||||
public static final int STATUS_HAS_PAIRED = 8;
|
||||
|
||||
/**
|
||||
* Result code for {@link #checkProvisioningPreCondition}.
|
||||
* Result code for {@link #checkProvisioningPrecondition}.
|
||||
*
|
||||
* <p>Returned for {@link #ACTION_PROVISION_MANAGED_PROFILE} and
|
||||
* {@link #ACTION_PROVISION_MANAGED_USER} on devices which do not support managed users.
|
||||
@@ -2635,10 +2635,10 @@ public class DevicePolicyManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int CODE_MANAGED_USERS_NOT_SUPPORTED = 9;
|
||||
public static final int STATUS_MANAGED_USERS_NOT_SUPPORTED = 9;
|
||||
|
||||
/**
|
||||
* Result code for {@link #checkProvisioningPreCondition}.
|
||||
* Result code for {@link #checkProvisioningPrecondition}.
|
||||
*
|
||||
* <p>Returned for {@link #ACTION_PROVISION_MANAGED_USER} if the user is a system user and
|
||||
* for {@link #ACTION_PROVISION_MANAGED_DEVICE} on devices running headless system user mode
|
||||
@@ -2647,10 +2647,10 @@ public class DevicePolicyManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int CODE_SYSTEM_USER = 10;
|
||||
public static final int STATUS_SYSTEM_USER = 10;
|
||||
|
||||
/**
|
||||
* Result code for {@link #checkProvisioningPreCondition}.
|
||||
* Result code for {@link #checkProvisioningPrecondition}.
|
||||
*
|
||||
* <p>Returned for {@link #ACTION_PROVISION_MANAGED_PROFILE} when the user cannot have more
|
||||
* managed profiles.
|
||||
@@ -2658,19 +2658,10 @@ public class DevicePolicyManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int CODE_CANNOT_ADD_MANAGED_PROFILE = 11;
|
||||
public static final int STATUS_CANNOT_ADD_MANAGED_PROFILE = 11;
|
||||
|
||||
/**
|
||||
* TODO (b/137101239): clean up split system user codes
|
||||
*
|
||||
* @hide
|
||||
* @deprecated not used anymore but can't be removed since it's a @TestApi.
|
||||
**/
|
||||
@Deprecated
|
||||
public static final int CODE_NOT_SYSTEM_USER_SPLIT = 12;
|
||||
|
||||
/**
|
||||
* Result code for {@link #checkProvisioningPreCondition}.
|
||||
* Result code for {@link #checkProvisioningPrecondition}.
|
||||
*
|
||||
* <p>Returned for {@link #ACTION_PROVISION_MANAGED_DEVICE},
|
||||
* {@link #ACTION_PROVISION_MANAGED_PROFILE} on devices which do not support device
|
||||
@@ -2679,21 +2670,21 @@ public class DevicePolicyManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int CODE_DEVICE_ADMIN_NOT_SUPPORTED = 13;
|
||||
public static final int STATUS_DEVICE_ADMIN_NOT_SUPPORTED = 13;
|
||||
|
||||
/**
|
||||
* TODO (b/137101239): clean up split system user codes
|
||||
* Result code for {@link #checkProvisioningPreCondition}.
|
||||
* Result code for {@link #checkProvisioningPrecondition}.
|
||||
*
|
||||
* @hide
|
||||
* @deprecated not used anymore but can't be removed since it's a @TestApi.
|
||||
*/
|
||||
@Deprecated
|
||||
@TestApi
|
||||
public static final int CODE_SPLIT_SYSTEM_USER_DEVICE_SYSTEM_USER = 14;
|
||||
public static final int STATUS_SPLIT_SYSTEM_USER_DEVICE_SYSTEM_USER = 14;
|
||||
|
||||
/**
|
||||
* Result code for {@link #checkProvisioningPreCondition}.
|
||||
* Result code for {@link #checkProvisioningPrecondition}.
|
||||
*
|
||||
* <p>Returned for {@link #ACTION_PROVISION_MANAGED_DEVICE} and
|
||||
* {@link #ACTION_PROVISION_MANAGED_PROFILE} on devices which do not support provisioning.
|
||||
@@ -2701,24 +2692,24 @@ public class DevicePolicyManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int CODE_PROVISIONING_NOT_ALLOWED_FOR_NON_DEVELOPER_USERS = 15;
|
||||
public static final int STATUS_PROVISIONING_NOT_ALLOWED_FOR_NON_DEVELOPER_USERS = 15;
|
||||
|
||||
/**
|
||||
* Result codes for {@link #checkProvisioningPreCondition} indicating all the provisioning pre
|
||||
* Result codes for {@link #checkProvisioningPrecondition} indicating all the provisioning pre
|
||||
* conditions.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
@IntDef(prefix = { "CODE_" }, value = {
|
||||
CODE_UNKNOWN_ERROR, CODE_OK, CODE_HAS_DEVICE_OWNER, CODE_USER_HAS_PROFILE_OWNER,
|
||||
CODE_USER_NOT_RUNNING, CODE_USER_SETUP_COMPLETED, CODE_NOT_SYSTEM_USER, CODE_HAS_PAIRED,
|
||||
CODE_MANAGED_USERS_NOT_SUPPORTED, CODE_SYSTEM_USER, CODE_CANNOT_ADD_MANAGED_PROFILE,
|
||||
CODE_NOT_SYSTEM_USER_SPLIT, CODE_DEVICE_ADMIN_NOT_SUPPORTED,
|
||||
CODE_SPLIT_SYSTEM_USER_DEVICE_SYSTEM_USER,
|
||||
CODE_PROVISIONING_NOT_ALLOWED_FOR_NON_DEVELOPER_USERS
|
||||
@IntDef(prefix = { "STATUS_" }, value = {
|
||||
STATUS_UNKNOWN_ERROR, STATUS_OK, STATUS_HAS_DEVICE_OWNER, STATUS_USER_HAS_PROFILE_OWNER,
|
||||
STATUS_USER_NOT_RUNNING, STATUS_USER_SETUP_COMPLETED, STATUS_NOT_SYSTEM_USER,
|
||||
STATUS_HAS_PAIRED, STATUS_MANAGED_USERS_NOT_SUPPORTED, STATUS_SYSTEM_USER,
|
||||
STATUS_CANNOT_ADD_MANAGED_PROFILE, STATUS_DEVICE_ADMIN_NOT_SUPPORTED,
|
||||
STATUS_SPLIT_SYSTEM_USER_DEVICE_SYSTEM_USER,
|
||||
STATUS_PROVISIONING_NOT_ALLOWED_FOR_NON_DEVELOPER_USERS
|
||||
})
|
||||
public @interface ProvisioningPreCondition {}
|
||||
public @interface ProvisioningPrecondition {}
|
||||
|
||||
/**
|
||||
* Disable all configurable SystemUI features during LockTask mode. This includes,
|
||||
@@ -11996,15 +11987,16 @@ public class DevicePolicyManager {
|
||||
* {@link #ACTION_PROVISION_MANAGED_PROFILE}
|
||||
* @param packageName The package of the component that would be set as device, user, or profile
|
||||
* owner.
|
||||
* @return A {@link ProvisioningPreCondition} value indicating whether provisioning is allowed.
|
||||
* @return An int constant value indicating whether provisioning is allowed.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
@RequiresPermission(android.Manifest.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS)
|
||||
public @ProvisioningPreCondition int checkProvisioningPreCondition(
|
||||
@ProvisioningPrecondition
|
||||
public int checkProvisioningPrecondition(
|
||||
@NonNull String action, @NonNull String packageName) {
|
||||
try {
|
||||
return mService.checkProvisioningPreCondition(action, packageName);
|
||||
return mService.checkProvisioningPrecondition(action, packageName);
|
||||
} catch (RemoteException re) {
|
||||
throw re.rethrowFromSystemServer();
|
||||
}
|
||||
@@ -14689,7 +14681,7 @@ public class DevicePolicyManager {
|
||||
* {@link ManagedProfileProvisioningParams#getProfileAdminComponentName()} as the profile
|
||||
* owner.
|
||||
*
|
||||
* <p>The method {@link #checkProvisioningPreCondition} must be returning {@link #CODE_OK}
|
||||
* <p>The method {@link #checkProvisioningPrecondition} must be returning {@link #STATUS_OK}
|
||||
* before calling this method.
|
||||
*
|
||||
* @param provisioningParams Params required to provision a managed profile,
|
||||
@@ -14733,7 +14725,7 @@ public class DevicePolicyManager {
|
||||
* Provisions a managed device and sets the {@code deviceAdminComponentName} as the device
|
||||
* owner.
|
||||
*
|
||||
* <p>The method {@link #checkProvisioningPreCondition} must be returning {@link #CODE_OK}
|
||||
* <p>The method {@link #checkProvisioningPrecondition} must be returning {@link #STATUS_OK}
|
||||
* before calling this method.
|
||||
*
|
||||
* @param provisioningParams Params required to provision a fully managed device,
|
||||
|
||||
@@ -373,7 +373,7 @@ interface IDevicePolicyManager {
|
||||
String permission, int grantState, in RemoteCallback resultReceiver);
|
||||
int getPermissionGrantState(in ComponentName admin, in String callerPackage, String packageName, String permission);
|
||||
boolean isProvisioningAllowed(String action, String packageName);
|
||||
int checkProvisioningPreCondition(String action, String packageName);
|
||||
int checkProvisioningPrecondition(String action, String packageName);
|
||||
void setKeepUninstalledPackages(in ComponentName admin, in String callerPackage, in List<String> packageList);
|
||||
List<String> getKeepUninstalledPackages(in ComponentName admin, in String callerPackage);
|
||||
boolean isManagedProfile(in ComponentName admin);
|
||||
|
||||
@@ -46,7 +46,7 @@ public class ProvisioningException extends AndroidException {
|
||||
/**
|
||||
* Service-specific error code for {@link DevicePolicyManager#provisionFullyManagedDevice} and
|
||||
* {@link DevicePolicyManager#createAndProvisionManagedProfile}:
|
||||
* Indicates the call to {@link DevicePolicyManager#checkProvisioningPreCondition} returned an
|
||||
* Indicates the call to {@link DevicePolicyManager#checkProvisioningPrecondition} returned an
|
||||
* error code.
|
||||
*/
|
||||
public static final int ERROR_PRE_CONDITION_FAILED = 1;
|
||||
|
||||
@@ -31,20 +31,6 @@ import static android.app.admin.DevicePolicyManager.ACTION_PROVISION_MANAGED_DEV
|
||||
import static android.app.admin.DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE;
|
||||
import static android.app.admin.DevicePolicyManager.ACTION_PROVISION_MANAGED_USER;
|
||||
import static android.app.admin.DevicePolicyManager.ACTION_SYSTEM_UPDATE_POLICY_CHANGED;
|
||||
import static android.app.admin.DevicePolicyManager.CODE_ACCOUNTS_NOT_EMPTY;
|
||||
import static android.app.admin.DevicePolicyManager.CODE_CANNOT_ADD_MANAGED_PROFILE;
|
||||
import static android.app.admin.DevicePolicyManager.CODE_DEVICE_ADMIN_NOT_SUPPORTED;
|
||||
import static android.app.admin.DevicePolicyManager.CODE_HAS_DEVICE_OWNER;
|
||||
import static android.app.admin.DevicePolicyManager.CODE_HAS_PAIRED;
|
||||
import static android.app.admin.DevicePolicyManager.CODE_MANAGED_USERS_NOT_SUPPORTED;
|
||||
import static android.app.admin.DevicePolicyManager.CODE_NONSYSTEM_USER_EXISTS;
|
||||
import static android.app.admin.DevicePolicyManager.CODE_NOT_SYSTEM_USER;
|
||||
import static android.app.admin.DevicePolicyManager.CODE_OK;
|
||||
import static android.app.admin.DevicePolicyManager.CODE_PROVISIONING_NOT_ALLOWED_FOR_NON_DEVELOPER_USERS;
|
||||
import static android.app.admin.DevicePolicyManager.CODE_SYSTEM_USER;
|
||||
import static android.app.admin.DevicePolicyManager.CODE_USER_HAS_PROFILE_OWNER;
|
||||
import static android.app.admin.DevicePolicyManager.CODE_USER_NOT_RUNNING;
|
||||
import static android.app.admin.DevicePolicyManager.CODE_USER_SETUP_COMPLETED;
|
||||
import static android.app.admin.DevicePolicyManager.DELEGATION_APP_RESTRICTIONS;
|
||||
import static android.app.admin.DevicePolicyManager.DELEGATION_BLOCK_UNINSTALL;
|
||||
import static android.app.admin.DevicePolicyManager.DELEGATION_CERT_INSTALL;
|
||||
@@ -101,6 +87,20 @@ import static android.app.admin.DevicePolicyManager.PRIVATE_DNS_SET_ERROR_FAILUR
|
||||
import static android.app.admin.DevicePolicyManager.PRIVATE_DNS_SET_NO_ERROR;
|
||||
import static android.app.admin.DevicePolicyManager.PROFILE_KEYGUARD_FEATURES_AFFECT_OWNER;
|
||||
import static android.app.admin.DevicePolicyManager.STATE_USER_UNMANAGED;
|
||||
import static android.app.admin.DevicePolicyManager.STATUS_ACCOUNTS_NOT_EMPTY;
|
||||
import static android.app.admin.DevicePolicyManager.STATUS_CANNOT_ADD_MANAGED_PROFILE;
|
||||
import static android.app.admin.DevicePolicyManager.STATUS_DEVICE_ADMIN_NOT_SUPPORTED;
|
||||
import static android.app.admin.DevicePolicyManager.STATUS_HAS_DEVICE_OWNER;
|
||||
import static android.app.admin.DevicePolicyManager.STATUS_HAS_PAIRED;
|
||||
import static android.app.admin.DevicePolicyManager.STATUS_MANAGED_USERS_NOT_SUPPORTED;
|
||||
import static android.app.admin.DevicePolicyManager.STATUS_NONSYSTEM_USER_EXISTS;
|
||||
import static android.app.admin.DevicePolicyManager.STATUS_NOT_SYSTEM_USER;
|
||||
import static android.app.admin.DevicePolicyManager.STATUS_OK;
|
||||
import static android.app.admin.DevicePolicyManager.STATUS_PROVISIONING_NOT_ALLOWED_FOR_NON_DEVELOPER_USERS;
|
||||
import static android.app.admin.DevicePolicyManager.STATUS_SYSTEM_USER;
|
||||
import static android.app.admin.DevicePolicyManager.STATUS_USER_HAS_PROFILE_OWNER;
|
||||
import static android.app.admin.DevicePolicyManager.STATUS_USER_NOT_RUNNING;
|
||||
import static android.app.admin.DevicePolicyManager.STATUS_USER_SETUP_COMPLETED;
|
||||
import static android.app.admin.DevicePolicyManager.WIPE_EUICC;
|
||||
import static android.app.admin.DevicePolicyManager.WIPE_EXTERNAL_STORAGE;
|
||||
import static android.app.admin.DevicePolicyManager.WIPE_RESET_PROTECTION_DATA;
|
||||
@@ -9658,7 +9658,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
||||
final int code = checkDeviceOwnerProvisioningPreConditionLocked(owner,
|
||||
/* deviceOwnerUserId= */ deviceOwnerUserId, /* callingUserId*/ caller.getUserId(),
|
||||
isAdb(caller), hasIncompatibleAccountsOrNonAdb);
|
||||
if (code != CODE_OK) {
|
||||
if (code != STATUS_OK) {
|
||||
throw new IllegalStateException(
|
||||
computeProvisioningErrorString(code, deviceOwnerUserId));
|
||||
}
|
||||
@@ -9666,25 +9666,25 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
||||
|
||||
private static String computeProvisioningErrorString(int code, @UserIdInt int userId) {
|
||||
switch (code) {
|
||||
case CODE_OK:
|
||||
case STATUS_OK:
|
||||
return "OK";
|
||||
case CODE_HAS_DEVICE_OWNER:
|
||||
case STATUS_HAS_DEVICE_OWNER:
|
||||
return "Trying to set the device owner, but device owner is already set.";
|
||||
case CODE_USER_HAS_PROFILE_OWNER:
|
||||
case STATUS_USER_HAS_PROFILE_OWNER:
|
||||
return "Trying to set the device owner, but the user already has a profile owner.";
|
||||
case CODE_USER_NOT_RUNNING:
|
||||
case STATUS_USER_NOT_RUNNING:
|
||||
return "User " + userId + " not running.";
|
||||
case CODE_NOT_SYSTEM_USER:
|
||||
case STATUS_NOT_SYSTEM_USER:
|
||||
return "User " + userId + " is not system user.";
|
||||
case CODE_USER_SETUP_COMPLETED:
|
||||
case STATUS_USER_SETUP_COMPLETED:
|
||||
return "Cannot set the device owner if the device is already set-up.";
|
||||
case CODE_NONSYSTEM_USER_EXISTS:
|
||||
case STATUS_NONSYSTEM_USER_EXISTS:
|
||||
return "Not allowed to set the device owner because there are already several"
|
||||
+ " users on the device.";
|
||||
case CODE_ACCOUNTS_NOT_EMPTY:
|
||||
case STATUS_ACCOUNTS_NOT_EMPTY:
|
||||
return "Not allowed to set the device owner because there are already some accounts"
|
||||
+ " on the device.";
|
||||
case CODE_HAS_PAIRED:
|
||||
case STATUS_HAS_PAIRED:
|
||||
return "Not allowed to set the device owner because this device has already "
|
||||
+ "paired.";
|
||||
default:
|
||||
@@ -14159,30 +14159,30 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
||||
mInjector.binderRestoreCallingIdentity(ident);
|
||||
}
|
||||
|
||||
return checkProvisioningPreConditionSkipPermission(action, packageName) == CODE_OK;
|
||||
return checkProvisioningPreconditionSkipPermission(action, packageName) == STATUS_OK;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int checkProvisioningPreCondition(String action, String packageName) {
|
||||
public int checkProvisioningPrecondition(String action, String packageName) {
|
||||
Objects.requireNonNull(packageName, "packageName is null");
|
||||
|
||||
Preconditions.checkCallAuthorization(
|
||||
hasCallingOrSelfPermission(permission.MANAGE_PROFILE_AND_DEVICE_OWNERS));
|
||||
|
||||
return checkProvisioningPreConditionSkipPermission(action, packageName);
|
||||
return checkProvisioningPreconditionSkipPermission(action, packageName);
|
||||
}
|
||||
|
||||
private int checkProvisioningPreConditionSkipPermission(String action,
|
||||
private int checkProvisioningPreconditionSkipPermission(String action,
|
||||
String packageName) {
|
||||
if (!mHasFeature) {
|
||||
logMissingFeatureAction("Cannot check provisioning for action " + action);
|
||||
return CODE_DEVICE_ADMIN_NOT_SUPPORTED;
|
||||
return STATUS_DEVICE_ADMIN_NOT_SUPPORTED;
|
||||
}
|
||||
if (!isProvisioningAllowed()) {
|
||||
return CODE_PROVISIONING_NOT_ALLOWED_FOR_NON_DEVELOPER_USERS;
|
||||
return STATUS_PROVISIONING_NOT_ALLOWED_FOR_NON_DEVELOPER_USERS;
|
||||
}
|
||||
final int code = checkProvisioningPreConditionSkipPermissionNoLog(action, packageName);
|
||||
if (code != CODE_OK) {
|
||||
if (code != STATUS_OK) {
|
||||
Slogf.d(LOG_TAG, "checkProvisioningPreCondition(" + action + ", " + packageName
|
||||
+ ") failed: "
|
||||
+ computeProvisioningErrorString(code, mInjector.userHandleGetCallingUserId()));
|
||||
@@ -14230,27 +14230,27 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
||||
@UserIdInt int deviceOwnerUserId, @UserIdInt int callingUserId, boolean isAdb,
|
||||
boolean hasIncompatibleAccountsOrNonAdb) {
|
||||
if (mOwners.hasDeviceOwner()) {
|
||||
return CODE_HAS_DEVICE_OWNER;
|
||||
return STATUS_HAS_DEVICE_OWNER;
|
||||
}
|
||||
if (mOwners.hasProfileOwner(deviceOwnerUserId)) {
|
||||
return CODE_USER_HAS_PROFILE_OWNER;
|
||||
return STATUS_USER_HAS_PROFILE_OWNER;
|
||||
}
|
||||
|
||||
boolean isHeadlessSystemUserMode = mInjector.userManagerIsHeadlessSystemUserMode();
|
||||
// System user is always running in headless system user mode.
|
||||
if (!isHeadlessSystemUserMode
|
||||
&& !mUserManager.isUserRunning(new UserHandle(deviceOwnerUserId))) {
|
||||
return CODE_USER_NOT_RUNNING;
|
||||
return STATUS_USER_NOT_RUNNING;
|
||||
}
|
||||
if (mIsWatch && hasPaired(UserHandle.USER_SYSTEM)) {
|
||||
return CODE_HAS_PAIRED;
|
||||
return STATUS_HAS_PAIRED;
|
||||
}
|
||||
|
||||
if (isHeadlessSystemUserMode) {
|
||||
if (deviceOwnerUserId != UserHandle.USER_SYSTEM) {
|
||||
Slogf.e(LOG_TAG, "In headless system user mode, "
|
||||
+ "device owner can only be set on headless system user.");
|
||||
return CODE_NOT_SYSTEM_USER;
|
||||
return STATUS_NOT_SYSTEM_USER;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14265,7 +14265,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
||||
|
||||
int maxNumberOfExistingUsers = isHeadlessSystemUserMode ? 2 : 1;
|
||||
if (mUserManager.getUserCount() > maxNumberOfExistingUsers) {
|
||||
return CODE_NONSYSTEM_USER_EXISTS;
|
||||
return STATUS_NONSYSTEM_USER_EXISTS;
|
||||
}
|
||||
|
||||
int currentForegroundUser = getCurrentForegroundUserId();
|
||||
@@ -14274,23 +14274,23 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
||||
&& currentForegroundUser == UserHandle.USER_SYSTEM) {
|
||||
Slogf.wtf(LOG_TAG, "In headless system user mode, "
|
||||
+ "current user cannot be system user when setting device owner");
|
||||
return CODE_SYSTEM_USER;
|
||||
return STATUS_SYSTEM_USER;
|
||||
}
|
||||
if (hasIncompatibleAccountsOrNonAdb) {
|
||||
return CODE_ACCOUNTS_NOT_EMPTY;
|
||||
return STATUS_ACCOUNTS_NOT_EMPTY;
|
||||
}
|
||||
}
|
||||
return CODE_OK;
|
||||
return STATUS_OK;
|
||||
} else {
|
||||
// DO has to be user 0
|
||||
if (deviceOwnerUserId != UserHandle.USER_SYSTEM) {
|
||||
return CODE_NOT_SYSTEM_USER;
|
||||
return STATUS_NOT_SYSTEM_USER;
|
||||
}
|
||||
// Only provision DO before setup wizard completes
|
||||
if (hasUserSetupCompleted(UserHandle.USER_SYSTEM)) {
|
||||
return CODE_USER_SETUP_COMPLETED;
|
||||
return STATUS_USER_SETUP_COMPLETED;
|
||||
}
|
||||
return CODE_OK;
|
||||
return STATUS_OK;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14311,11 +14311,11 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
||||
private int checkManagedProfileProvisioningPreCondition(String packageName,
|
||||
@UserIdInt int callingUserId) {
|
||||
if (!hasFeatureManagedUsers()) {
|
||||
return CODE_MANAGED_USERS_NOT_SUPPORTED;
|
||||
return STATUS_MANAGED_USERS_NOT_SUPPORTED;
|
||||
}
|
||||
if (getProfileOwnerAsUser(callingUserId) != null) {
|
||||
// Managed user cannot have a managed profile.
|
||||
return CODE_USER_HAS_PROFILE_OWNER;
|
||||
return STATUS_USER_HAS_PROFILE_OWNER;
|
||||
}
|
||||
|
||||
final long ident = mInjector.binderClearCallingIdentity();
|
||||
@@ -14334,7 +14334,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
||||
callingUserId);
|
||||
// The check is called from inside a managed profile. A managed profile cannot
|
||||
// be provisioned from within another managed profile.
|
||||
return CODE_CANNOT_ADD_MANAGED_PROFILE;
|
||||
return STATUS_CANNOT_ADD_MANAGED_PROFILE;
|
||||
}
|
||||
|
||||
// If there's a device owner, the restriction on adding a managed profile must be set.
|
||||
@@ -14346,19 +14346,19 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
||||
if (addingProfileRestricted) {
|
||||
Slogf.i(LOG_TAG, "Adding a profile is restricted: User %s Has device owner? %b",
|
||||
callingUserHandle, hasDeviceOwner);
|
||||
return CODE_CANNOT_ADD_MANAGED_PROFILE;
|
||||
return STATUS_CANNOT_ADD_MANAGED_PROFILE;
|
||||
}
|
||||
|
||||
// Bail out if we are trying to provision a work profile but one already exists.
|
||||
if (!mUserManager.canAddMoreManagedProfiles(
|
||||
callingUserId, /* allowedToRemoveOne= */ false)) {
|
||||
Slogf.i(LOG_TAG, "A work profile already exists.");
|
||||
return CODE_CANNOT_ADD_MANAGED_PROFILE;
|
||||
return STATUS_CANNOT_ADD_MANAGED_PROFILE;
|
||||
}
|
||||
} finally {
|
||||
mInjector.binderRestoreCallingIdentity(ident);
|
||||
}
|
||||
return CODE_OK;
|
||||
return STATUS_OK;
|
||||
}
|
||||
|
||||
private void checkIsDeviceOwner(CallerIdentity caller) {
|
||||
@@ -17697,9 +17697,9 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
||||
UserInfo userInfo = null;
|
||||
final long identity = Binder.clearCallingIdentity();
|
||||
try {
|
||||
final int result = checkProvisioningPreConditionSkipPermission(
|
||||
final int result = checkProvisioningPreconditionSkipPermission(
|
||||
ACTION_PROVISION_MANAGED_PROFILE, admin.getPackageName());
|
||||
if (result != CODE_OK) {
|
||||
if (result != STATUS_OK) {
|
||||
throw new ServiceSpecificException(
|
||||
ERROR_PRE_CONDITION_FAILED,
|
||||
"Provisioning preconditions failed with result: " + result);
|
||||
@@ -18076,9 +18076,9 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
||||
|
||||
final long identity = Binder.clearCallingIdentity();
|
||||
try {
|
||||
int result = checkProvisioningPreConditionSkipPermission(
|
||||
int result = checkProvisioningPreconditionSkipPermission(
|
||||
ACTION_PROVISION_MANAGED_DEVICE, deviceAdmin.getPackageName());
|
||||
if (result != CODE_OK) {
|
||||
if (result != STATUS_OK) {
|
||||
throw new ServiceSpecificException(
|
||||
ERROR_PRE_CONDITION_FAILED,
|
||||
"Provisioning preconditions failed with result: " + result);
|
||||
|
||||
@@ -3575,11 +3575,11 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
setup_DeviceAdminFeatureOff();
|
||||
mContext.callerPermissions.add(permission.MANAGE_PROFILE_AND_DEVICE_OWNERS);
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_MANAGED_DEVICE,
|
||||
DevicePolicyManager.CODE_DEVICE_ADMIN_NOT_SUPPORTED);
|
||||
DevicePolicyManager.STATUS_DEVICE_ADMIN_NOT_SUPPORTED);
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_FINANCED_DEVICE,
|
||||
DevicePolicyManager.CODE_DEVICE_ADMIN_NOT_SUPPORTED);
|
||||
DevicePolicyManager.STATUS_DEVICE_ADMIN_NOT_SUPPORTED);
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE,
|
||||
DevicePolicyManager.CODE_DEVICE_ADMIN_NOT_SUPPORTED);
|
||||
DevicePolicyManager.STATUS_DEVICE_ADMIN_NOT_SUPPORTED);
|
||||
}
|
||||
|
||||
private void setup_ManagedProfileFeatureOff() throws Exception {
|
||||
@@ -3611,11 +3611,11 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
setup_ManagedProfileFeatureOff();
|
||||
mContext.callerPermissions.add(permission.MANAGE_PROFILE_AND_DEVICE_OWNERS);
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_MANAGED_DEVICE,
|
||||
DevicePolicyManager.CODE_OK);
|
||||
DevicePolicyManager.STATUS_OK);
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_FINANCED_DEVICE,
|
||||
DevicePolicyManager.CODE_OK);
|
||||
DevicePolicyManager.STATUS_OK);
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE,
|
||||
DevicePolicyManager.CODE_MANAGED_USERS_NOT_SUPPORTED);
|
||||
DevicePolicyManager.STATUS_MANAGED_USERS_NOT_SUPPORTED);
|
||||
}
|
||||
|
||||
private void setup_firstBoot_systemUser() throws Exception {
|
||||
@@ -3653,15 +3653,15 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
|
||||
when(getServices().userManagerForMock.isHeadlessSystemUserMode()).thenReturn(false);
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_MANAGED_DEVICE,
|
||||
DevicePolicyManager.CODE_OK);
|
||||
DevicePolicyManager.STATUS_OK);
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_FINANCED_DEVICE,
|
||||
DevicePolicyManager.CODE_OK);
|
||||
DevicePolicyManager.STATUS_OK);
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE,
|
||||
DevicePolicyManager.CODE_OK);
|
||||
DevicePolicyManager.STATUS_OK);
|
||||
|
||||
when(getServices().userManagerForMock.isHeadlessSystemUserMode()).thenReturn(true);
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_MANAGED_DEVICE,
|
||||
DevicePolicyManager.CODE_OK);
|
||||
DevicePolicyManager.STATUS_OK);
|
||||
}
|
||||
|
||||
private void setup_systemUserSetupComplete_systemUser() throws Exception {
|
||||
@@ -3708,11 +3708,11 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
setup_systemUserSetupComplete_systemUser();
|
||||
mContext.callerPermissions.add(permission.MANAGE_PROFILE_AND_DEVICE_OWNERS);
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_MANAGED_DEVICE,
|
||||
DevicePolicyManager.CODE_USER_SETUP_COMPLETED);
|
||||
DevicePolicyManager.STATUS_USER_SETUP_COMPLETED);
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_FINANCED_DEVICE,
|
||||
DevicePolicyManager.CODE_USER_SETUP_COMPLETED);
|
||||
DevicePolicyManager.STATUS_USER_SETUP_COMPLETED);
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE,
|
||||
DevicePolicyManager.CODE_OK);
|
||||
DevicePolicyManager.STATUS_OK);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -3722,22 +3722,22 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
mContext.callerPermissions.add(permission.MANAGE_PROFILE_AND_DEVICE_OWNERS);
|
||||
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_MANAGED_DEVICE,
|
||||
DevicePolicyManager.CODE_HAS_DEVICE_OWNER);
|
||||
DevicePolicyManager.STATUS_HAS_DEVICE_OWNER);
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_FINANCED_DEVICE,
|
||||
DevicePolicyManager.CODE_HAS_DEVICE_OWNER);
|
||||
DevicePolicyManager.STATUS_HAS_DEVICE_OWNER);
|
||||
assertProvisioningAllowed(DevicePolicyManager.ACTION_PROVISION_MANAGED_DEVICE, false);
|
||||
assertProvisioningAllowed(DevicePolicyManager.ACTION_PROVISION_FINANCED_DEVICE, false);
|
||||
|
||||
// COMP mode NOT is allowed.
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE,
|
||||
DevicePolicyManager.CODE_CANNOT_ADD_MANAGED_PROFILE);
|
||||
DevicePolicyManager.STATUS_CANNOT_ADD_MANAGED_PROFILE);
|
||||
assertProvisioningAllowed(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE, false);
|
||||
|
||||
// And other DPCs can NOT provision a managed profile.
|
||||
assertCheckProvisioningPreCondition(
|
||||
DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE,
|
||||
DpmMockContext.ANOTHER_PACKAGE_NAME,
|
||||
DevicePolicyManager.CODE_CANNOT_ADD_MANAGED_PROFILE);
|
||||
DevicePolicyManager.STATUS_CANNOT_ADD_MANAGED_PROFILE);
|
||||
assertProvisioningAllowed(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE, false,
|
||||
DpmMockContext.ANOTHER_PACKAGE_NAME, DpmMockContext.ANOTHER_UID);
|
||||
}
|
||||
@@ -3759,13 +3759,13 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
eq(UserHandle.getUserHandleForUid(mContext.binder.callingUid))))
|
||||
.thenReturn(UserManager.RESTRICTION_SOURCE_SYSTEM);
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE,
|
||||
DevicePolicyManager.CODE_CANNOT_ADD_MANAGED_PROFILE);
|
||||
DevicePolicyManager.STATUS_CANNOT_ADD_MANAGED_PROFILE);
|
||||
assertProvisioningAllowed(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE, false);
|
||||
|
||||
assertCheckProvisioningPreCondition(
|
||||
DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE,
|
||||
DpmMockContext.ANOTHER_PACKAGE_NAME,
|
||||
DevicePolicyManager.CODE_CANNOT_ADD_MANAGED_PROFILE);
|
||||
DevicePolicyManager.STATUS_CANNOT_ADD_MANAGED_PROFILE);
|
||||
assertProvisioningAllowed(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE, false,
|
||||
DpmMockContext.ANOTHER_PACKAGE_NAME, DpmMockContext.ANOTHER_UID);
|
||||
}
|
||||
@@ -3794,12 +3794,12 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
|
||||
// We can delete the managed profile to create a new one, so provisioning is allowed.
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE,
|
||||
DevicePolicyManager.CODE_CANNOT_ADD_MANAGED_PROFILE);
|
||||
DevicePolicyManager.STATUS_CANNOT_ADD_MANAGED_PROFILE);
|
||||
assertProvisioningAllowed(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE, false);
|
||||
assertCheckProvisioningPreCondition(
|
||||
DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE,
|
||||
DpmMockContext.ANOTHER_PACKAGE_NAME,
|
||||
DevicePolicyManager.CODE_CANNOT_ADD_MANAGED_PROFILE);
|
||||
DevicePolicyManager.STATUS_CANNOT_ADD_MANAGED_PROFILE);
|
||||
assertProvisioningAllowed(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE, false,
|
||||
DpmMockContext.ANOTHER_PACKAGE_NAME, DpmMockContext.ANOTHER_UID);
|
||||
}
|
||||
@@ -3823,13 +3823,13 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
assertCheckProvisioningPreCondition(
|
||||
DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE,
|
||||
DpmMockContext.ANOTHER_PACKAGE_NAME,
|
||||
DevicePolicyManager.CODE_CANNOT_ADD_MANAGED_PROFILE);
|
||||
DevicePolicyManager.STATUS_CANNOT_ADD_MANAGED_PROFILE);
|
||||
assertProvisioningAllowed(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE, false,
|
||||
DpmMockContext.ANOTHER_PACKAGE_NAME, DpmMockContext.ANOTHER_UID);
|
||||
|
||||
// But the device owner can still do it because it has set the restriction itself.
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE,
|
||||
DevicePolicyManager.CODE_CANNOT_ADD_MANAGED_PROFILE);
|
||||
DevicePolicyManager.STATUS_CANNOT_ADD_MANAGED_PROFILE);
|
||||
assertProvisioningAllowed(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE, false);
|
||||
}
|
||||
|
||||
@@ -3901,7 +3901,7 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
|
||||
// COMP mode is NOT allowed.
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE,
|
||||
DevicePolicyManager.CODE_CANNOT_ADD_MANAGED_PROFILE);
|
||||
DevicePolicyManager.STATUS_CANNOT_ADD_MANAGED_PROFILE);
|
||||
}
|
||||
|
||||
private void setup_provisionManagedProfileOneAlreadyExist_primaryUser() throws Exception {
|
||||
@@ -3935,14 +3935,14 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
setup_provisionManagedProfileOneAlreadyExist_primaryUser();
|
||||
mContext.callerPermissions.add(permission.MANAGE_PROFILE_AND_DEVICE_OWNERS);
|
||||
assertCheckProvisioningPreCondition(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE,
|
||||
DevicePolicyManager.CODE_CANNOT_ADD_MANAGED_PROFILE);
|
||||
DevicePolicyManager.STATUS_CANNOT_ADD_MANAGED_PROFILE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCheckProvisioningPreCondition_permission() {
|
||||
// GIVEN the permission MANAGE_PROFILE_AND_DEVICE_OWNERS is not granted
|
||||
assertExpectException(SecurityException.class, /* messageRegex =*/ null,
|
||||
() -> dpm.checkProvisioningPreCondition(
|
||||
() -> dpm.checkProvisioningPrecondition(
|
||||
DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE, "some.package"));
|
||||
}
|
||||
|
||||
@@ -8696,7 +8696,7 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
private void assertCheckProvisioningPreCondition(
|
||||
String action, String packageName, int provisioningCondition) {
|
||||
assertWithMessage("checkProvisioningPreCondition(%s, %s) returning unexpected result",
|
||||
action, packageName).that(dpm.checkProvisioningPreCondition(action, packageName))
|
||||
action, packageName).that(dpm.checkProvisioningPrecondition(action, packageName))
|
||||
.isEqualTo(provisioningCondition);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user