From 8f6a909ea29afe8c029ec725b5fac34db37440c8 Mon Sep 17 00:00:00 2001 From: Nate Myren Date: Tue, 27 Aug 2019 15:50:03 -0700 Subject: [PATCH] Fixed permission controller deny callbacks Fixed issue which caused all permission deny callbacks to be sent with the UID of the user 0 package, regardless of the package's true UID. Test: On a device with multiple users, register a permission change callback for the second user version of a package, and deny a granted permission. The callback should fire. Change-Id: Ice7e9accb150a866082e018f57ab9eb0b3100675 --- .../server/pm/permission/PermissionManagerService.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java index e2644ffb9301e..8b690fd818704 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java @@ -1222,7 +1222,8 @@ public class PermissionManagerService extends IPermissionManager.Stub { return; } - final int uid = UserHandle.getUid(userId, pkg.applicationInfo.uid); + final int uid = UserHandle.getUid(userId, + UserHandle.getAppId(pkg.applicationInfo.uid)); final PackageSetting ps = (PackageSetting) pkg.mExtras; final PermissionsState permissionsState = ps.getPermissionsState(); @@ -1422,7 +1423,8 @@ public class PermissionManagerService extends IPermissionManager.Stub { } if (callback != null) { - callback.onPermissionRevoked(pkg.applicationInfo.uid, userId); + callback.onPermissionRevoked(UserHandle.getUid(userId, + UserHandle.getAppId(pkg.applicationInfo.uid)), userId); } if (bp.isRuntime()) {