Do not run zipalign when re-signing APKs.
Running zipalign is no longer needed because signapk takes care of alignment. Bug: 25794543 Change-Id: I1080240a67ea6f1b41585fff83d18d57fdcf44e2
This commit is contained in:
parent
914a568ba0
commit
eb756d7b7b
2 changed files with 3 additions and 23 deletions
|
@ -588,29 +588,16 @@ 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, whole_file=False):
|
||||||
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
|
|
||||||
the output zip on 'align'-byte boundaries.
|
|
||||||
|
|
||||||
If whole_file is true, use the "-w" option to SignApk to embed a
|
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
|
signature that covers the whole file in the archive comment of the
|
||||||
zip file.
|
zip file.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if align == 0 or align == 1:
|
|
||||||
align = None
|
|
||||||
|
|
||||||
if align:
|
|
||||||
temp = tempfile.NamedTemporaryFile()
|
|
||||||
sign_name = temp.name
|
|
||||||
else:
|
|
||||||
sign_name = output_name
|
|
||||||
|
|
||||||
cmd = [OPTIONS.java_path, OPTIONS.java_args, "-jar",
|
cmd = [OPTIONS.java_path, OPTIONS.java_args, "-jar",
|
||||||
os.path.join(OPTIONS.search_path, OPTIONS.signapk_path)]
|
os.path.join(OPTIONS.search_path, OPTIONS.signapk_path)]
|
||||||
cmd.extend(OPTIONS.extra_signapk_args)
|
cmd.extend(OPTIONS.extra_signapk_args)
|
||||||
|
@ -618,7 +605,7 @@ def SignFile(input_name, output_name, key, password, align=None,
|
||||||
cmd.append("-w")
|
cmd.append("-w")
|
||||||
cmd.extend([key + OPTIONS.public_key_suffix,
|
cmd.extend([key + OPTIONS.public_key_suffix,
|
||||||
key + OPTIONS.private_key_suffix,
|
key + OPTIONS.private_key_suffix,
|
||||||
input_name, sign_name])
|
input_name, output_name])
|
||||||
|
|
||||||
p = Run(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
|
p = Run(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
|
||||||
if password is not None:
|
if password is not None:
|
||||||
|
@ -627,13 +614,6 @@ def SignFile(input_name, output_name, key, password, align=None,
|
||||||
if p.returncode != 0:
|
if p.returncode != 0:
|
||||||
raise ExternalError("signapk.jar failed: return code %s" % (p.returncode,))
|
raise ExternalError("signapk.jar failed: return code %s" % (p.returncode,))
|
||||||
|
|
||||||
if align:
|
|
||||||
p = Run(["zipalign", "-f", "-p", str(align), sign_name, output_name])
|
|
||||||
p.communicate()
|
|
||||||
if p.returncode != 0:
|
|
||||||
raise ExternalError("zipalign failed: return code %s" % (p.returncode,))
|
|
||||||
temp.close()
|
|
||||||
|
|
||||||
|
|
||||||
def CheckSize(data, target, info_dict):
|
def CheckSize(data, target, info_dict):
|
||||||
"""Check the data string passed against the max size limit, if
|
"""Check the data string passed against the max size limit, if
|
||||||
|
|
|
@ -134,7 +134,7 @@ def SignApk(data, keyname, pw):
|
||||||
|
|
||||||
signed = tempfile.NamedTemporaryFile()
|
signed = tempfile.NamedTemporaryFile()
|
||||||
|
|
||||||
common.SignFile(unsigned.name, signed.name, keyname, pw, align=4)
|
common.SignFile(unsigned.name, signed.name, keyname, pw)
|
||||||
|
|
||||||
data = signed.read()
|
data = signed.read()
|
||||||
unsigned.close()
|
unsigned.close()
|
||||||
|
|
Loading…
Reference in a new issue