Fix incorrect mountable device path for VABC

Test: serve an OTA with postinstall, make sure postinstall works
Bug: 181182967

Change-Id: Ifd44bb700c4bca28a391c64fbc9888c79612f26f
diff --git a/aosp/dynamic_partition_control_android.cc b/aosp/dynamic_partition_control_android.cc
index 657eec9..62da659 100644
--- a/aosp/dynamic_partition_control_android.cc
+++ b/aosp/dynamic_partition_control_android.cc
@@ -1015,9 +1015,11 @@
       partition_name + SlotSuffixForSlotNumber(slot);
   if (UpdateUsesSnapshotCompression() && IsDynamicPartition(partition_name) &&
       slot != current_slot) {
-    return {{.mountable_device_path =
-                 GetStaticDevicePath(device_dir, partition_name_suffix),
-             .is_dynamic = true}};
+    return {
+        {.mountable_device_path = base::FilePath{std::string{VABC_DEVICE_DIR}}
+                                      .Append(partition_name_suffix)
+                                      .value(),
+         .is_dynamic = true}};
   }
 
   // When looking up target partition devices, treat them as static if the
diff --git a/aosp/dynamic_partition_control_android.h b/aosp/dynamic_partition_control_android.h
index d7c8781..a23827b 100644
--- a/aosp/dynamic_partition_control_android.h
+++ b/aosp/dynamic_partition_control_android.h
@@ -20,6 +20,7 @@
 #include <memory>
 #include <set>
 #include <string>
+#include <string_view>
 #include <vector>
 
 #include <base/files/file_util.h>
@@ -33,6 +34,10 @@
 
 class DynamicPartitionControlAndroid : public DynamicPartitionControlInterface {
  public:
+  // A directory where all partitions mapped by VABC is expected to be found.
+  // Per earlier discussion with VAB team, this directory is unlikely to change.
+  // So we declare it as a constant here.
+  static constexpr std::string_view VABC_DEVICE_DIR = "/dev/block/mapper/";
   DynamicPartitionControlAndroid();
   ~DynamicPartitionControlAndroid();
 
diff --git a/aosp/dynamic_partition_control_android_unittest.cc b/aosp/dynamic_partition_control_android_unittest.cc
index 2f290d7..4a12b83 100644
--- a/aosp/dynamic_partition_control_android_unittest.cc
+++ b/aosp/dynamic_partition_control_android_unittest.cc
@@ -472,7 +472,10 @@
   auto device_info =
       dynamicControl().GetPartitionDevice("system", target(), source(), false);
   ASSERT_TRUE(device_info.has_value());
-  ASSERT_EQ(device_info->mountable_device_path, GetDevice(T("system")));
+  base::FilePath vabc_device_dir{
+      std::string{DynamicPartitionControlAndroid::VABC_DEVICE_DIR}};
+  ASSERT_EQ(device_info->mountable_device_path,
+            vabc_device_dir.Append(T("system")).value());
 }
 
 TEST_P(DynamicPartitionControlAndroidTestP,
@@ -1102,7 +1105,8 @@
   SetMetadata(
       source(), {{S("system"), 2_GiB}, {S("vendor"), 1_GiB}}, 0, super_size);
   ExpectUnmap({T("system"), T("vendor")});
-  // Expect that the source partitions aren't present in target super metadata.
+  // Expect that the source partitions aren't present in target super
+  // metadata.
   ExpectStoreMetadata({{T("system"), 3_GiB}, {T("vendor"), 1_GiB}});
 
   uint64_t required_size = 0;