From 83e921029c0342515732976779bff5b64e2dbb8b Mon Sep 17 00:00:00 2001 From: Shiwangi Shah Date: Thu, 15 Sep 2022 11:48:51 +0000 Subject: [PATCH] Fetch correct sandboxsdk packageUid for a user Currently packageUid for sdksandbox is always fetched for user 0. This causes a failure to fetch packageUid with Binder.callingUid() when invoked for a different user. Bug: b/246514935 Test: Manual Change-Id: I30796637fdfb638d9952d5bf35ccedc6ab0097f0 --- .../core/java/com/android/server/appop/AppOpsService.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java index b56654fd7b9a2..a71f51a9c8b7b 100644 --- a/services/core/java/com/android/server/appop/AppOpsService.java +++ b/services/core/java/com/android/server/appop/AppOpsService.java @@ -4593,9 +4593,8 @@ public class AppOpsService extends IAppOpsService.Stub { final PackageManager pm = mContext.getPackageManager(); final String supplementalPackageName = pm.getSdkSandboxPackageName(); if (Objects.equals(packageName, supplementalPackageName)) { - int supplementalAppId = pm.getPackageUid(supplementalPackageName, - PackageManager.PackageInfoFlags.of(0)); - uid = UserHandle.getUid(UserHandle.getUserId(uid), supplementalAppId); + uid = pm.getPackageUidAsUser(supplementalPackageName, + PackageManager.PackageInfoFlags.of(0), UserHandle.getUserId(uid)); } } catch (PackageManager.NameNotFoundException e) { // Shouldn't happen for the supplemental package