diff options
| author | 2023-04-21 09:46:51 +0000 | |
|---|---|---|
| committer | 2023-04-21 09:46:51 +0000 | |
| commit | dde2a2631bbe901072d287a107d949d0ec94cbee (patch) | |
| tree | ddfe92a02c060c37deeae5fe8a9758f82899d4ea | |
| parent | 96e515913d49b3969795bf987ab8c45eab3ef51b (diff) | |
| parent | bc955db325b42d4286a9923f8da3e7ef7e275818 (diff) | |
Merge "Correct which DPC has the permission MANAGE_DEVICE_POLICY_CAMERA" into udc-dev
| -rw-r--r-- | core/java/android/app/admin/DevicePolicyManager.java | 6 | ||||
| -rw-r--r-- | services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java | 15 |
2 files changed, 12 insertions, 9 deletions
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index a8a2ad1bb8df..7b6835792370 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -8394,8 +8394,7 @@ public class DevicePolicyManager { * <p> * The calling device admin must have requested * {@link DeviceAdminInfo#USES_POLICY_DISABLE_CAMERA} to be able to call this method; if it has - * not, a security exception will be thrown, or the caller must hold the permission - * {@link android.Manifest.permission#MANAGE_DEVICE_POLICY_CAMERA}. + * not, a security exception will be thrown. * <p> * <b>Note</b>, this policy type is deprecated for legacy device admins since * {@link android.os.Build.VERSION_CODES#Q}. On Android @@ -8411,8 +8410,7 @@ public class DevicePolicyManager { the caller is not a device admin * @param disabled Whether or not the camera should be disabled. * @throws SecurityException if {@code admin} is not an active administrator or does not use - * {@link DeviceAdminInfo#USES_POLICY_DISABLE_CAMERA} and the caller does not hold - * the permisisons {@link android.Manifest.permission#MANAGE_DEVICE_POLICY_CAMERA}. + * {@link DeviceAdminInfo#USES_POLICY_DISABLE_CAMERA}. */ @RequiresPermission(value = MANAGE_DEVICE_POLICY_CAMERA, conditional = true) public void setCameraDisabled(@Nullable ComponentName admin, boolean disabled) { diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index e04b45bf8790..bdfbb7c9a327 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -9198,9 +9198,15 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { MANAGE_DEVICE_POLICY_CAMERA, caller.getPackageName(), getProfileParentUserIfRequested(userId, parent)); - - setBackwardCompatibleUserRestriction( - caller, enforcingAdmin, UserManager.DISALLOW_CAMERA, disabled, parent); + try { + setBackwardCompatibleUserRestriction( + caller, enforcingAdmin, UserManager.DISALLOW_CAMERA, disabled, parent); + } catch (IllegalStateException e) { + throw new IllegalStateException( + "Please use addUserRestriction or addUserRestrictionGlobally using the key" + + " UserManager.DISALLOW_CAMERA to disable the camera locally or" + + " globally, respectively"); + } } else { Objects.requireNonNull(who, "ComponentName is null"); if (parent) { @@ -22752,6 +22758,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { MANAGE_DEVICE_POLICY_AUTOFILL, MANAGE_DEVICE_POLICY_BLUETOOTH, MANAGE_DEVICE_POLICY_CALLS, + MANAGE_DEVICE_POLICY_CAMERA, MANAGE_DEVICE_POLICY_DEBUGGING_FEATURES, MANAGE_DEVICE_POLICY_DISPLAY, MANAGE_DEVICE_POLICY_FACTORY_RESET, @@ -22787,7 +22794,6 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { MANAGE_DEVICE_POLICY_ACROSS_USERS, MANAGE_DEVICE_POLICY_AIRPLANE_MODE, MANAGE_DEVICE_POLICY_APPS_CONTROL, - MANAGE_DEVICE_POLICY_CAMERA, MANAGE_DEVICE_POLICY_CERTIFICATES, MANAGE_DEVICE_POLICY_COMMON_CRITERIA_MODE, MANAGE_DEVICE_POLICY_DEFAULT_SMS, @@ -22815,7 +22821,6 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { private static final List<String> ADDITIONAL_PROFILE_OWNER_ON_USER_0_PERMISSIONS = List.of( MANAGE_DEVICE_POLICY_AIRPLANE_MODE, - MANAGE_DEVICE_POLICY_CAMERA, MANAGE_DEVICE_POLICY_DISPLAY, MANAGE_DEVICE_POLICY_FUN, MANAGE_DEVICE_POLICY_LOCK_TASK, |