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: I0f8b27734caaa0f41f9c1b904d55af2112784a68
(cherry picked from commit 68658c0f4f
)
This commit is contained in:
@@ -118,11 +118,16 @@ class SparseImage(object):
|
||||
def ReadRangeSet(self, ranges):
|
||||
return [d for d in self._GetRangeData(ranges)]
|
||||
|
||||
def TotalSha1(self):
|
||||
"""Return the SHA-1 hash of all data in the 'care' regions but not in
|
||||
clobbered_blocks of this image."""
|
||||
def TotalSha1(self, include_clobbered_blocks=False):
|
||||
"""Return the SHA-1 hash of all data in the 'care' regions.
|
||||
|
||||
If include_clobbered_blocks is True, it returns the hash including the
|
||||
clobbered_blocks."""
|
||||
ranges = self.care_map
|
||||
if not include_clobbered_blocks:
|
||||
ranges.subtract(self.clobbered_blocks)
|
||||
h = sha1()
|
||||
for d in self._GetRangeData(self.care_map.subtract(self.clobbered_blocks)):
|
||||
for d in self._GetRangeData(ranges):
|
||||
h.update(d)
|
||||
return h.hexdigest()
|
||||
|
||||
|
Reference in New Issue
Block a user