Snap for 7679530 from 4660ec71bfebd51800e9bdf535040c352b0471b9 to mainline-extservices-release
Change-Id: Ia54b94297470ab49af7d41bbfa3b0541044d52cb
diff --git a/Android.bp b/Android.bp
index d89255d..d74e78f 100644
--- a/Android.bp
+++ b/Android.bp
@@ -147,7 +147,6 @@
cc_library_static {
name: "update_metadata-protos",
host_supported: true,
- ramdisk_available: true,
recovery_available: true,
srcs: ["update_engine/update_metadata.proto"],
diff --git a/aosp/cleanup_previous_update_action.cc b/aosp/cleanup_previous_update_action.cc
index dde6b89..53cb993 100644
--- a/aosp/cleanup_previous_update_action.cc
+++ b/aosp/cleanup_previous_update_action.cc
@@ -409,6 +409,14 @@
merge_stats_->set_boot_complete_to_merge_start_time_ms(
merge_start_time.count() - merge_stats_->boot_complete_time_ms());
+ auto source_build_fingerprint = snapshot_->ReadSourceBuildFingerprint();
+ merge_stats_->set_source_build_fingerprint(source_build_fingerprint);
+
+ if (!merge_stats_->WriteState()) {
+ LOG(ERROR) << "Failed to write merge stats; record may be unreliable if "
+ "merge is interrupted.";
+ }
+
if (snapshot_->InitiateMerge()) {
WaitForMergeOrSchedule();
return;
@@ -477,6 +485,9 @@
// However, we have saved the flag in the snapshot report.
bool vab_compression_used = report.compression_enabled();
+ auto target_build_fingerprint =
+ android::base::GetProperty("ro.build.fingerprint", "");
+
LOG(INFO) << "Reporting merge stats: "
<< android::snapshot::UpdateState_Name(report.state()) << " in "
<< passed_ms.count() << "ms (resumed " << report.resume_count()
@@ -494,7 +505,9 @@
report.estimated_cow_size_bytes(),
report.boot_complete_time_ms(),
report.boot_complete_to_merge_start_time_ms(),
- static_cast<int32_t>(report.merge_failure_code()));
+ static_cast<int32_t>(report.merge_failure_code()),
+ report.source_build_fingerprint().c_str(),
+ target_build_fingerprint.c_str());
#endif
}
diff --git a/payload_consumer/filesystem_verifier_action.cc b/payload_consumer/filesystem_verifier_action.cc
index 22c8e0b..8b39f6d 100644
--- a/payload_consumer/filesystem_verifier_action.cc
+++ b/payload_consumer/filesystem_verifier_action.cc
@@ -358,8 +358,10 @@
offset_ = 0;
filesystem_data_end_ = partition_size_;
- CHECK_LE(partition.hash_tree_offset, partition.fec_offset)
- << " Hash tree is expected to come before FEC data";
+ if (partition.fec_offset > 0) {
+ CHECK_LE(partition.hash_tree_offset, partition.fec_offset)
+ << " Hash tree is expected to come before FEC data";
+ }
if (partition.hash_tree_offset != 0) {
filesystem_data_end_ = partition.hash_tree_offset;
} else if (partition.fec_offset != 0) {