BootControlAndroid::GetPartitionDevice ignore dynamic partitions
... on devices without dynamic partitions enabled. Previously,
we allowed to read target metadata even when dynamic partitions
are not enabled, because we planned a two-step OTA for retrofit
devices. This was needed at the second step when OTA client is
updated, dynamic partitions was not enabled, and target metadata
had just been written through InitPartitionMetadata.
Now that retrofit update is only one OTA, disable this.
Test: manual OTA
Bug: 118506262
Change-Id: Icbef61b0e42cb50bd7d1692580a48e082f512ddb
diff --git a/boot_control_android.cc b/boot_control_android.cc
index f1d7b9c..35ff829 100644
--- a/boot_control_android.cc
+++ b/boot_control_android.cc
@@ -119,13 +119,14 @@
const string& partition_name_suffix,
Slot slot,
string* device) {
+ if (!dynamic_control->IsDynamicPartitionsEnabled()) {
+ return DynamicPartitionDeviceStatus::TRY_STATIC;
+ }
+
auto builder = dynamic_control->LoadMetadataBuilder(
super_device, slot, BootControlInterface::kInvalidSlot);
if (builder == nullptr) {
- if (!dynamic_control->IsDynamicPartitionsEnabled()) {
- return DynamicPartitionDeviceStatus::TRY_STATIC;
- }
LOG(ERROR) << "No metadata in slot "
<< BootControlInterface::SlotName(slot);
return DynamicPartitionDeviceStatus::ERROR;