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:
Daniel Colascione
2020-03-04 17:27:56 -08:00
parent f73a41c1cf
commit 33fb4ef029

View File

@@ -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();
}
}
/**