Merge "releasetools: compare size between compressed and patch while build otapackage" am: 49758959f2 am: 9242e1f750
am: aa4d046bb5
Change-Id: If1e0b8622cf06b320dda5172ee53a57b2746ec5b
diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py
index b8113e9..a3f2192 100644
--- a/tools/releasetools/common.py
+++ b/tools/releasetools/common.py
@@ -1211,10 +1211,11 @@
return self._DoCall("VerifyOTA_Assertions")
class File(object):
- def __init__(self, name, data):
+ def __init__(self, name, data, compress_size = None):
self.name = name
self.data = data
self.size = len(data)
+ self.compress_size = compress_size or self.size
self.sha1 = sha1(data).hexdigest()
@classmethod
diff --git a/tools/releasetools/ota_from_target_files.py b/tools/releasetools/ota_from_target_files.py
index dc93a9d..8237493 100755
--- a/tools/releasetools/ota_from_target_files.py
+++ b/tools/releasetools/ota_from_target_files.py
@@ -748,7 +748,7 @@
basefilename = info.filename[len(prefix):]
fn = partition + "/" + basefilename
data = z.read(info.filename)
- out[fn] = common.File(fn, data)
+ out[fn] = common.File(fn, data, info.compress_size)
return out
@@ -1392,7 +1392,7 @@
for diff in diffs:
tf, sf, d = diff.GetPatch()
path = "/".join(tf.name.split("/")[:-1])
- if d is None or len(d) > tf.size * OPTIONS.patch_threshold or \
+ if d is None or len(d) > tf.compress_size * OPTIONS.patch_threshold or \
path not in known_paths:
# patch is almost as big as the file; don't bother patching
# or a patch + rename cannot take place due to the target