Revert "Remove kPrefsDynamicPartitionMetadataInitialized."
This reverts commit 09f6e0f8f5340e2e8f6bf14e08adf25798eab360.
Reason for revert: Should not re-initialize metadata when resuming
from an update.
Bug: 120465293
Bug: 120775936
Test: manual OTA, interrupt and resume
Change-Id: Ib1626dfa4a766e9a5ffaf2d9d74ec2b04c76052d
diff --git a/payload_consumer/delta_performer.cc b/payload_consumer/delta_performer.cc
index 2ff9df0..3cce4d2 100644
--- a/payload_consumer/delta_performer.cc
+++ b/payload_consumer/delta_performer.cc
@@ -935,6 +935,14 @@
}
bool DeltaPerformer::InitPartitionMetadata() {
+ bool metadata_initialized;
+ if (prefs_->GetBoolean(kPrefsDynamicPartitionMetadataInitialized,
+ &metadata_initialized) &&
+ metadata_initialized) {
+ LOG(INFO) << "Skipping InitPartitionMetadata.";
+ return true;
+ }
+
BootControlInterface::PartitionMetadata partition_metadata;
if (manifest_.has_dynamic_partition_metadata()) {
std::map<string, uint64_t> partition_sizes;
@@ -968,6 +976,8 @@
<< BootControlInterface::SlotName(install_plan_->target_slot);
return false;
}
+ TEST_AND_RETURN_FALSE(
+ prefs_->SetBoolean(kPrefsDynamicPartitionMetadataInitialized, true));
LOG(INFO) << "InitPartitionMetadata done.";
return true;
@@ -1891,6 +1901,7 @@
prefs->SetInt64(kPrefsResumedUpdateFailures, 0);
prefs->Delete(kPrefsPostInstallSucceeded);
prefs->Delete(kPrefsVerityWritten);
+ prefs->Delete(kPrefsDynamicPartitionMetadataInitialized);
}
return true;
}