From 5ab98de315122ee135c4ef31eaf8208101da25b1 Mon Sep 17 00:00:00 2001 From: Eric Sandness Date: Tue, 3 Apr 2018 18:12:39 +0100 Subject: [PATCH] Permission Check For DPM.getPermittedAccessibilityServices Require the callers of DPM.getPermittedAccessibilityServices(userId) to hold the MANAGE_USERS permission. The only known callers of this API are settings apps that already hold this permission. Bug: 62343414 Test: com.android.server.devicepolicy.DevicePolicyManagerTest Test: com.google.android.gts.devicepolicy.DeviceOwnerTest Test: Manually checked accessibility settings in DO and PO modes Change-Id: I8ee3f876fcaffa63636645f0f59709cd147254ef --- core/java/android/app/admin/DevicePolicyManager.java | 1 + .../android/server/devicepolicy/DevicePolicyManagerService.java | 1 + 2 files changed, 2 insertions(+) diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 8f1b328ab1f3f..990147b2cf76a 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -6198,6 +6198,7 @@ public class DevicePolicyManager { * @hide */ @SystemApi + @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public @Nullable List getPermittedAccessibilityServices(int userId) { throwIfParentInstance("getPermittedAccessibilityServices"); if (mService != null) { diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 9bc5fca4a1ea8..82d2f3c102770 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -8481,6 +8481,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { if (!mHasFeature) { return null; } + enforceManageUsers(); synchronized (getLockObject()) { List result = null; // If we have multiple profiles we return the intersection of the