aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Zhao <jessezhao@google.com>2015-01-28 23:30:53 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-01-28 23:30:54 +0000
commit0c9384d512cab94b761dcb82325e4411cbaf52c0 (patch)
treeb38f377bbb277045c1acf9dd4bce401dfe4a040e
parentcb73599b25098b3513feda11ca5cb17d77fec83e (diff)
parent75bcea0267ae94ef865de60d2e40a99f7a65e998 (diff)
downloadbuild-0c9384d512cab94b761dcb82325e4411cbaf52c0.tar.gz
Merge "verify system and vendor image together before patching." into lmp-mr1-dev
-rw-r--r--tools/releasetools/common.py15
-rwxr-xr-xtools/releasetools/ota_from_target_files6
2 files changed, 16 insertions, 5 deletions
diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py
index 6865a5d62c..8941f890ff 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 755e5c2d2a..945f11a0bb 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()