Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 387182eb authored by Nate Myren's avatar Nate Myren
Browse files

Ensure storage permission revoke happens for all users

When revoking storage permissions due to storage escalation, ensure the
revoke happens for all users

Fixes: 186034260
Bug: 171430330
Test: atest --user-type secondary_user StorageEscalationTest
Merged-In: Ieb8bb9cde1576e9eee131338d393b8a3528341ec
Change-Id: Ieb8bb9cde1576e9eee131338d393b8a3528341ec
parent 08db350c
Loading
Loading
Loading
Loading
+22 −15
Original line number Diff line number Diff line
@@ -618,7 +618,8 @@ public class PermissionManagerService {
        }

        final int callingUid = Binder.getCallingUid();
        final int userId = UserHandle.getUserId(newPackage.applicationInfo.uid);

        for (int userId: mUserManagerInt.getUserIds()) {
            int numRequestedPermissions = newPackage.requestedPermissions.size();
            for (int i = 0; i < numRequestedPermissions; i++) {
                PermissionInfo permInfo = getPermissionInfo(newPackage.requestedPermissions.get(i),
@@ -633,8 +634,14 @@ public class PermissionManagerService {
                                + downgradedSdk + " or newly requested legacy full storage "
                                + newlyRequestsLegacy);

                try {
                    revokeRuntimePermission(permInfo.name, newPackage.packageName,
                            false, userId, permissionCallback);
                } catch (IllegalStateException | SecurityException e) {
                    Log.e(TAG, "unable to revoke " + permInfo.name + " for "
                            + newPackage.packageName + " user " + userId, e);
                }
            }
        }

    }