Merge "Revert "Add ramdisk_available to init_first_stage's deps"" into sc-dev
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
 }