summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Dario Freni <dariofreni@google.com> 2019-05-02 15:46:03 +0100
committer Dario Freni <dariofreni@google.com> 2019-05-09 14:20:26 +0100
commitf2449f7c5cf46ea6b19e90142ee215bb8d3c79ff (patch)
tree876cab5d1a197342e1a8ff62e34b34aad8f17d57
parent60d2586b2caa32a712019f4d026b6183cf9203c2 (diff)
Always restore staged sessions on boot.
The current logic doesn't restore sessions unless they are "in flight". We want staged session to stick around until they expire after MAX_TIME_SINCE_UPDATE_MILLIS. Bug: 131290871 Test: atest CtsStagedInstallHostTestCases (with modifications coming in a separate CL) Change-Id: Ifaccf50e744a97e30a4fda0e47b88d7dc71adcf8
-rw-r--r--services/core/java/com/android/server/pm/PackageInstallerService.java3
-rw-r--r--services/core/java/com/android/server/pm/PackageInstallerSession.java2
2 files changed, 2 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java
index 35f21496f2cc..44f76774fc8a 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerService.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerService.java
@@ -363,8 +363,7 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements
System.currentTimeMillis() - session.getUpdatedMillis();
final boolean valid;
if (session.isStaged()) {
- if (timeSinceUpdate >= MAX_TIME_SINCE_UPDATE_MILLIS
- && session.isStagedAndInTerminalState()) {
+ if (timeSinceUpdate >= MAX_TIME_SINCE_UPDATE_MILLIS) {
valid = false;
} else {
valid = true;
diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java
index 5f6e7399f3a7..6f9a918d105c 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerSession.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java
@@ -1150,7 +1150,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
*/
void sealAndValidateIfNecessary() {
synchronized (mLock) {
- if (!mShouldBeSealed) {
+ if (!mShouldBeSealed || isStagedAndInTerminalState()) {
return;
}
}