diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/StagingManager.java | 10 |
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); } } |