summaryrefslogtreecommitdiff
path: root/boot_control_android.cc
diff options
context:
space:
mode:
authorYifan Hong <elsk@google.com>2019-09-16 13:18:22 -0700
committerYifan Hong <elsk@google.com>2019-09-23 19:38:27 -0700
commit13d41cb2accc1e2e1271b22a53f0dce6db0493f5 (patch)
treea3f1a02ee80743e96abdd8be437411402b02b16d /boot_control_android.cc
parent87ea73fe5a48c54ad56ba769375d180d1ce5c614 (diff)
[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
Diffstat (limited to 'boot_control_android.cc')
-rw-r--r--boot_control_android.cc12
1 files changed, 5 insertions, 7 deletions
diff --git a/boot_control_android.cc b/boot_control_android.cc
index ce86666c..4c998b1b 100644
--- a/boot_control_android.cc
+++ b/boot_control_android.cc
@@ -39,8 +39,6 @@ using android::hardware::boot::V1_0::BoolResult;
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 @@ bool BootControlAndroid::MarkBootSuccessfulAsync(
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 @@ bool BootControlAndroid::InitPartitionMetadata(
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 @@ bool BootControlAndroid::InitPartitionMetadata(
}
return dynamic_control_->PreparePartitionsForUpdate(
- source_slot, target_slot, partition_metadata);
+ source_slot, target_slot, manifest);
}
} // namespace chromeos_update_engine