Mount /metadata in sideload.

In recovery, /metadata needs to be mounted before doing
any updates (even regular ones) on VAB device.

Test: sideload
Bug: 140749209

Change-Id: Iad8ef63c572b7b6d3ad8be5ee7ec11001b337435
diff --git a/dynamic_partition_control_android.cc b/dynamic_partition_control_android.cc
index e194670..f017c9f 100644
--- a/dynamic_partition_control_android.cc
+++ b/dynamic_partition_control_android.cc
@@ -213,6 +213,7 @@
 }
 
 void DynamicPartitionControlAndroid::CleanupInternal(bool wait) {
+  metadata_device_.reset();
   if (mapped_devices_.empty()) {
     return;
   }
@@ -356,6 +357,11 @@
   target_supports_snapshot_ =
       manifest.dynamic_partition_metadata().snapshot_enabled();
 
+  if (GetVirtualAbFeatureFlag().IsEnabled()) {
+    metadata_device_ = snapshot_->EnsureMetadataMounted();
+    TEST_AND_RETURN_FALSE(metadata_device_ != nullptr);
+  }
+
   if (!update)
     return true;