Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ccc5c405 authored by YOUNG HO CHA's avatar YOUNG HO CHA
Browse files

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: default avatarYOUNG HO CHA <ganadist@gmail.com>
parent 355e9677
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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
+2 −2
Original line number Diff line number Diff line
@@ -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