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

Commit a6fe2eb7 authored by Daniel Colascione's avatar Daniel Colascione
Browse files

Cork permission and package cache around bulk permission update

Test: watch with DEBUG=true
Bug: 149255086
Bug: 140788621
Change-Id: I32f9b89ae1aaa718ef0eef7bc668cdef49ade151
parent 6dc938aa
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -3742,11 +3742,16 @@ public class PermissionManagerService extends IPermissionManager.Stub {
     */
    private void updateAllPermissions(@Nullable String volumeUuid, boolean sdkUpdated,
            @NonNull PermissionCallback callback) {
        PackageManager.corkPackageInfoCache();  // Prevent invalidation storm
        try {
            final int flags = UPDATE_PERMISSIONS_ALL |
                    (sdkUpdated
                            ? UPDATE_PERMISSIONS_REPLACE_PKG | UPDATE_PERMISSIONS_REPLACE_ALL
                            : 0);
            updatePermissions(null, null, volumeUuid, flags, callback);
        } finally {
            PackageManager.uncorkPackageInfoCache();
        }
    }

    /**