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

Commit 21b38197 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: Iea6bb0c038b122aec580ba0492e1ec429013392a
parents e74e5f12 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);
                }
            }
        }

    }