summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/pm/StagingManager.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/pm/StagingManager.java b/services/core/java/com/android/server/pm/StagingManager.java
index 9a297d601a6b..671fb3e6bc2d 100644
--- a/services/core/java/com/android/server/pm/StagingManager.java
+++ b/services/core/java/com/android/server/pm/StagingManager.java
@@ -350,13 +350,19 @@ public class StagingManager {
Slog.e(TAG, "Aborting checkpoint: " + errorMsg);
try {
if (supportsCheckpoint() && needsCheckpoint()) {
- mApexManager.revertActiveSessions();
+ // Only revert apex sessions if device supports updating apex
+ if (mApexManager.isApexSupported()) {
+ mApexManager.revertActiveSessions();
+ }
PackageHelper.getStorageManager().abortChanges(
"StagingManager initiated", false /*retry*/);
}
} catch (Exception e) {
Slog.wtf(TAG, "Failed to abort checkpoint", e);
- mApexManager.revertActiveSessions();
+ // Only revert apex sessions if device supports updating apex
+ if (mApexManager.isApexSupported()) {
+ mApexManager.revertActiveSessions();
+ }
mPowerManager.reboot(null);
}
}