Add post-install verification for BBOTAs
Similar to the assertations in file-based OTA, we perform verification for block-based OTAs (BBOTAs) after updating a partition, for both of the incremental and full OTAs. It increases the update time (~20s on Nexus 6), but will capture unnoticed errors right away. Bug: 21500869 Change-Id: I89ac8fe623b855721b7affd07cf9426a23433ab0
This commit is contained in:
@@ -1182,6 +1182,7 @@ class BlockDifference(object):
|
||||
if progress:
|
||||
script.ShowProgress(progress, 0)
|
||||
self._WriteUpdate(script, output_zip)
|
||||
self._WritePostInstallVerifyScript(script)
|
||||
|
||||
def WriteVerifyScript(self, script):
|
||||
partition = self.partition
|
||||
@@ -1220,6 +1221,21 @@ class BlockDifference(object):
|
||||
script.AppendExtra(('abort("%s partition has unexpected contents");\n'
|
||||
'endif;') % (partition,))
|
||||
|
||||
def _WritePostInstallVerifyScript(self, script):
|
||||
partition = self.partition
|
||||
script.Print('Verifying the updated %s image...' % (partition,))
|
||||
# Unlike pre-install verification, clobbered_blocks should not be ignored.
|
||||
ranges = self.tgt.care_map
|
||||
ranges_str = ranges.to_string_raw()
|
||||
script.AppendExtra('if range_sha1("%s", "%s") == "%s" then' % (
|
||||
self.device, ranges_str,
|
||||
self.tgt.TotalSha1(include_clobbered_blocks=True)))
|
||||
script.Print('Verified the updated %s image.' % (partition,))
|
||||
script.AppendExtra(
|
||||
'else\n'
|
||||
' abort("%s partition has unexpected contents after OTA update");\n'
|
||||
'endif;' % (partition,))
|
||||
|
||||
def _WriteUpdate(self, script, output_zip):
|
||||
ZipWrite(output_zip,
|
||||
'{}.transfer.list'.format(self.path),
|
||||
|
Reference in New Issue
Block a user