From 4820ef1033a7276e5010bbc57850665dd3ba0eef Mon Sep 17 00:00:00 2001 From: Ayush Sharma Date: Mon, 23 Aug 2021 21:36:12 +0000 Subject: [PATCH] Add missing check in getKeyguardDisabledFeature Add check that if admin package is specified, it belong to the calling admin. Bug: 193663287 Test: atest com.android.cts.devicepolicy.MixedDeviceOwnerTest #testSetKeyguardDisabledFeatures atest com.android.cts.devicepolicy.MixedProfileOwnerTest #testSetKeyguardDisabledFeatures atest com.android.cts.devicepolicy.MixedManagedProfileOwnerTest #testSetKeyguardDisabledFeatures atest ManagedProfileTest#testDevicePolicyManagerParentSupport Change-Id: I107d8705e3a65707ae5744e7705a4d32629c3c14 Merged-In: I107d8705e3a65707ae5744e7705a4d32629c3c14 (cherry picked from commit 826f893513cce3fdb460e97f014062db2ca72d4f) --- .../server/devicepolicy/DevicePolicyManagerService.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 147889db3177e..21996d9d522dd 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -8246,6 +8246,9 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { final CallerIdentity caller = getCallerIdentity(); Preconditions.checkCallAuthorization(hasFullCrossUsersPermission(caller, userHandle)); + Preconditions.checkCallAuthorization( + who == null || isCallingFromPackage(who.getPackageName(), caller.getUid()) + || isSystemUid(caller)); final long ident = mInjector.binderClearCallingIdentity(); try {