From b9be4d4dc8c10a48f5658882b639dd22850fc6b1 Mon Sep 17 00:00:00 2001 From: Stanislav Zholnin Date: Mon, 28 Jun 2021 17:36:29 +0100 Subject: [PATCH] Make getHistoricalOps() properly handle multi-user functionality. Correct callingUid check in getHistoricalOps() API call so that PermissionController requests coming from any user on device were handled properly. Test: manually verified Fix: 186871955 Change-Id: I667899ea8e656dd1a7ac974a28bfe5c5d84f5f54 --- .../core/java/com/android/server/appop/AppOpsService.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java index 55ed0d6c9dcf8..1eb7154829215 100644 --- a/services/core/java/com/android/server/appop/AppOpsService.java +++ b/services/core/java/com/android/server/appop/AppOpsService.java @@ -2341,8 +2341,9 @@ public class AppOpsService extends IAppOpsService.Stub { boolean isCallerSystem = Binder.getCallingPid() == Process.myPid(); boolean isCallerPermissionController; try { - isCallerPermissionController = pm.getPackageUid( - mContext.getPackageManager().getPermissionControllerPackageName(), 0) + isCallerPermissionController = pm.getPackageUidAsUser( + mContext.getPackageManager().getPermissionControllerPackageName(), 0, + UserHandle.getUserId(Binder.getCallingUid())) == Binder.getCallingUid(); } catch (PackageManager.NameNotFoundException doesNotHappen) { return;