Do not include signature dummy operation in major version 2.

It only exists for compatibility reason, for major version 2, there's no
point to add this any more.

Bug: None
TEST=Applied the new payload to a device.

Change-Id: I5803ab755415a1ba3d7460d82956bfe6e9fd4547
diff --git a/payload_generator/payload_signer.cc b/payload_generator/payload_signer.cc
index fa8c4ba..f1242e1 100644
--- a/payload_generator/payload_signer.cc
+++ b/payload_generator/payload_signer.cc
@@ -128,10 +128,11 @@
     LOG(INFO) << "Matching signature sizes already present.";
   } else {
     // Updates the manifest to include the signature operation.
-    PayloadSigner::AddSignatureOp(payload.size() - metadata_size -
-                                  metadata_signature_size,
-                                  signature_blob.size(),
-                                  &manifest);
+    PayloadSigner::AddSignatureToManifest(
+        payload.size() - metadata_size - metadata_signature_size,
+        signature_blob.size(),
+        major_version == kChromeOSMajorPayloadVersion,
+        &manifest);
 
     // Updates the payload to include the new manifest.
     string serialized_manifest;
@@ -198,24 +199,27 @@
 
 }  // namespace
 
-void PayloadSigner::AddSignatureOp(uint64_t signature_blob_offset,
-                                   uint64_t signature_blob_length,
-                                   DeltaArchiveManifest* manifest) {
+void PayloadSigner::AddSignatureToManifest(uint64_t signature_blob_offset,
+                                           uint64_t signature_blob_length,
+                                           bool add_dummy_op,
+                                           DeltaArchiveManifest* manifest) {
   LOG(INFO) << "Making room for signature in file";
   manifest->set_signatures_offset(signature_blob_offset);
   LOG(INFO) << "set? " << manifest->has_signatures_offset();
-  // Add a dummy op at the end to appease older clients
-  InstallOperation* dummy_op = manifest->add_kernel_install_operations();
-  dummy_op->set_type(InstallOperation::REPLACE);
-  dummy_op->set_data_offset(signature_blob_offset);
   manifest->set_signatures_offset(signature_blob_offset);
-  dummy_op->set_data_length(signature_blob_length);
   manifest->set_signatures_size(signature_blob_length);
-  Extent* dummy_extent = dummy_op->add_dst_extents();
-  // Tell the dummy op to write this data to a big sparse hole
-  dummy_extent->set_start_block(kSparseHole);
-  dummy_extent->set_num_blocks((signature_blob_length + kBlockSize - 1) /
-                               kBlockSize);
+  // Add a dummy op at the end to appease older clients
+  if (add_dummy_op) {
+    InstallOperation* dummy_op = manifest->add_kernel_install_operations();
+    dummy_op->set_type(InstallOperation::REPLACE);
+    dummy_op->set_data_offset(signature_blob_offset);
+    dummy_op->set_data_length(signature_blob_length);
+    Extent* dummy_extent = dummy_op->add_dst_extents();
+    // Tell the dummy op to write this data to a big sparse hole
+    dummy_extent->set_start_block(kSparseHole);
+    dummy_extent->set_num_blocks((signature_blob_length + kBlockSize - 1) /
+                                 kBlockSize);
+  }
 }
 
 bool PayloadSigner::LoadPayload(const std::string& payload_path,