Fix combined checksum calculation to use isa.

Bug: 28054110
Change-Id: Ifcd1b0c4549a22bf4181f8acad222da05ac9f1ce
diff --git a/runtime/oat_file_assistant.cc b/runtime/oat_file_assistant.cc
index de30dc8..d389dd1 100644
--- a/runtime/oat_file_assistant.cc
+++ b/runtime/oat_file_assistant.cc
@@ -940,18 +940,27 @@
     }
     image_info_load_succeeded_ = (!image_spaces.empty());
 
-    combined_image_checksum_ = CalculateCombinedImageChecksum();
+    combined_image_checksum_ = CalculateCombinedImageChecksum(isa_);
   }
   return image_info_load_succeeded_ ? &cached_image_info_ : nullptr;
 }
 
 // TODO: Use something better than xor.
-uint32_t OatFileAssistant::CalculateCombinedImageChecksum() {
+uint32_t OatFileAssistant::CalculateCombinedImageChecksum(InstructionSet isa) {
   uint32_t checksum = 0;
   std::vector<gc::space::ImageSpace*> image_spaces =
       Runtime::Current()->GetHeap()->GetBootImageSpaces();
-  for (gc::space::ImageSpace* image_space : image_spaces) {
-    checksum ^= image_space->GetImageHeader().GetOatChecksum();
+  if (isa == kRuntimeISA) {
+    for (gc::space::ImageSpace* image_space : image_spaces) {
+      checksum ^= image_space->GetImageHeader().GetOatChecksum();
+    }
+  } else {
+    for (gc::space::ImageSpace* image_space : image_spaces) {
+      std::string location = image_space->GetImageLocation();
+      std::unique_ptr<ImageHeader> image_header(
+          gc::space::ImageSpace::ReadImageHeaderOrDie(location.c_str(), isa));
+      checksum ^= image_header->GetOatChecksum();
+    }
   }
   return checksum;
 }
diff --git a/runtime/oat_file_assistant.h b/runtime/oat_file_assistant.h
index 63b1573..d3228de 100644
--- a/runtime/oat_file_assistant.h
+++ b/runtime/oat_file_assistant.h
@@ -279,7 +279,7 @@
   static bool DexFilenameToOdexFilename(const std::string& location,
       InstructionSet isa, std::string* odex_filename, std::string* error_msg);
 
-  static uint32_t CalculateCombinedImageChecksum();
+  static uint32_t CalculateCombinedImageChecksum(InstructionSet isa = kRuntimeISA);
 
  private:
   struct ImageInfo {