update_engine: Store fingerprint value from Omaha response.
Store the unique fp value from response into prefs. Value is later sent
to Omaha to determine if there is a subsequent update available
while the system is waiting to be rebooted.
BUG=b:161259884
TEST=cros_workon_make --board=hatch --test update_engine
Change-Id: Ie37aa5da3cd8a0820e633f5ef426fb50e8a02838
Reviewed-on: https://chromium-review.googlesource.com/c/aosp/platform/system/update_engine/+/2491618
Tested-by: Vyshu Khota <vyshu@google.com>
Commit-Queue: Vyshu Khota <vyshu@google.com>
Reviewed-by: Amin Hassani <ahassani@chromium.org>
diff --git a/payload_consumer/install_plan.cc b/payload_consumer/install_plan.cc
index 4a37836..3aae663 100644
--- a/payload_consumer/install_plan.cc
+++ b/payload_consumer/install_plan.cc
@@ -72,13 +72,16 @@
for (const auto& payload : payloads) {
payloads_str += base::StringPrintf(
", payload: (urls: %s, size: %" PRIu64 ", metadata_size: %" PRIu64
- ", metadata signature: %s, hash: %s, payload type: %s)",
+ ", metadata signature: %s, hash: %s, payload type: %s"
+ ", fingerprint: %s, app id: %s)",
PayloadUrlsToString(payload.payload_urls).c_str(),
payload.size,
payload.metadata_size,
payload.metadata_signature.c_str(),
base::HexEncode(payload.hash.data(), payload.hash.size()).c_str(),
- InstallPayloadTypeToString(payload.type).c_str());
+ InstallPayloadTypeToString(payload.type).c_str(),
+ payload.fp.c_str(),
+ payload.app_id.c_str());
}
string version_str = base::StringPrintf(", version: %s", version.c_str());
diff --git a/payload_consumer/install_plan.h b/payload_consumer/install_plan.h
index ee1a72b..16e5674 100644
--- a/payload_consumer/install_plan.h
+++ b/payload_consumer/install_plan.h
@@ -62,6 +62,8 @@
std::string metadata_signature; // signature of the metadata in base64
brillo::Blob hash; // SHA256 hash of the payload
InstallPayloadType type{InstallPayloadType::kUnknown};
+ std::string fp; // fingerprint value unique to the payload
+ std::string app_id; // App ID of the payload
// Only download manifest and fill in partitions in install plan without
// apply the payload if true. Will be set by DownloadAction when resuming
// multi-payload.
@@ -72,7 +74,8 @@
metadata_size == that.metadata_size &&
metadata_signature == that.metadata_signature &&
hash == that.hash && type == that.type &&
- already_applied == that.already_applied;
+ already_applied == that.already_applied && fp == that.fp &&
+ app_id == that.app_id;
}
};
std::vector<Payload> payloads;