fix DynamicPartitionControlAndroid::LoadMetadataBuilder

If target_slot is kInvalidSlot, call MetadataBuilder::New instead
of NewForUpdate.

Test: apply OTA on retrofit DAP devices
Fixes: 138914539
Change-Id: I5642c051ad4d80b814617ea91fcd2aa060f9a498
diff --git a/dynamic_partition_control_android.cc b/dynamic_partition_control_android.cc
index 1a1e021..d9d3be5 100644
--- a/dynamic_partition_control_android.cc
+++ b/dynamic_partition_control_android.cc
@@ -204,8 +204,14 @@
     const std::string& super_device,
     uint32_t source_slot,
     uint32_t target_slot) {
-  auto builder = MetadataBuilder::NewForUpdate(
-      PartitionOpener(), super_device, source_slot, target_slot);
+  std::unique_ptr<MetadataBuilder> builder;
+  if (target_slot == BootControlInterface::kInvalidSlot) {
+    builder =
+        MetadataBuilder::New(PartitionOpener(), super_device, source_slot);
+  } else {
+    builder = MetadataBuilder::NewForUpdate(
+        PartitionOpener(), super_device, source_slot, target_slot);
+  }
 
   if (builder == nullptr) {
     LOG(WARNING) << "No metadata slot "