Switch supported minor version to 3.

Bug: 23182225
TEST=cros_workon_make update_engine --test

Change-Id: Ide798f89bd0e3f662d2deac96035780892bbfa08
diff --git a/payload_consumer/delta_performer.cc b/payload_consumer/delta_performer.cc
index 0949f3d..6261cb1 100644
--- a/payload_consumer/delta_performer.cc
+++ b/payload_consumer/delta_performer.cc
@@ -64,7 +64,7 @@
 const uint64_t DeltaPerformer::kDeltaMetadataSignatureSizeSize = 4;
 const uint64_t DeltaPerformer::kMaxPayloadHeaderSize = 24;
 const uint64_t DeltaPerformer::kSupportedMajorPayloadVersion = 2;
-const uint32_t DeltaPerformer::kSupportedMinorPayloadVersion = 2;
+const uint32_t DeltaPerformer::kSupportedMinorPayloadVersion = 3;
 
 const unsigned DeltaPerformer::kProgressLogMaxChunks = 10;
 const unsigned DeltaPerformer::kProgressLogTimeoutSeconds = 30;
@@ -290,9 +290,9 @@
     return false;
 
   const PartitionUpdate& partition = partitions_[current_partition_];
-  // Open source fds if we have a delta payload with minor version 2.
+  // Open source fds if we have a delta payload with minor version >= 2.
   if (!install_plan_->is_full_update &&
-      GetMinorVersion() == kSourceMinorPayloadVersion) {
+      GetMinorVersion() != kInPlaceMinorPayloadVersion) {
     source_path_ = install_plan_->partitions[current_partition_].source_path;
     int err;
     source_fd_ = OpenFile(source_path_.c_str(), O_RDONLY, &err);
diff --git a/payload_consumer/delta_performer_unittest.cc b/payload_consumer/delta_performer_unittest.cc
index 97f7892..8192632 100644
--- a/payload_consumer/delta_performer_unittest.cc
+++ b/payload_consumer/delta_performer_unittest.cc
@@ -111,6 +111,14 @@
 
   brillo::Blob GeneratePayload(const brillo::Blob& blob_data,
                                const vector<AnnotatedOperation>& aops,
+                               bool sign_payload) {
+    return GeneratePayload(blob_data, aops, sign_payload,
+                           DeltaPerformer::kSupportedMajorPayloadVersion,
+                           DeltaPerformer::kSupportedMinorPayloadVersion);
+  }
+
+  brillo::Blob GeneratePayload(const brillo::Blob& blob_data,
+                               const vector<AnnotatedOperation>& aops,
                                bool sign_payload,
                                uint64_t major_version,
                                uint32_t minor_version) {
@@ -370,9 +378,7 @@
   aop.op.set_type(InstallOperation::REPLACE);
   aops.push_back(aop);
 
-  brillo::Blob payload_data = GeneratePayload(expected_data, aops, false,
-                                              kChromeOSMajorPayloadVersion,
-                                              kSourceMinorPayloadVersion);
+  brillo::Blob payload_data = GeneratePayload(expected_data, aops, false);
 
   EXPECT_EQ(expected_data, ApplyPayload(payload_data, "/dev/null", true));
 }
@@ -392,9 +398,7 @@
   aop.op.set_type(InstallOperation::REPLACE_BZ);
   aops.push_back(aop);
 
-  brillo::Blob payload_data = GeneratePayload(bz_data, aops, false,
-                                              kChromeOSMajorPayloadVersion,
-                                              kSourceMinorPayloadVersion);
+  brillo::Blob payload_data = GeneratePayload(bz_data, aops, false);
 
   EXPECT_EQ(expected_data, ApplyPayload(payload_data, "/dev/null", true));
 }
@@ -414,9 +418,7 @@
   aop.op.set_type(InstallOperation::REPLACE_XZ);
   vector<AnnotatedOperation> aops = {aop};
 
-  brillo::Blob payload_data = GeneratePayload(xz_data, aops, false,
-                                              kChromeOSMajorPayloadVersion,
-                                              kSourceMinorPayloadVersion);
+  brillo::Blob payload_data = GeneratePayload(xz_data, aops, false);
 
   EXPECT_EQ(expected_data, ApplyPayload(payload_data, "/dev/null", true));
 }
@@ -437,9 +439,7 @@
   aop.op.set_type(InstallOperation::ZERO);
   vector<AnnotatedOperation> aops = {aop};
 
-  brillo::Blob payload_data = GeneratePayload(brillo::Blob(), aops, false,
-                                              kChromeOSMajorPayloadVersion,
-                                              kSourceMinorPayloadVersion);
+  brillo::Blob payload_data = GeneratePayload(brillo::Blob(), aops, false);
 
   EXPECT_EQ(expected_data,
             ApplyPayloadToData(payload_data, "/dev/null", existing_data, true));
@@ -457,9 +457,8 @@
   EXPECT_TRUE(HashCalculator::RawHashOfData(expected_data, &src_hash));
   aop.op.set_src_sha256_hash(src_hash.data(), src_hash.size());
 
-  brillo::Blob payload_data =
-      GeneratePayload(brillo::Blob(), {aop}, false,
-                      kChromeOSMajorPayloadVersion, kSourceMinorPayloadVersion);
+  brillo::Blob payload_data = GeneratePayload(brillo::Blob(), {aop}, false);
+
   string source_path;
   EXPECT_TRUE(utils::MakeTempFile("Source-XXXXXX",
                                   &source_path, nullptr));
@@ -485,9 +484,8 @@
   EXPECT_TRUE(HashCalculator::RawHashOfData(expected_data, &src_hash));
   aop.op.set_src_sha256_hash(src_hash.data(), src_hash.size());
 
-  brillo::Blob payload_data =
-      GeneratePayload(brillo::Blob(), {aop}, false,
-                      kChromeOSMajorPayloadVersion, kSourceMinorPayloadVersion);
+  brillo::Blob payload_data = GeneratePayload(brillo::Blob(), {aop}, false);
+
   string source_path;
   EXPECT_TRUE(utils::MakeTempFile("Source-XXXXXX", &source_path, nullptr));
   ScopedPathUnlinker path_unlinker(source_path);
diff --git a/update_engine.conf b/update_engine.conf
index 981887d..449e669 100644
--- a/update_engine.conf
+++ b/update_engine.conf
@@ -1,2 +1,2 @@
 PAYLOAD_MAJOR_VERSION=2
-PAYLOAD_MINOR_VERSION=2
+PAYLOAD_MINOR_VERSION=3