From 62477e502e2ae5add2bbb8fac27ca995a08745eb Mon Sep 17 00:00:00 2001 From: Abhijeet Kaur Date: Wed, 29 Jan 2020 18:55:49 +0000 Subject: [PATCH] Call getPackageUidAsUser instead of getPackageUid PackageManager.java has a lot of similar options for getPackageUid, 3 of which are: 1. getPackageUid(String packageName, @PackageInfoFlags int flags) 2. getPackageUid(String packageName, @PackageInfoFlags int flags, @UserIdInt) 3. getPackageUidAsUser(String packageName, @UserIdInt int userId) The function being called here in set appop getPackageUid is calling 1st method but passing userId. Passing the user ID is accepted as it is also int, but the uid of the current user is returned. Test: manual Change-Id: I032df4a3e666ebb3efee673153bb75fa4c571e83 --- services/core/java/com/android/server/appop/AppOpsService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java index 1d714a2c99c7d..77e83bdfeb32f 100644 --- a/services/core/java/com/android/server/appop/AppOpsService.java +++ b/services/core/java/com/android/server/appop/AppOpsService.java @@ -4325,7 +4325,7 @@ public class AppOpsService extends IAppOpsService.Stub { } else if (shell.targetsUid && shell.packageName != null) { try { final int uid = shell.mInternal.mContext.getPackageManager() - .getPackageUid(shell.packageName, shell.userId); + .getPackageUidAsUser(shell.packageName, shell.userId); shell.mInterface.setUidMode(shell.op, uid, mode); } catch (PackageManager.NameNotFoundException e) { return -1;