diff options
author | Allie Wood <alliewood@chromium.org> | 2015-02-09 14:33:40 -0800 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-02-10 23:07:46 +0000 |
commit | b8ccad0a8ac2632da2788b47d85e62e334bbe652 (patch) | |
tree | 3f69fca12fc14d21cd263a3986d99b2c7402b19a /payload_generator/generate_delta_main.cc | |
parent | 063181c4fb0ab86c6aaba307c0cc00b901c4522b (diff) |
update_engine: Add command line option for payload minor version.
Adds minor_version option to delta_generator for delta updates. This
defaults to kSupportedMinorPayloadVersion when the value is not given.
Stores the value in the DeltaArchiveManifest protobuf. Checks
that the specified version is supported, and fails if it is not.
BUG=chromium:455489
TEST=delta_diff_generator unit tests and manual testing.
Change-Id: I95fb5576d8f33fe8be738488c5ea85d8a46e917b
Reviewed-on: https://chromium-review.googlesource.com/247802
Reviewed-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Allie Wood <alliewood@chromium.org>
Trybot-Ready: Allie Wood <alliewood@chromium.org>
Tested-by: Allie Wood <alliewood@chromium.org>
Diffstat (limited to 'payload_generator/generate_delta_main.cc')
-rw-r--r-- | payload_generator/generate_delta_main.cc | 52 |
1 files changed, 36 insertions, 16 deletions
diff --git a/payload_generator/generate_delta_main.cc b/payload_generator/generate_delta_main.cc index bcd8738a..c0dfe186 100644 --- a/payload_generator/generate_delta_main.cc +++ b/payload_generator/generate_delta_main.cc @@ -40,6 +40,8 @@ namespace chromeos_update_engine { namespace { +const uint64_t kInPlaceMinorPayloadVersion = 1; + void ParseSignatureSizes(const string& signature_sizes_flag, vector<int>* signature_sizes) { signature_sizes->clear(); @@ -253,6 +255,8 @@ int Main(int argc, char** argv) { DEFINE_int64(rootfs_partition_size, chromeos_update_engine::kRootFSPartitionSize, "RootFS partition size for the image once installed"); + DEFINE_int64(minor_version, 0, + "The minor version of the payload being generated"); DEFINE_string(old_channel, "", "The channel for the old image. 'dev-channel', 'npo-channel', " @@ -374,23 +378,39 @@ int Main(int argc, char** argv) { LOG(INFO) << "Generating full update"; } - uint64_t metadata_size; - if (!DeltaDiffGenerator::GenerateDeltaUpdateFile( - FLAGS_old_dir, - FLAGS_old_image, - FLAGS_new_dir, - FLAGS_new_image, - FLAGS_old_kernel, - FLAGS_new_kernel, - FLAGS_out_file, - FLAGS_private_key, - FLAGS_chunk_size, - FLAGS_rootfs_partition_size, - is_delta ? &old_image_info : nullptr, - &new_image_info, - &metadata_size)) { - return 1; + if (!CommandLine::ForCurrentProcess()->HasSwitch("minor_version")) { + if (is_delta) { + FLAGS_minor_version = DeltaPerformer::kSupportedMinorPayloadVersion; + } else { + FLAGS_minor_version = DeltaPerformer::kFullPayloadMinorVersion; + } } + + if (FLAGS_minor_version == kInPlaceMinorPayloadVersion || + static_cast<uint64_t>(FLAGS_minor_version) == + DeltaPerformer::kFullPayloadMinorVersion) { + uint64_t metadata_size; + if (!DeltaDiffGenerator::GenerateDeltaUpdateFile( + FLAGS_old_dir, + FLAGS_old_image, + FLAGS_new_dir, + FLAGS_new_image, + FLAGS_old_kernel, + FLAGS_new_kernel, + FLAGS_out_file, + FLAGS_private_key, + FLAGS_chunk_size, + FLAGS_rootfs_partition_size, + FLAGS_minor_version, + is_delta ? &old_image_info : nullptr, + &new_image_info, + &metadata_size)) { + return 1; + } + } else { + LOG(FATAL) << "Unsupported minor payload version: " << FLAGS_minor_version; + } + return 0; } |