From 75bcea0267ae94ef865de60d2e40a99f7a65e998 Mon Sep 17 00:00:00 2001 From: Jesse Zhao Date: Tue, 6 Jan 2015 10:59:53 -0800 Subject: verify system and vendor image together before patching. Change-Id: Ia43657ed6cd8860b0edb78cc2dd6388c761e1f8b Bug: 17919909 --- tools/releasetools/common.py | 15 ++++++++++----- tools/releasetools/ota_from_target_files | 6 ++++++ 2 files changed, 16 insertions(+), 5 deletions(-) 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 @@ class BlockDifference: 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 @@ class BlockDifference: 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 @@ else if get_stage("%(bcb_dev)s") == "3/3" then 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 @@ reboot_now("%(bcb_dev)s", ""); 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() -- cgit v1.1