summaryrefslogtreecommitdiffstats
path: root/tools/releasetools
diff options
context:
space:
mode:
authorMichael Runge <mrunge@google.com>2015-02-11 19:28:08 -0800
committerDan Albert <danalbert@google.com>2015-03-13 11:36:14 -0700
commit910b005f183d95640df57e270989ad93e6a55769 (patch)
treee84d09feaad63c1dc989db8bd587eae0f263793e /tools/releasetools
parent105b94cc44dc3cec6df22ac6e80da8dcb3ffd031 (diff)
downloadbuild-910b005f183d95640df57e270989ad93e6a55769.zip
build-910b005f183d95640df57e270989ad93e6a55769.tar.gz
build-910b005f183d95640df57e270989ad93e6a55769.tar.bz2
Do not use block_verify on target-files where feature is missing.
This will only be used when the block file format is at least version 3. For V1/V2 (L, L MR1) block versions, fall back to the old range_sha1 check. Bug: 19357591 Change-Id: I7cb178b70d48ec3c98cdb88ed1c94cf7797a01d0 (cherry picked from commit cad78c12fbb44b6030bcc80823c010e65b9c3f37)
Diffstat (limited to 'tools/releasetools')
-rw-r--r--tools/releasetools/common.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py
index 14975d5..4241b2b 100644
--- a/tools/releasetools/common.py
+++ b/tools/releasetools/common.py
@@ -1030,14 +1030,14 @@ class BlockDifference:
self.partition = partition
self.check_first_block = check_first_block
- version = 1
+ self.version = 1
if OPTIONS.info_dict:
- version = max(
+ self.version = max(
int(i) for i in
OPTIONS.info_dict.get("blockimgdiff_versions", "1").split(","))
b = blockimgdiff.BlockImageDiff(tgt, src, threads=OPTIONS.worker_threads,
- version=version)
+ version=self.version)
tmpdir = tempfile.mkdtemp()
OPTIONS.tempfiles.append(tmpdir)
self.path = os.path.join(tmpdir, partition)
@@ -1060,10 +1060,15 @@ class BlockDifference:
if not self.src:
script.Print("Image %s will be patched unconditionally." % (partition,))
else:
- script.AppendExtra(('if block_image_verify("%s", '
- 'package_extract_file("%s.transfer.list"), '
- '"%s.new.dat", "%s.patch.dat") then') %
- (self.device, partition, partition, partition))
+ if self.version >= 3:
+ script.AppendExtra(('if block_image_verify("%s", '
+ 'package_extract_file("%s.transfer.list"), '
+ '"%s.new.dat", "%s.patch.dat") then') %
+ (self.device, partition, partition, partition))
+ else:
+ script.AppendExtra('if range_sha1("%s", "%s") == "%s" then' %
+ (self.device, self.src.care_map.to_string_raw(),
+ self.src.TotalSha1()))
script.Print("Verified %s image..." % (partition,))
script.AppendExtra('else');