Add a CLI option to enable/disable puffdiff

For fast OTA generation during development

Test: th
Change-Id: Idadace48a9533ba8597a826510dedc2ab3ac9d90
diff --git a/payload_generator/generate_delta_main.cc b/payload_generator/generate_delta_main.cc
index 6daa36c..8fa86f0 100644
--- a/payload_generator/generate_delta_main.cc
+++ b/payload_generator/generate_delta_main.cc
@@ -445,6 +445,11 @@
             false,
             "Whether to enable LZ4diff feature when processing EROFS images.");
 
+DEFINE_bool(enable_puffdiff,
+            true,
+            "Whether to enable puffdiff feature. Enabling puffdiff will take "
+            "longer but generated OTA will be smaller.");
+
 DEFINE_bool(
     enable_zucchini,
     true,
@@ -612,6 +617,7 @@
   payload_config.enable_vabc_xor = FLAGS_enable_vabc_xor;
   payload_config.enable_lz4diff = FLAGS_enable_lz4diff;
   payload_config.enable_zucchini = FLAGS_enable_zucchini;
+  payload_config.enable_puffdiff = FLAGS_enable_puffdiff;
 
   payload_config.ParseCompressorTypes(FLAGS_compressor_types);
 
diff --git a/payload_generator/payload_generation_config.cc b/payload_generator/payload_generation_config.cc
index f8469ea..a974180 100644
--- a/payload_generator/payload_generation_config.cc
+++ b/payload_generator/payload_generation_config.cc
@@ -38,6 +38,7 @@
 #include "update_engine/payload_generator/mapfile_filesystem.h"
 #include "update_engine/payload_generator/raw_filesystem.h"
 #include "update_engine/payload_generator/squashfs_filesystem.h"
+#include "update_engine/update_metadata.pb.h"
 
 using std::string;
 
@@ -393,6 +394,8 @@
     case InstallOperation::LZ4DIFF_BSDIFF:
     case InstallOperation::LZ4DIFF_PUFFDIFF:
       return enable_lz4diff;
+    case InstallOperation::PUFFDIFF:
+      return enable_puffdiff;
     default:
       return true;
   }
diff --git a/payload_generator/payload_generation_config.h b/payload_generator/payload_generation_config.h
index 225237a..0256a9d 100644
--- a/payload_generator/payload_generation_config.h
+++ b/payload_generator/payload_generation_config.h
@@ -261,6 +261,9 @@
   // Whether to enable zucchini ops
   bool enable_zucchini = true;
 
+  // Whether to enable puffdiff ops
+  bool enable_puffdiff = true;
+
   std::string security_patch_level;
 
   uint32_t max_threads = 0;