diff --git a/boot_control_android.cc b/boot_control_android.cc
index 8eafdce..12296d7 100644
--- a/boot_control_android.cc
+++ b/boot_control_android.cc
@@ -298,7 +298,7 @@
       super_device, builder.get(), target_slot);
 }
 
-// Unmap all partitions, and remap partitions.
+// Unmap all partitions, and remap partitions as writable.
 bool Remap(DynamicPartitionControlInterface* dynamic_control,
            const string& super_device,
            Slot target_slot,
@@ -318,6 +318,7 @@
               super_device,
               partition.name + target_suffix,
               target_slot,
+              true /* force writable */,
               &map_path)) {
         return false;
       }
diff --git a/boot_control_android_unittest.cc b/boot_control_android_unittest.cc
index 8185508..e98d2f4 100644
--- a/boot_control_android_unittest.cc
+++ b/boot_control_android_unittest.cc
@@ -306,16 +306,17 @@
 
   // Expect that MapPartitionOnDeviceMapper is called on target() metadata slot
   // with each partition in |partitions|.
-  void ExpectMap(const std::set<std::string>& partitions) {
+  void ExpectMap(const std::set<std::string>& partitions,
+                 bool force_writable = true) {
     // Error when MapPartitionOnDeviceMapper is called on unknown arguments.
-    ON_CALL(dynamicControl(), MapPartitionOnDeviceMapper(_, _, _, _))
+    ON_CALL(dynamicControl(), MapPartitionOnDeviceMapper(_, _, _, _, _))
         .WillByDefault(Return(false));
 
     for (const auto& partition : partitions) {
-      EXPECT_CALL(
-          dynamicControl(),
-          MapPartitionOnDeviceMapper(GetSuperDevice(), partition, target(), _))
-          .WillOnce(Invoke([this](auto, auto partition, auto, auto path) {
+      EXPECT_CALL(dynamicControl(),
+                  MapPartitionOnDeviceMapper(
+                      GetSuperDevice(), partition, target(), force_writable, _))
+          .WillOnce(Invoke([this](auto, auto partition, auto, auto, auto path) {
             auto it = mapped_devices_.find(partition);
             if (it != mapped_devices_.end()) {
               *path = it->second;
diff --git a/dynamic_partition_control_android.cc b/dynamic_partition_control_android.cc
index 5e2c2a4..38c6759 100644
--- a/dynamic_partition_control_android.cc
+++ b/dynamic_partition_control_android.cc
@@ -55,11 +55,12 @@
     const std::string& super_device,
     const std::string& target_partition_name,
     uint32_t slot,
+    bool force_writable,
     std::string* path) {
   if (!CreateLogicalPartition(super_device.c_str(),
                               slot,
                               target_partition_name,
-                              true /* force_writable */,
+                              force_writable,
                               std::chrono::milliseconds(kMapTimeoutMillis),
                               path)) {
     LOG(ERROR) << "Cannot map " << target_partition_name << " in "
@@ -67,7 +68,8 @@
     return false;
   }
   LOG(INFO) << "Succesfully mapped " << target_partition_name
-            << " to device mapper; device path at " << *path;
+            << " to device mapper (force_writable = " << force_writable
+            << "); device path at " << *path;
   mapped_devices_.insert(target_partition_name);
   return true;
 }
diff --git a/dynamic_partition_control_android.h b/dynamic_partition_control_android.h
index 945954d..91c9f87 100644
--- a/dynamic_partition_control_android.h
+++ b/dynamic_partition_control_android.h
@@ -33,6 +33,7 @@
   bool MapPartitionOnDeviceMapper(const std::string& super_device,
                                   const std::string& target_partition_name,
                                   uint32_t slot,
+                                  bool force_writable,
                                   std::string* path) override;
   bool UnmapPartitionOnDeviceMapper(const std::string& target_partition_name,
                                     bool wait) override;
diff --git a/dynamic_partition_control_interface.h b/dynamic_partition_control_interface.h
index 00ed026..95b01a1 100644
--- a/dynamic_partition_control_interface.h
+++ b/dynamic_partition_control_interface.h
@@ -46,6 +46,7 @@
       const std::string& super_device,
       const std::string& target_partition_name,
       uint32_t slot,
+      bool force_writable,
       std::string* path) = 0;
 
   // Unmap logical partition on device mapper. This is the reverse operation
diff --git a/mock_dynamic_partition_control.h b/mock_dynamic_partition_control.h
index ccbc7cf..6b233b3 100644
--- a/mock_dynamic_partition_control.h
+++ b/mock_dynamic_partition_control.h
@@ -27,9 +27,12 @@
 
 class MockDynamicPartitionControl : public DynamicPartitionControlInterface {
  public:
-  MOCK_METHOD4(
-      MapPartitionOnDeviceMapper,
-      bool(const std::string&, const std::string&, uint32_t, std::string*));
+  MOCK_METHOD5(MapPartitionOnDeviceMapper,
+               bool(const std::string&,
+                    const std::string&,
+                    uint32_t,
+                    bool,
+                    std::string*));
   MOCK_METHOD2(UnmapPartitionOnDeviceMapper, bool(const std::string&, bool));
   MOCK_METHOD0(Cleanup, void());
   MOCK_METHOD1(DeviceExists, bool(const std::string&));
