diff --git a/delta_performer.cc b/delta_performer.cc
index de877b8..6094c5a 100644
--- a/delta_performer.cc
+++ b/delta_performer.cc
@@ -68,6 +68,8 @@
 const unsigned DeltaPerformer::kProgressDownloadWeight = 50;
 const unsigned DeltaPerformer::kProgressOperationsWeight = 50;
 
+const uint64_t kChromeOSMajorPayloadVersion = 1;
+const uint64_t kBrilloMajorPayloadVersion = 2;
 const uint32_t kInPlaceMinorPayloadVersion = 1;
 const uint32_t kSourceMinorPayloadVersion = 2;
 
diff --git a/delta_performer.h b/delta_performer.h
index 45cb615..38a4151 100644
--- a/delta_performer.h
+++ b/delta_performer.h
@@ -36,6 +36,12 @@
 
 namespace chromeos_update_engine {
 
+// The major version used by Chrome OS.
+extern const uint64_t kChromeOSMajorPayloadVersion;
+
+// The major version used by Brillo.
+extern const uint64_t kBrilloMajorPayloadVersion;
+
 // The minor version used by the in-place delta generator algorithm.
 extern const uint32_t kInPlaceMinorPayloadVersion;
 
diff --git a/delta_performer_unittest.cc b/delta_performer_unittest.cc
index 0451d9a..f0f399d 100644
--- a/delta_performer_unittest.cc
+++ b/delta_performer_unittest.cc
@@ -543,6 +543,7 @@
     payload_config.is_delta = !full_rootfs;
     payload_config.hard_chunk_size = chunk_size;
     payload_config.rootfs_partition_size = kRootFSPartitionSize;
+    payload_config.major_version = kChromeOSMajorPayloadVersion;
     payload_config.minor_version = minor_version;
     if (!full_rootfs) {
       payload_config.source.rootfs.path = state->a_img;
diff --git a/payload_generator/generate_delta_main.cc b/payload_generator/generate_delta_main.cc
index 1dedd68..0a5e105 100644
--- a/payload_generator/generate_delta_main.cc
+++ b/payload_generator/generate_delta_main.cc
@@ -261,6 +261,8 @@
   DEFINE_uint64(rootfs_partition_size,
                chromeos_update_engine::kRootFSPartitionSize,
                "RootFS partition size for the image once installed");
+  DEFINE_uint64(major_version, 1,
+               "The major version of the payload being generated.");
   DEFINE_int32(minor_version, -1,
                "The minor version of the payload being generated "
                "(-1 means autodetect).");
@@ -405,6 +407,9 @@
     CHECK(payload_config.source.kernel.OpenFilesystem());
   }
 
+  payload_config.major_version = FLAGS_major_version;
+  LOG(INFO) << "Using provided major_version=" << FLAGS_major_version;
+
   if (FLAGS_minor_version == -1) {
     // Autodetect minor_version by looking at the update_engine.conf in the old
     // image.
diff --git a/payload_generator/payload_file.cc b/payload_generator/payload_file.cc
index d3cc0ba..66f51dd 100644
--- a/payload_generator/payload_file.cc
+++ b/payload_generator/payload_file.cc
@@ -18,6 +18,7 @@
 
 #include <algorithm>
 
+#include "update_engine/delta_performer.h"
 #include "update_engine/file_writer.h"
 #include "update_engine/omaha_hash_calculator.h"
 #include "update_engine/payload_constants.h"
@@ -33,8 +34,6 @@
 
 namespace {
 
-const uint64_t kMajorVersionNumber = 1;
-
 static const char* kInstallOperationTypes[] = {
   "REPLACE",
   "REPLACE_BZ",
@@ -73,6 +72,9 @@
 };
 
 bool PayloadFile::Init(const PayloadGenerationConfig& config) {
+  major_version_ = config.major_version;
+  TEST_AND_RETURN_FALSE(major_version_ == kChromeOSMajorPayloadVersion ||
+                        major_version_ == kBrilloMajorPayloadVersion);
   manifest_.set_minor_version(config.minor_version);
 
   if (!config.source.ImageInfoIsEmpty())
@@ -179,7 +181,7 @@
   TEST_AND_RETURN_FALSE(writer.Write(kDeltaMagic, strlen(kDeltaMagic)));
 
   // Write major version number
-  TEST_AND_RETURN_FALSE(WriteUint64AsBigEndian(&writer, kMajorVersionNumber));
+  TEST_AND_RETURN_FALSE(WriteUint64AsBigEndian(&writer, major_version_));
 
   // Write protobuf length
   TEST_AND_RETURN_FALSE(WriteUint64AsBigEndian(&writer,
diff --git a/payload_generator/payload_file.h b/payload_generator/payload_file.h
index 51c699c..6e0776c 100644
--- a/payload_generator/payload_file.h
+++ b/payload_generator/payload_file.h
@@ -81,6 +81,9 @@
   // payload file.
   static const std::vector<PartitionName> partition_disk_order_;
 
+  // The major_version of the requested payload.
+  uint64_t major_version_;
+
   DeltaArchiveManifest manifest_;
 
   std::map<PartitionName, std::vector<AnnotatedOperation>> aops_map_;
diff --git a/payload_generator/payload_generation_config.h b/payload_generator/payload_generation_config.h
index 191b674..372e427 100644
--- a/payload_generator/payload_generation_config.h
+++ b/payload_generator/payload_generation_config.h
@@ -117,6 +117,9 @@
   // Wheter the requested payload is a delta payload.
   bool is_delta = false;
 
+  // The major_version of the requested payload.
+  uint64_t major_version;
+
   // The minor_version of the requested payload.
   uint32_t minor_version;
 
