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:
@@ -1203,10 +1203,11 @@ class DeviceSpecificParams(object):
|
||||
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
|
||||
|
@@ -748,7 +748,7 @@ def LoadPartitionFiles(z, partition):
|
||||
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
|
||||
|
||||
|
||||
@@ -1379,7 +1379,7 @@ class FileDifference(object):
|
||||
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
|
||||
|
Reference in New Issue
Block a user