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) {