From 9b8dd7883d99b2001daad1d84ecbfe0e3c66e826 Mon Sep 17 00:00:00 2001 From: Nate Myren Date: Tue, 28 Apr 2020 14:20:45 -0700 Subject: [PATCH] Fix READ_PHONE_STATE per user bug: 154871288 Test: Install on device, verify CBRS work profile is not user sensitive Change-Id: I68694180e26be9496f2ffcdb63f04f07e6910281 --- .../com/android/server/policy/PermissionPolicyService.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/policy/PermissionPolicyService.java b/services/core/java/com/android/server/policy/PermissionPolicyService.java index 6ff1ba7e7dbb5..fdf7023074bea 100644 --- a/services/core/java/com/android/server/policy/PermissionPolicyService.java +++ b/services/core/java/com/android/server/policy/PermissionPolicyService.java @@ -323,7 +323,7 @@ public final class PermissionPolicyService extends SystemService { // Force synchronization as permissions might have changed synchronizePermissionsAndAppOpsForUser(userId); - restoreReadPhoneStatePermissions(); + restoreReadPhoneStatePermissions(userId); // Tell observers we are initialized for this user. if (callback != null) { @@ -335,11 +335,12 @@ public final class PermissionPolicyService extends SystemService { * Ensure READ_PHONE_STATE user sensitive flags are assigned properly * TODO ntmyren: Remove once propagated, and state is repaired */ - private void restoreReadPhoneStatePermissions() { + private void restoreReadPhoneStatePermissions(int userId) { PermissionControllerManager manager = new PermissionControllerManager(this.getContext(), Handler.getMain()); PackageManager pm = getContext().getPackageManager(); - List packageInfos = pm.getInstalledPackages(MATCH_ALL | GET_PERMISSIONS); + List packageInfos = pm.getInstalledPackagesAsUser( + MATCH_ALL | GET_PERMISSIONS, userId); for (int i = packageInfos.size() - 1; i >= 0; i--) { PackageInfo pI = packageInfos.get(i); if (pI.requestedPermissions == null) {