Refactor for ISnapshotWriter removal.

Bug: 280529365
Test: update_engine_unittests
      apply ota
Change-Id: I03e899ba31077f828268be3775ebceba3850c528
diff --git a/common/dynamic_partition_control_interface.h b/common/dynamic_partition_control_interface.h
index 3f735bb..490892e 100644
--- a/common/dynamic_partition_control_interface.h
+++ b/common/dynamic_partition_control_interface.h
@@ -32,7 +32,7 @@
 
 // Forware declare for libsnapshot/snapshot_writer.h
 namespace android::snapshot {
-class ISnapshotWriter;
+class ICowWriter;
 }
 
 namespace chromeos_update_engine {
@@ -166,10 +166,10 @@
   // If `is_append` is false, then existing COW data will be overwritten.
   // Otherwise the cow writer will be opened on APPEND mode, existing COW data
   // is preserved.
-  virtual std::unique_ptr<android::snapshot::ISnapshotWriter> OpenCowWriter(
+  virtual std::unique_ptr<android::snapshot::ICowWriter> OpenCowWriter(
       const std::string& unsuffixed_partition_name,
       const std::optional<std::string>&,
-      bool is_append = false) = 0;
+      std::optional<uint64_t> label) = 0;
   // Open a general purpose FD capable to reading and writing to COW. Note that
   // writes must be block aligned.
   virtual std::unique_ptr<FileDescriptor> OpenCowFd(
diff --git a/common/dynamic_partition_control_stub.cc b/common/dynamic_partition_control_stub.cc
index 03f7361..fd9a3b4 100644
--- a/common/dynamic_partition_control_stub.cc
+++ b/common/dynamic_partition_control_stub.cc
@@ -100,11 +100,11 @@
   return true;
 }
 
-std::unique_ptr<android::snapshot::ISnapshotWriter>
+std::unique_ptr<android::snapshot::ICowWriter>
 DynamicPartitionControlStub::OpenCowWriter(
     const std::string& /*unsuffixed_partition_name*/,
     const std::optional<std::string>& /*source_path*/,
-    bool /*is_append*/) {
+    std::optional<uint64_t>) {
   return nullptr;
 }
 
diff --git a/common/dynamic_partition_control_stub.h b/common/dynamic_partition_control_stub.h
index 4236051..1db6a78 100644
--- a/common/dynamic_partition_control_stub.h
+++ b/common/dynamic_partition_control_stub.h
@@ -27,7 +27,8 @@
 
 namespace chromeos_update_engine {
 
-class DynamicPartitionControlStub final : public DynamicPartitionControlInterface {
+class DynamicPartitionControlStub final
+    : public DynamicPartitionControlInterface {
  public:
   FeatureFlag GetDynamicPartitionsFeatureFlag() override;
   FeatureFlag GetVirtualAbFeatureFlag() override;
@@ -62,10 +63,10 @@
       uint32_t target_slot,
       const std::vector<std::string>& partitions) override;
 
-  std::unique_ptr<android::snapshot::ISnapshotWriter> OpenCowWriter(
+  std::unique_ptr<android::snapshot::ICowWriter> OpenCowWriter(
       const std::string& unsuffixed_partition_name,
       const std::optional<std::string>&,
-      bool is_append) override;
+      std::optional<uint64_t> label) override;
 
   std::unique_ptr<FileDescriptor> OpenCowFd(
       const std::string& unsuffixed_partition_name,
diff --git a/common/mock_dynamic_partition_control.h b/common/mock_dynamic_partition_control.h
index 8cff28f..79909b4 100644
--- a/common/mock_dynamic_partition_control.h
+++ b/common/mock_dynamic_partition_control.h
@@ -22,6 +22,7 @@
 #include <vector>
 
 #include <gmock/gmock.h>
+#include <libsnapshot/cow_writer.h>
 
 #include "update_engine/common/dynamic_partition_control_interface.h"
 #include "update_engine/payload_consumer/file_descriptor.h"
@@ -58,9 +59,11 @@
               (const std::string&, const InstallOperation&, InstallOperation*),
               (override));
 
-  MOCK_METHOD(std::unique_ptr<android::snapshot::ISnapshotWriter>,
+  MOCK_METHOD(std::unique_ptr<android::snapshot::ICowWriter>,
               OpenCowWriter,
-              (const std::string&, const std::optional<std::string>&, bool),
+              (const std::string&,
+               const std::optional<std::string>&,
+               std::optional<uint64_t> label),
               (override));
 
   MOCK_METHOD(