diff --git a/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java b/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java index a5646247f7665..e7b275643b662 100644 --- a/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java +++ b/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java @@ -654,15 +654,11 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub implements Rollba @WorkerThread private void onPackageReplaced(String packageName) { assertInWorkerThread(); - // TODO: Could this end up incorrectly deleting a rollback for a - // package that is about to be installed? long installedVersion = getInstalledPackageVersion(packageName); - Iterator iter = mRollbacks.iterator(); while (iter.hasNext()) { Rollback rollback = iter.next(); - // TODO: Should we remove rollbacks in the ENABLING state here? - if ((rollback.isEnabling() || rollback.isAvailable()) + if ((rollback.isAvailable()) && rollback.includesPackageWithDifferentVersion(packageName, installedVersion)) { iter.remove();