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
diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java
index 55ed0d6..1eb7154 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 @@
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;