update_engine: cow estimator to use cow version

Update the estimator in update_engine to create a cow estimator based on
version described in metadata. Previously update_engine reads from a
hardcoded constant

Test: ota_from_target_files with --vabc_cow_veresion flag
Change-Id: I9ebcf7195c0bd7f3173edbba0d0252a74f06432d
diff --git a/payload_generator/cow_size_estimator.cc b/payload_generator/cow_size_estimator.cc
index 22ef609..9ab2b87 100644
--- a/payload_generator/cow_size_estimator.cc
+++ b/payload_generator/cow_size_estimator.cc
@@ -145,13 +145,13 @@
     const size_t block_size,
     std::string compression,
     const size_t partition_size,
-    const bool xor_enabled) {
+    const bool xor_enabled,
+    uint32_t cow_version) {
   android::snapshot::CowOptions options{
       .block_size = static_cast<uint32_t>(block_size),
       .compression = std::move(compression),
       .max_blocks = (partition_size / block_size)};
-  auto cow_writer =
-      CreateCowEstimator(android::snapshot::kCowVersionManifest, options);
+  auto cow_writer = CreateCowEstimator(cow_version, options);
   CHECK_NE(cow_writer, nullptr) << "Could not create cow estimator";
   CHECK(CowDryRun(source_fd,
                   target_fd,
diff --git a/payload_generator/cow_size_estimator.h b/payload_generator/cow_size_estimator.h
index c9fab09..7cb3485 100644
--- a/payload_generator/cow_size_estimator.h
+++ b/payload_generator/cow_size_estimator.h
@@ -37,7 +37,8 @@
     const size_t block_size,
     std::string compression,
     const size_t partition_size,
-    bool xor_enabled);
+    bool xor_enabled,
+    uint32_t cow_version);
 
 // Convert InstallOps to CowOps and apply the converted cow op to |cow_writer|
 bool CowDryRun(
diff --git a/payload_generator/delta_diff_generator.cc b/payload_generator/delta_diff_generator.cc
index b1dc693..0da929e 100644
--- a/payload_generator/delta_diff_generator.cc
+++ b/payload_generator/delta_diff_generator.cc
@@ -142,9 +142,10 @@
         config_.block_size,
         config_.target.dynamic_partition_metadata->vabc_compression_param(),
         new_part_.size,
-        config_.enable_vabc_xor);
+        config_.enable_vabc_xor,
+        config_.target.dynamic_partition_metadata->cow_version());
 
-    // ops buffer size == 0 for v2 of cow format
+    // ops buffer size == 0 for v2 version of cow format
     LOG(INFO) << "Estimated COW size for partition: " << new_part_.name << " "
               << cow_info_->cow_size
               << " ops buffer size: " << cow_info_->op_count_max;