Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6497a1b7 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Handles capex in signing script"

parents e8872c34 4d48d500
Loading
Loading
Loading
Loading
+20 −6
Original line number Diff line number Diff line
@@ -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.