[REFACTOR] Pass DeltaArchiveManifest to DynamicPartitionControl
DynamicPartitionControl need the list of operations to calculate
COW sizes.
- Remove BootControlInterface::PartitionMetadata. Replace all references
with DeltaArchiveManifest. DeltaArchiveManifest has all information
that PartitionMetadata has.
- Rename all InitPartitionMetadata to PreparePartitionsForUpdate
- Change all PreparePartitionsForUpdate to use new signature
Bug: 138816109
Test: update_enigne_unittests --gtest_filter=*BootControl*:*Dynamic*
Change-Id: I4389ba2b1801addf8c3bc8395e2ea6a9a3ed27a0
diff --git a/boot_control_android.cc b/boot_control_android.cc
index ce86666..4c998b1 100644
--- a/boot_control_android.cc
+++ b/boot_control_android.cc
@@ -39,8 +39,6 @@
using android::hardware::boot::V1_0::CommandResult;
using android::hardware::boot::V1_0::IBootControl;
using Slot = chromeos_update_engine::BootControlInterface::Slot;
-using PartitionMetadata =
- chromeos_update_engine::BootControlInterface::PartitionMetadata;
namespace {
@@ -277,9 +275,9 @@
brillo::MessageLoop::kTaskIdNull;
}
-bool BootControlAndroid::InitPartitionMetadata(
+bool BootControlAndroid::PreparePartitionsForUpdate(
Slot target_slot,
- const PartitionMetadata& partition_metadata,
+ const DeltaArchiveManifest& manifest,
bool update_metadata) {
if (fs_mgr_overlayfs_is_setup()) {
// Non DAP devices can use overlayfs as well.
@@ -294,14 +292,14 @@
auto source_slot = GetCurrentSlot();
if (target_slot == source_slot) {
- LOG(ERROR) << "Cannot call InitPartitionMetadata on current slot.";
+ LOG(ERROR) << "Cannot call PreparePartitionsForUpdate on current slot.";
return false;
}
// Although the current build supports dynamic partitions, the given payload
// doesn't use it for target partitions. This could happen when applying a
// retrofit update. Skip updating the partition metadata for the target slot.
- is_target_dynamic_ = !partition_metadata.groups.empty();
+ is_target_dynamic_ = !manifest.dynamic_partition_metadata().groups().empty();
if (!is_target_dynamic_) {
return true;
}
@@ -311,7 +309,7 @@
}
return dynamic_control_->PreparePartitionsForUpdate(
- source_slot, target_slot, partition_metadata);
+ source_slot, target_slot, manifest);
}
} // namespace chromeos_update_engine