Add install op types for lz4diff am: f67dc4974d

Original change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1915660

Change-Id: Ic908c38445a730fb385fdccab61874c3b554331e
diff --git a/payload_consumer/payload_constants.cc b/payload_consumer/payload_constants.cc
index f25bd4c..4719be8 100644
--- a/payload_consumer/payload_constants.cc
+++ b/payload_consumer/payload_constants.cc
@@ -37,7 +37,7 @@
 const uint32_t kZucchiniMinorPayloadVersion = 8;
 
 const uint32_t kMinSupportedMinorPayloadVersion = kSourceMinorPayloadVersion;
-const uint32_t kMaxSupportedMinorPayloadVersion = kZucchiniMinorPayloadVersion;
+const uint32_t kMaxSupportedMinorPayloadVersion = kLZ4DIFFMinorPayloadVersion;
 
 const uint64_t kMaxPayloadHeaderSize = 24;
 
@@ -68,6 +68,10 @@
       return "BROTLI_BSDIFF";
     case InstallOperation::ZUCCHINI:
       return "ZUCCHINI";
+    case InstallOperation::LZ4DIFF_BSDIFF:
+      return "LZ4DIFF_BSDIFF";
+    case InstallOperation::LZ4DIFF_PUFFDIFF:
+      return "LZ4DIFF_PUFFIDFF";
     case InstallOperation::BSDIFF:
     case InstallOperation::MOVE:
       NOTREACHED();
diff --git a/payload_consumer/payload_constants.h b/payload_consumer/payload_constants.h
index 28edf4e..31e24f7 100644
--- a/payload_consumer/payload_constants.h
+++ b/payload_consumer/payload_constants.h
@@ -62,6 +62,9 @@
 // The minor version that allows ZUCCHINI operation.
 extern const uint32_t kZucchiniMinorPayloadVersion;
 
+// THe minor version that allows LZ4DIFF operation
+constexpr uint32_t kLZ4DIFFMinorPayloadVersion = 9;
+
 // The minimum and maximum supported minor version.
 extern const uint32_t kMinSupportedMinorPayloadVersion;
 extern const uint32_t kMaxSupportedMinorPayloadVersion;
diff --git a/payload_generator/payload_generation_config.cc b/payload_generator/payload_generation_config.cc
index 178261e..cbdecef 100644
--- a/payload_generator/payload_generation_config.cc
+++ b/payload_generator/payload_generation_config.cc
@@ -26,6 +26,7 @@
 #include <libsnapshot/cow_format.h>
 
 #include "bsdiff/constants.h"
+#include "payload_consumer/payload_constants.h"
 #include "update_engine/common/utils.h"
 #include "update_engine/payload_consumer/delta_performer.h"
 #include "update_engine/payload_generator/boot_img_filesystem.h"
@@ -240,7 +241,8 @@
                         minor == kPuffdiffMinorPayloadVersion ||
                         minor == kVerityMinorPayloadVersion ||
                         minor == kPartialUpdateMinorPayloadVersion ||
-                        minor == kZucchiniMinorPayloadVersion);
+                        minor == kZucchiniMinorPayloadVersion ||
+                        minor == kLZ4DIFFMinorPayloadVersion);
   return true;
 }
 
@@ -274,6 +276,9 @@
 
     case InstallOperation::ZUCCHINI:
       return minor >= kZucchiniMinorPayloadVersion;
+    case InstallOperation::LZ4DIFF_BSDIFF:
+    case InstallOperation::LZ4DIFF_PUFFDIFF:
+      return minor >= kLZ4DIFFMinorPayloadVersion;
 
     case InstallOperation::MOVE:
     case InstallOperation::BSDIFF:
diff --git a/update_metadata.proto b/update_metadata.proto
index 6164a4d..d318a62 100644
--- a/update_metadata.proto
+++ b/update_metadata.proto
@@ -190,6 +190,10 @@
 
     // On minor version 8 or newer, these operations are supported:
     ZUCCHINI = 11;
+
+    // On minor version 9 or newer, these operations are supported:
+    LZ4DIFF_BSDIFF = 12;
+    LZ4DIFF_PUFFDIFF = 13;
   }
   required Type type = 1;