Merge "Prevent interleaved verification" into tm-qpr-dev am: e16da5a4e0

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

Change-Id: I2e16e36251319d79eb76a94d0fdcec8789f95b3a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Chun-Wei Wang
2022-11-22 13:01:44 +00:00
committed by Automerger Merge Worker

View File

@@ -366,6 +366,14 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
@GuardedBy("mLock")
private boolean mStageDirInUse = false;
/**
* True if the verification is already in progress. This is used to prevent running
* verification again while one is already in progress which will break internal states.
*
* Worker thread only.
*/
private boolean mVerificationInProgress = false;
/** Permissions have been accepted by the user (see {@link #setPermissionsResult}) */
@GuardedBy("mLock")
private boolean mPermissionsManuallyAccepted = false;
@@ -2136,6 +2144,12 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
return;
}
if (mVerificationInProgress) {
Slog.w(TAG, "Verification is already in progress for session " + sessionId);
return;
}
mVerificationInProgress = true;
if (params.isStaged) {
mStagedSession.verifySession();
} else {