From 529d3aa46b3905733d226c4e2ed9b25a410bd3dd Mon Sep 17 00:00:00 2001 From: JW Wang Date: Mon, 10 Feb 2020 16:22:40 +0800 Subject: [PATCH] Delete rollbacks when build fingerprint has changed (1/n) Bug: 148688328 Test: atest CtsRollbackManagerHostTestCases Change-Id: Ia2ec05d421b91f8576510b838afe560dea58d5b6 --- .../server/rollback/RollbackManagerServiceImpl.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java b/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java index 59d93e16bae3a..91e7cc981b892 100644 --- a/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java +++ b/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java @@ -164,8 +164,16 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { // Load rollback data from device storage. synchronized (mLock) { mRollbacks = mRollbackStore.loadRollbacks(); - for (Rollback rollback : mRollbacks) { - mAllocatedRollbackIds.put(rollback.info.getRollbackId(), true); + if (!context.getPackageManager().isDeviceUpgrading()) { + for (Rollback rollback : mRollbacks) { + mAllocatedRollbackIds.put(rollback.info.getRollbackId(), true); + } + } else { + // Delete rollbacks when build fingerprint has changed. + for (Rollback rollback : mRollbacks) { + rollback.delete(mAppDataRollbackHelper); + } + mRollbacks.clear(); } }