From 767543a6598a3aa92b023ca9d97e6a5c6fb526ec Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Thu, 1 Mar 2018 10:09:07 -0800 Subject: [PATCH] releasetools: Call Cleanup() in check_target_files_signatures.py. Also minor cleanups to make it pylint clean. Test: Run check_target_files_signatures.py with a target-files.zip. Test: pylint --rcfile=pylintrc check_target_files_signatures.py Change-Id: Ife3b54c7805c2f2562e87e91ab4b4de355782012 --- .../check_target_files_signatures.py | 74 +++++++++---------- 1 file changed, 36 insertions(+), 38 deletions(-) diff --git a/tools/releasetools/check_target_files_signatures.py b/tools/releasetools/check_target_files_signatures.py index a3a5c1ce0..b9f39a6f7 100755 --- a/tools/releasetools/check_target_files_signatures.py +++ b/tools/releasetools/check_target_files_signatures.py @@ -39,19 +39,18 @@ Usage: check_target_file_signatures [flags] target_files """ +import os +import re +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) -import os -import re -import shutil -import subprocess -import zipfile - -import common # 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 @@ -244,44 +243,41 @@ 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): - for fn in filenames: - # Decompress compressed APKs before we begin processing them. - if compressed_extension and fn.endswith(compressed_extension): - # First strip the compressed extension from the file. - uncompressed_fn = fn[:-len(compressed_extension)] + self.apks = {} + self.apks_by_basename = {} + for dirpath, _, filenames in os.walk(d): + for fn in filenames: + # Decompress compressed APKs before we begin processing them. + if compressed_extension and fn.endswith(compressed_extension): + # First strip the compressed extension from the file. + uncompressed_fn = fn[:-len(compressed_extension)] - # Decompress the compressed file to the output file. - common.Gunzip(os.path.join(dirpath, fn), - os.path.join(dirpath, uncompressed_fn)) + # Decompress the compressed file to the output file. + common.Gunzip(os.path.join(dirpath, fn), + 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. - os.remove(os.path.join(dirpath, fn)) - fn = 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. + 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:] + apk = APK(fullname, displayname) + self.apks[apk.filename] = apk + self.apks_by_basename[os.path.basename(apk.filename)] = apk - if fn.endswith(".apk"): - fullname = os.path.join(dirpath, fn) - displayname = fullname[len(d)+1:] - apk = APK(fullname, displayname) - self.apks[apk.filename] = apk - self.apks_by_basename[os.path.basename(apk.filename)] = apk - - 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) + self.max_pkg_len = max(self.max_pkg_len, len(apk.package)) + self.max_fn_len = max(self.max_fn_len, len(apk.filename)) 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()