releasetools: compare size between compressed and patch while build otapackage

Currently, whether contains patch or verbatim, compute with file size
and patch size.
But ota file must be compressed with zip, so it should be better with
compressed size than uncompressed.

Test: aosp_shamu-user build without proprietary blobs between MOB30P and NRD90S
$ du -k ota_shamu_old.zip ota_shamu_new.zip
217252	ota_shamu_old.zip
216520	ota_shamu_new.zip

Change-Id: If68cb1fbe2f7815067451915a0dcfe93ea5ba8d6
Signed-off-by: YOUNG HO CHA <ganadist@gmail.com>
This commit is contained in:
YOUNG HO CHA
2016-10-13 13:40:46 +09:00
parent 355e96774b
commit ccc5c40523
2 changed files with 4 additions and 3 deletions

View File

@@ -1203,10 +1203,11 @@ class DeviceSpecificParams(object):
return self._DoCall("VerifyOTA_Assertions") return self._DoCall("VerifyOTA_Assertions")
class File(object): class File(object):
def __init__(self, name, data): def __init__(self, name, data, compress_size = None):
self.name = name self.name = name
self.data = data self.data = data
self.size = len(data) self.size = len(data)
self.compress_size = compress_size or self.size
self.sha1 = sha1(data).hexdigest() self.sha1 = sha1(data).hexdigest()
@classmethod @classmethod

View File

@@ -748,7 +748,7 @@ def LoadPartitionFiles(z, partition):
basefilename = info.filename[len(prefix):] basefilename = info.filename[len(prefix):]
fn = partition + "/" + basefilename fn = partition + "/" + basefilename
data = z.read(info.filename) data = z.read(info.filename)
out[fn] = common.File(fn, data) out[fn] = common.File(fn, data, info.compress_size)
return out return out
@@ -1379,7 +1379,7 @@ class FileDifference(object):
for diff in diffs: for diff in diffs:
tf, sf, d = diff.GetPatch() tf, sf, d = diff.GetPatch()
path = "/".join(tf.name.split("/")[:-1]) 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: path not in known_paths:
# patch is almost as big as the file; don't bother patching # patch is almost as big as the file; don't bother patching
# or a patch + rename cannot take place due to the target # or a patch + rename cannot take place due to the target