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

Commit 921c81f7 authored by Tao Bao's avatar Tao Bao Committed by android-build-merger
Browse files

Merge "releasetools: Call Cleanup() in check_target_files_signatures.py." am:...

Merge "releasetools: Call Cleanup() in check_target_files_signatures.py." am: 903be914 am: 5410d8a5
am: 501b8423

Change-Id: Ia4dfee212e3ff55fcdd9ce60faddab91c5e195c6
parents dcf9ae8f 501b8423
Loading
Loading
Loading
Loading
+40 −42
Original line number Diff line number Diff line
@@ -39,20 +39,19 @@ Usage: check_target_file_signatures [flags] target_files

"""

import sys

if sys.hexversion < 0x02070000:
  print >> sys.stderr, "Python 2.7 or newer is required."
  sys.exit(1)

import os
import re
import shutil
import subprocess
import sys
import zipfile

import common

if sys.hexversion < 0x02070000:
  print >> sys.stderr, "Python 2.7 or newer is required."
  sys.exit(1)


# Work around a bug in Python's zipfile module that prevents opening of zipfiles
# if any entry has an extra field of between 1 and 3 bytes (which is common with
# zipaligned APKs). This overrides the ZipInfo._decodeExtra() method (which
@@ -244,12 +243,12 @@ class TargetFiles(object):
    # This is the list of wildcards of files we extract from |filename|.
    apk_extensions = ['*.apk']

    self.certmap, compressed_extension = common.ReadApkCerts(zipfile.ZipFile(filename, "r"))
    self.certmap, compressed_extension = common.ReadApkCerts(
        zipfile.ZipFile(filename, "r"))
    if compressed_extension:
      apk_extensions.append("*.apk" + compressed_extension)

    d = common.UnzipTemp(filename, apk_extensions)
    try:
    self.apks = {}
    self.apks_by_basename = {}
    for dirpath, _, filenames in os.walk(d):
@@ -264,13 +263,12 @@ class TargetFiles(object):
                        os.path.join(dirpath, uncompressed_fn))

          # Finally, delete the compressed file and use the uncompressed file
            # for further processing. Note that the deletion is not strictly required,
            # but is done here to ensure that we're not using too much space in
            # the temporary directory.
          # for further processing. Note that the deletion is not strictly
          # required, but is done here to ensure that we're not using too much
          # space in the temporary directory.
          os.remove(os.path.join(dirpath, fn))
          fn = uncompressed_fn


        if fn.endswith(".apk"):
          fullname = os.path.join(dirpath, fn)
          displayname = fullname[len(d)+1:]
@@ -280,8 +278,6 @@ class TargetFiles(object):

          self.max_pkg_len = max(self.max_pkg_len, len(apk.package))
          self.max_fn_len = max(self.max_fn_len, len(apk.filename))
    finally:
      shutil.rmtree(d)

  def CheckSharedUids(self):
    """Look for any instances where packages signed with different
@@ -291,7 +287,7 @@ class TargetFiles(object):
      if apk.shared_uid:
        apks_by_uid.setdefault(apk.shared_uid, []).append(apk)

    for uid in sorted(apks_by_uid.keys()):
    for uid in sorted(apks_by_uid):
      apks = apks_by_uid[uid]
      for apk in apks[1:]:
        if apk.certs != apks[0].certs:
@@ -466,3 +462,5 @@ if __name__ == '__main__':
    print "   ERROR: %s" % (e,)
    print
    sys.exit(1)
  finally:
    common.Cleanup()