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

Commit 846f285d authored by Kelvin Zhang's avatar Kelvin Zhang
Browse files

Update APK parser to be compatible with new signer output

Test: th
Bug: 218304082
Change-Id: If79ffdb1e4cec192ef796a39dd0ed5b38bc430e0
parent 9d021e99
Loading
Loading
Loading
Loading
+7 −4
Original line number Original line Diff line number Diff line
@@ -237,9 +237,11 @@ class APK(object):
    # Signer #1 certificate DN: ...
    # Signer #1 certificate DN: ...
    # Signer #1 certificate SHA-256 digest: ...
    # Signer #1 certificate SHA-256 digest: ...
    # Signer #1 certificate SHA-1 digest: ...
    # Signer #1 certificate SHA-1 digest: ...
    # Signer (minSdkVersion=24, maxSdkVersion=32) certificate SHA-256 digest: 56be132b780656fe2444cd34326eb5d7aac91d2096abf0fe673a99270622ec87
    # Signer (minSdkVersion=24, maxSdkVersion=32) certificate SHA-1 digest: 19da94896ce4078c38ca695701f1dec741ec6d67
    # ...
    # ...
    certs_info = {}
    certs_info = {}
    certificate_regex = re.compile(r"(Signer #[0-9]+) (certificate .*):(.*)")
    certificate_regex = re.compile(r"(Signer (?:#[0-9]+|\(.*\))) (certificate .*):(.*)")
    for line in output.splitlines():
    for line in output.splitlines():
      m = certificate_regex.match(line)
      m = certificate_regex.match(line)
      if not m:
      if not m:
@@ -342,7 +344,7 @@ class TargetFiles(object):
          apk = APK(fullname, displayname)
          apk = APK(fullname, displayname)
          self.apks[apk.filename] = apk
          self.apks[apk.filename] = apk
          self.apks_by_basename[os.path.basename(apk.filename)] = apk
          self.apks_by_basename[os.path.basename(apk.filename)] = apk

          if apk.package:
            self.max_pkg_len = max(self.max_pkg_len, len(apk.package))
            self.max_pkg_len = max(self.max_pkg_len, len(apk.package))
          self.max_fn_len = max(self.max_fn_len, len(apk.filename))
          self.max_fn_len = max(self.max_fn_len, len(apk.filename))


@@ -396,6 +398,7 @@ class TargetFiles(object):
    by_digest = {}
    by_digest = {}
    for apk in self.apks.values():
    for apk in self.apks.values():
      for digest in apk.cert_digests:
      for digest in apk.cert_digests:
        if apk.package:
          by_digest.setdefault(digest, []).append((apk.package, apk))
          by_digest.setdefault(digest, []).append((apk.package, apk))


    order = [(-len(v), k) for (k, v) in by_digest.items()]
    order = [(-len(v), k) for (k, v) in by_digest.items()]