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

Commit 0f99033b authored by Tao Bao's avatar Tao Bao
Browse files

Fix the detection for compressed APKs.

We pack _all_ the APK certs info into META/apkcerts.txt at build time,
including the ones that are not installed for the target. When
detecting for compressed APKs, we should only count the ones that are
actually installed.

Bug: 65498015
Test: `check_target_files_signatures.py bullhead-target_files.zip`
Change-Id: I2f32d4667be0efbfd5f9365dde819f009572533d
parent aa7f44d4
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -772,6 +772,14 @@ def ReadApkCerts(tf_zip):
  certmap = {}
  compressed_extension = None

  # META/apkcerts.txt contains the info for _all_ the packages known at build
  # time. Filter out the ones that are not installed.
  installed_files = set()
  for name in tf_zip.namelist():
    basename = os.path.basename(name)
    if basename:
      installed_files.add(basename)

  for line in tf_zip.read("META/apkcerts.txt").split("\n"):
    line = line.strip()
    if not line:
@@ -796,6 +804,10 @@ def ReadApkCerts(tf_zip):
      else:
        raise ValueError("failed to parse line from apkcerts.txt:\n" + line)
      if this_compressed_extension:
        # Only count the installed files.
        filename = name + '.' + this_compressed_extension
        if filename not in installed_files:
          continue
        # Make sure that all the values in the compression map have the same
        # extension. We don't support multiple compression methods in the same
        # system image.