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

Commit fda11550 authored by Nate Myren's avatar Nate Myren Committed by android-build-team Robot
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
(cherry picked from commit 387182eb)
parent 95df2695
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);
                }
            }
        }

    }