update OTA package maker to do whole-file signature

Use the new -w flag to SignApk when signing OTA packages.
This commit is contained in:
Doug Zongker
2009-08-14 12:44:19 -07:00
parent c6cf01a117
commit 951495fc48
2 changed files with 17 additions and 9 deletions

View File

@@ -185,14 +185,20 @@ def GetKeyPasswords(keylist):
return key_passwords return key_passwords
def SignFile(input_name, output_name, key, password, align=None): def SignFile(input_name, output_name, key, password, align=None,
whole_file=False):
"""Sign the input_name zip/jar/apk, producing output_name. Use the """Sign the input_name zip/jar/apk, producing output_name. Use the
given key and password (the latter may be None if the key does not given key and password (the latter may be None if the key does not
have a password. have a password.
If align is an integer > 1, zipalign is run to align stored files in If align is an integer > 1, zipalign is run to align stored files in
the output zip on 'align'-byte boundaries. the output zip on 'align'-byte boundaries.
If whole_file is true, use the "-w" option to SignApk to embed a
signature that covers the whole file in the archive comment of the
zip file.
""" """
if align == 0 or align == 1: if align == 0 or align == 1:
align = None align = None
@@ -202,13 +208,14 @@ def SignFile(input_name, output_name, key, password, align=None):
else: else:
sign_name = output_name sign_name = output_name
p = Run(["java", "-jar", cmd = ["java", "-jar",
os.path.join(OPTIONS.search_path, "framework", "signapk.jar"), os.path.join(OPTIONS.search_path, "framework", "signapk.jar")]
key + ".x509.pem", if whole_file:
key + ".pk8", cmd.append("-w")
input_name, sign_name], cmd.extend([key + ".x509.pem", key + ".pk8",
stdin=subprocess.PIPE, input_name, sign_name])
stdout=subprocess.PIPE)
p = Run(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
if password is not None: if password is not None:
password += "\n" password += "\n"
p.communicate(password) p.communicate(password)

View File

@@ -273,7 +273,8 @@ def SignOutput(temp_zip_name, output_zip_name):
key_passwords = common.GetKeyPasswords([OPTIONS.package_key]) key_passwords = common.GetKeyPasswords([OPTIONS.package_key])
pw = key_passwords[OPTIONS.package_key] pw = key_passwords[OPTIONS.package_key]
common.SignFile(temp_zip_name, output_zip_name, OPTIONS.package_key, pw) common.SignFile(temp_zip_name, output_zip_name, OPTIONS.package_key, pw,
whole_file=True)
def AppendAssertions(script, input_zip): def AppendAssertions(script, input_zip):