RESTRICT AUTOMERGE: Cork permission and package cache around bulk permission update
Test: watch with DEBUG=true Bug: 149255086 Bug: 140788621 Change-Id: I32f9b89ae1aaa718ef0eef7bc668cdef49ade151
This commit is contained in:
@@ -3901,11 +3901,16 @@ public class PermissionManagerService extends IPermissionManager.Stub {
|
||||
*/
|
||||
private void updateAllPermissions(@Nullable String volumeUuid, boolean sdkUpdated,
|
||||
@NonNull PermissionCallback callback) {
|
||||
final int flags = UPDATE_PERMISSIONS_ALL |
|
||||
(sdkUpdated
|
||||
? UPDATE_PERMISSIONS_REPLACE_PKG | UPDATE_PERMISSIONS_REPLACE_ALL
|
||||
: 0);
|
||||
updatePermissions(null, null, volumeUuid, flags, 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();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user