From 910b005f183d95640df57e270989ad93e6a55769 Mon Sep 17 00:00:00 2001 From: Michael Runge Date: Wed, 11 Feb 2015 19:28:08 -0800 Subject: [PATCH] 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) --- tools/releasetools/common.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index 14975d5dc5..4241b2bc35 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');