From 63f7e2883baf96046699f837a3a3a9bd3ddeafaf Mon Sep 17 00:00:00 2001 From: Yan Zhu Date: Thu, 7 Jan 2021 20:28:43 -0800 Subject: [PATCH] Add getProfileOwnerNameUnchecked private method and use in manageUserUnchecked Skip check for canManageUser. Test: manual: download and install TestDPC adb unroot && adb shell dpm set-device-owner --user 0 com.afwsamples.testdpc/.DeviceAdminReceiver Fixes: 176107119 Change-Id: Ic00afaffc58a567490fa8fb3b8c66a9569e6333b --- .../server/devicepolicy/DevicePolicyManagerService.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 7b4c1be0eaa16..224b154c75563 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -8401,7 +8401,10 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { return null; } Preconditions.checkCallAuthorization(canManageUsers(getCallerIdentity())); + return getProfileOwnerNameUnchecked(userHandle); + } + private String getProfileOwnerNameUnchecked(int userHandle) { ComponentName profileOwner = getProfileOwnerAsUser(userHandle); if (profileOwner == null) { return null; @@ -9707,7 +9710,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { // Set admin. setActiveAdmin(profileOwner, /* refreshing= */ true, userId); - final String ownerName = getProfileOwnerName(Process.myUserHandle().getIdentifier()); + final String ownerName = getProfileOwnerNameUnchecked( + Process.myUserHandle().getIdentifier()); setProfileOwner(profileOwner, ownerName, userId); synchronized (getLockObject()) {