Only a test admin can be unmarked as a COPE admin

Allowing adb and system apps to unmark a COPE admin will have
security implications on the asset mng  guarantee of COPE

Bug: 225834187
Test: com.android.server.devicepolicy.DevicePolicyManagerTest
Change-Id: Ic493c1cb0548ce1a7be4ff57897a4c867c5e0ec3
This commit is contained in:
Alex Johnston
2022-04-19 11:50:55 +01:00
parent c170d9adf0
commit 37259089a2

View File

@@ -14649,6 +14649,13 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
throw new SecurityException(
"Only the system can mark a profile owner of organization-owned device.");
}
// Only a test admin can be unmarked as a profile owner on an organization-owned device.
synchronized (getLockObject()) {
if (!isProfileOwnerOnOrganizationOwnedDevice && !isAdminTestOnlyLocked(who, userId)) {
throw new SecurityException("Only a test admin can be unmarked as a "
+ "profile owner of organization-owned device.");
}
}
if (isAdb(caller)) {
if (hasIncompatibleAccountsOrNonAdbNoLock(caller, userId, who)) {