verify system and vendor image together before patching.
Change-Id: Ia43657ed6cd8860b0edb78cc2dd6388c761e1f8b
Bug: 17919909
diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py
index 6865a5d..8941f89 100644
--- a/tools/releasetools/common.py
+++ b/tools/releasetools/common.py
@@ -1048,9 +1048,16 @@
def WriteScript(self, script, output_zip, progress=None):
if not self.src:
# write the output unconditionally
- if progress: script.ShowProgress(progress, 0)
- self._WriteUpdate(script, output_zip)
+ script.Print("Patching %s image unconditionally..." % (self.partition,))
+ else:
+ script.Print("Patching %s image after verification." % (self.partition,))
+ if progress: script.ShowProgress(progress, 0)
+ self._WriteUpdate(script, output_zip)
+
+ def WriteVerifyScript(self, script):
+ if not self.src:
+ script.Print("Image %s will be patched unconditionally." % (self.partition,))
else:
if self.check_first_block:
self._CheckFirstBlock(script)
@@ -1058,9 +1065,7 @@
script.AppendExtra('if range_sha1("%s", "%s") == "%s" then' %
(self.device, self.src.care_map.to_string_raw(),
self.src.TotalSha1()))
- script.Print("Patching %s image..." % (self.partition,))
- if progress: script.ShowProgress(progress, 0)
- self._WriteUpdate(script, output_zip)
+ script.Print("Verified %s image..." % (self.partition,))
script.AppendExtra(('else\n'
' (range_sha1("%s", "%s") == "%s") ||\n'
' abort("%s partition has unexpected contents");\n'
diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files
index 755e5c2..945f11a 100755
--- a/tools/releasetools/ota_from_target_files
+++ b/tools/releasetools/ota_from_target_files
@@ -558,6 +558,7 @@
system_items = ItemSet("system", "META/filesystem_config.txt")
script.ShowProgress(system_progress, 0)
+
if block_based:
# Full OTA is done as an "incremental" against an empty source
# image. This has the effect of writing new data from the package
@@ -845,6 +846,11 @@
else
""" % bcb_dev)
+ # Verify the existing partitions.
+ system_diff.WriteVerifyScript(script)
+ if vendor_diff:
+ vendor_diff.WriteVerifyScript(script)
+
script.Comment("---- start making changes here ----")
device_specific.IncrementalOTA_InstallBegin()