diff options
author | Yifan Hong <elsk@google.com> | 2019-09-16 13:18:22 -0700 |
---|---|---|
committer | Yifan Hong <elsk@google.com> | 2019-09-23 19:38:27 -0700 |
commit | 13d41cb2accc1e2e1271b22a53f0dce6db0493f5 (patch) | |
tree | a3f1a02ee80743e96abdd8be437411402b02b16d /boot_control_android.cc | |
parent | 87ea73fe5a48c54ad56ba769375d180d1ce5c614 (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.cc | 12 |
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 |