From 8f70744221b739f749f4e5fecff53083ef1d075a Mon Sep 17 00:00:00 2001 From: Adam Connors Date: Thu, 5 Jun 2014 10:36:01 +0100 Subject: [PATCH] DO NOT MERGE : Allow system process to call getApplicationBlockedAsUser MDMs in the managed profile needs to be able to call DPM.isApplicationBlocked without the INTERACT_ACROSS_USERS permission. DevicePolicyManager checks for appropriate PROFILE_OWNER permission and then removes callerId, so this change is needed to prevent a spurious security exception. Bug: 14400206 Change-Id: Idd1bda6bb234f6cb7cb78a885ae2d7cc5cca4890 (cherry picked from commit c11c67b3e117b4fec3245f87b6d510461c1f8323) --- .../java/com/android/server/pm/PackageManagerService.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index d505e81dcb1a9..0c094e8d6f395 100755 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -7792,13 +7792,9 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public boolean getApplicationBlockedSettingAsUser(String packageName, int userId) { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.MANAGE_USERS, null); + enforceCrossUserPermission(Binder.getCallingUid(), userId, true, + "getApplicationBlocked for user " + userId); PackageSetting pkgSetting; - final int uid = Binder.getCallingUid(); - if (UserHandle.getUserId(uid) != userId) { - mContext.enforceCallingPermission( - android.Manifest.permission.INTERACT_ACROSS_USERS_FULL, - "getApplicationBlocked for user " + userId); - } long callingId = Binder.clearCallingIdentity(); try { // writer