Add a flag to manually override VABC
Test: generate an OTA with --disable_vabc
Change-Id: I4a42319584dc1388d097dba343fe3ace82479bec
diff --git a/payload_generator/generate_delta_main.cc b/payload_generator/generate_delta_main.cc
index a187b32..5e2e555 100644
--- a/payload_generator/generate_delta_main.cc
+++ b/payload_generator/generate_delta_main.cc
@@ -421,6 +421,10 @@
false,
"The payload only targets a subset of partitions on the device,"
"e.g. generic kernel image update.");
+ DEFINE_bool(
+ disable_vabc,
+ false,
+ "Whether to disable Virtual AB Compression when installing the OTA");
brillo::FlagHelper::Init(
argc,
@@ -584,6 +588,7 @@
if (FLAGS_is_partial_update) {
payload_config.is_partial_update = true;
}
+ payload_config.disable_vabc = FLAGS_disable_vabc;
if (!FLAGS_in_file.empty()) {
return ApplyPayload(FLAGS_in_file, payload_config) ? 0 : 1;
diff --git a/payload_generator/payload_file.cc b/payload_generator/payload_file.cc
index 33c0749..1174597 100644
--- a/payload_generator/payload_file.cc
+++ b/payload_generator/payload_file.cc
@@ -71,6 +71,9 @@
*(manifest_.mutable_dynamic_partition_metadata()) =
*(config.target.dynamic_partition_metadata);
+ if (config.disable_vabc) {
+ manifest_.mutable_dynamic_partition_metadata()->set_vabc_enabled(false);
+ }
if (config.is_partial_update) {
manifest_.set_partial_update(true);
}
diff --git a/payload_generator/payload_generation_config.h b/payload_generator/payload_generation_config.h
index 1d88101..64733e1 100644
--- a/payload_generator/payload_generation_config.h
+++ b/payload_generator/payload_generation_config.h
@@ -230,6 +230,11 @@
// The maximum timestamp of the OS allowed to apply this payload.
int64_t max_timestamp = 0;
+
+ // Permit use of VABC by default. Even if this is set to true, the device must
+ // support VABC in order to use it. If this is set to false, device must not
+ // use VABC regardless.
+ bool disable_vabc = false;
};
} // namespace chromeos_update_engine
diff --git a/scripts/brillo_update_payload b/scripts/brillo_update_payload
index 1e729bd..439a42a 100755
--- a/scripts/brillo_update_payload
+++ b/scripts/brillo_update_payload
@@ -200,6 +200,8 @@
"Optional: True if the payload is for partial update. i.e. it only updates \
a subset of partitions on device."
DEFINE_string full_boot "" "Will include full boot image"
+ DEFINE_string disable_vabc "" \
+ "Optional: Disables Virtual AB Compression when installing the OTA"
fi
if [[ "${COMMAND}" == "hash" || "${COMMAND}" == "sign" ]]; then
DEFINE_string unsigned_payload "" "Path to the input unsigned payload."
@@ -694,6 +696,10 @@
GENERATOR_ARGS+=(
--disable_verity_computation="${FLAGS_disable_verity_computation}" )
fi
+ if [[ -n "${FLAGS_disable_vabc}" ]]; then
+ GENERATOR_ARGS+=(
+ --disable_vabc="${FLAGS_disable_vabc}" )
+ fi
fi
# minor version is set only for delta or partial payload.