From f2449f7c5cf46ea6b19e90142ee215bb8d3c79ff Mon Sep 17 00:00:00 2001 From: Dario Freni Date: Thu, 2 May 2019 15:46:03 +0100 Subject: [PATCH] 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 --- .../java/com/android/server/pm/PackageInstallerService.java | 3 +-- .../java/com/android/server/pm/PackageInstallerSession.java | 2 +- 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 35f21496f2ccd..44f76774fc8a2 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 5f6e7399f3a75..6f9a918d105c9 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; } }