Merge "Minor renamings in DevicePolicyManager" into tm-dev

This commit is contained in:
Kholoud Mohamed
2022-02-21 15:37:26 +00:00
committed by Android (Google) Code Review
7 changed files with 144 additions and 152 deletions

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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,

View File

@@ -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);

View File

@@ -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;

View File

@@ -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);

View File

@@ -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);
}