forked from openkylin/platform_build
Handles capex in signing script
Today, the signing script simply ignores capex files, because it looks for hardcoded '.apex' suffix. Add support to handle capex as well. Bug: 190574334 Test: Sign a target file locally Change-Id: I3085ca7b0396a4fbf1b220f7de44d4eafb60c3d8 (cherry picked from commit 4d48d50036e71ccb31cf05326417ee084fd7583a)
This commit is contained in:
parent
8c4997265a
commit
579c347923
|
@ -217,6 +217,18 @@ for partition in common.AVB_PARTITIONS:
|
|||
raise RuntimeError("Missing {} in AVB_FOOTER_ARGS".format(partition))
|
||||
|
||||
|
||||
def IsApexFile(filename):
|
||||
return filename.endswith(".apex") or filename.endswith(".capex")
|
||||
|
||||
|
||||
def GetApexFilename(filename):
|
||||
name = os.path.basename(filename)
|
||||
# Replace the suffix for compressed apex
|
||||
if name.endswith(".capex"):
|
||||
return name.replace(".capex", ".apex")
|
||||
return name
|
||||
|
||||
|
||||
def GetApkCerts(certmap):
|
||||
# apply the key remapping to the contents of the file
|
||||
for apk, cert in certmap.items():
|
||||
|
@ -356,8 +368,8 @@ def CheckApkAndApexKeysAvailable(input_tf_zip, known_keys,
|
|||
unknown_files = []
|
||||
for info in input_tf_zip.infolist():
|
||||
# Handle APEXes on all partitions
|
||||
if info.filename.endswith('.apex'):
|
||||
name = os.path.basename(info.filename)
|
||||
if IsApexFile(info.filename):
|
||||
name = GetApexFilename(info.filename)
|
||||
if name not in known_keys:
|
||||
unknown_files.append(name)
|
||||
continue
|
||||
|
@ -388,10 +400,11 @@ def CheckApkAndApexKeysAvailable(input_tf_zip, known_keys,
|
|||
|
||||
invalid_apexes = []
|
||||
for info in input_tf_zip.infolist():
|
||||
if not info.filename.endswith('.apex'):
|
||||
if not IsApexFile(info.filename):
|
||||
continue
|
||||
|
||||
name = os.path.basename(info.filename)
|
||||
name = GetApexFilename(info.filename)
|
||||
|
||||
(payload_key, container_key) = apex_keys[name]
|
||||
if ((payload_key in common.SPECIAL_CERT_STRINGS and
|
||||
container_key not in common.SPECIAL_CERT_STRINGS) or
|
||||
|
@ -541,8 +554,9 @@ def ProcessTargetFiles(input_tf_zip, output_tf_zip, misc_info,
|
|||
common.ZipWriteStr(output_tf_zip, out_info, data)
|
||||
|
||||
# Sign bundled APEX files on all partitions
|
||||
elif filename.endswith(".apex"):
|
||||
name = os.path.basename(filename)
|
||||
elif IsApexFile(filename):
|
||||
name = GetApexFilename(filename)
|
||||
|
||||
payload_key, container_key = apex_keys[name]
|
||||
|
||||
# We've asserted not having a case with only one of them PRESIGNED.
|
||||
|
|
Loading…
Reference in New Issue