Skip verifying the partition with no changed blocks.

For incremental BBOTAs, commit [1] changed to verify only the touched
blocks to reduce the update time. This CL fixes the bug when there's no
changed block between the two builds.

[1]: commit d522bdc9ed

Bug: 27813356
Bug: 28195498
Change-Id: Ia752d3cf034c544517458ed15df509d4596e21fa
This commit is contained in:
Tao Bao 2016-04-14 15:58:05 -07:00
parent 8fe9274ab9
commit f9efe284a4
1 changed files with 9 additions and 0 deletions

View File

@ -1361,8 +1361,12 @@ class BlockDifference(object):
def WriteVerifyScript(self, script, touched_blocks_only=False):
partition = self.partition
# full OTA
if not self.src:
script.Print("Image %s will be patched unconditionally." % (partition,))
# incremental OTA
else:
if touched_blocks_only and self.version >= 3:
ranges = self.touched_src_ranges
@ -1370,6 +1374,11 @@ class BlockDifference(object):
else:
ranges = self.src.care_map.subtract(self.src.clobbered_blocks)
expected_sha1 = self.src.TotalSha1()
# No blocks to be checked, skipping.
if not ranges:
return
ranges_str = ranges.to_string_raw()
if self.version >= 4:
script.AppendExtra(('if (range_sha1("%s", "%s") == "%s" || '