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

Commit faf59e2b authored by Nate Myren's avatar Nate Myren Committed by Automerger Merge Worker
Browse files

Merge "Ensure storage permission revoke happens for all users" into sc-dev am: 6c1ae930

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14355171

Change-Id: I409b657fae7babd2b63d9f1865281eddf3a16776
parents 6634c370 6c1ae930
Loading
Loading
Loading
Loading
+22 −15
Original line number Diff line number Diff line
@@ -2180,10 +2180,11 @@ public class PermissionManagerService extends IPermissionManager.Stub {
        }

        final int callingUid = Binder.getCallingUid();
        final int userId = UserHandle.getUserId(newPackage.getUid());
        for (int userId: getAllUserIds()) {
            int numRequestedPermissions = newPackage.getRequestedPermissions().size();
            for (int i = 0; i < numRequestedPermissions; i++) {
            PermissionInfo permInfo = getPermissionInfo(newPackage.getRequestedPermissions().get(i),
                PermissionInfo permInfo = getPermissionInfo(
                        newPackage.getRequestedPermissions().get(i),
                        newPackage.getPackageName(), 0);
                if (permInfo == null || !STORAGE_PERMISSIONS.contains(permInfo.name)) {
                    continue;
@@ -2195,8 +2196,14 @@ public class PermissionManagerService extends IPermissionManager.Stub {
                                + downgradedSdk + " or newly requested legacy full storage "
                                + newlyRequestsLegacy);

                try {
                    revokeRuntimePermissionInternal(newPackage.getPackageName(), permInfo.name,
                            false, callingUid, userId, null, mDefaultPermissionCallback);
                } catch (IllegalStateException | SecurityException e) {
                    Log.e(TAG, "unable to revoke " + permInfo.name + " for "
                            + newPackage.getPackageName() + " user " + userId, e);
                }
            }
        }

    }