forked from openkylin/platform_build
use frozensets to represent APK cert sets
Change-Id: Ic92c83be0c3f6a76bf1bd21f0216cd1b87586959
This commit is contained in:
parent
278c9781ec
commit
a5f534df07
|
@ -187,15 +187,15 @@ def CertFromPKCS7(data, filename):
|
||||||
class APK(object):
|
class APK(object):
|
||||||
def __init__(self, full_filename, filename):
|
def __init__(self, full_filename, filename):
|
||||||
self.filename = filename
|
self.filename = filename
|
||||||
self.certs = set()
|
|
||||||
Push(filename+":")
|
Push(filename+":")
|
||||||
try:
|
try:
|
||||||
self.RecordCert(full_filename)
|
self.RecordCerts(full_filename)
|
||||||
self.ReadManifest(full_filename)
|
self.ReadManifest(full_filename)
|
||||||
finally:
|
finally:
|
||||||
Pop()
|
Pop()
|
||||||
|
|
||||||
def RecordCert(self, full_filename):
|
def RecordCerts(self, full_filename):
|
||||||
|
out = set()
|
||||||
try:
|
try:
|
||||||
f = open(full_filename)
|
f = open(full_filename)
|
||||||
apk = zipfile.ZipFile(f, "r")
|
apk = zipfile.ZipFile(f, "r")
|
||||||
|
@ -205,12 +205,13 @@ class APK(object):
|
||||||
(info.filename.endswith(".DSA") or info.filename.endswith(".RSA")):
|
(info.filename.endswith(".DSA") or info.filename.endswith(".RSA")):
|
||||||
pkcs7 = apk.read(info.filename)
|
pkcs7 = apk.read(info.filename)
|
||||||
cert = CertFromPKCS7(pkcs7, info.filename)
|
cert = CertFromPKCS7(pkcs7, info.filename)
|
||||||
self.certs.add(cert)
|
out.add(cert)
|
||||||
ALL_CERTS.Add(cert)
|
ALL_CERTS.Add(cert)
|
||||||
if not pkcs7:
|
if not pkcs7:
|
||||||
AddProblem("no signature")
|
AddProblem("no signature")
|
||||||
finally:
|
finally:
|
||||||
f.close()
|
f.close()
|
||||||
|
self.certs = frozenset(out)
|
||||||
|
|
||||||
def ReadManifest(self, full_filename):
|
def ReadManifest(self, full_filename):
|
||||||
p = common.Run(["aapt", "dump", "xmltree", full_filename,
|
p = common.Run(["aapt", "dump", "xmltree", full_filename,
|
||||||
|
|
Loading…
Reference in New Issue