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

Commit 70dd47f0 authored by Paul Duffin's avatar Paul Duffin
Browse files

Fail check-boot-jars if boot jar contains 0 .class files

Protect against an invalid boot jar, e.g. one containing .dex files is
used instead of .class files.

Test: add a prebuilt for framework-tethering
      Run `m check-boot-jars` with the first fix from
	  https://r.android.com/1341756 and the build fails due to no
	  .class files because a dex jar is used.
	  Run `m check-boot-jars` with all fixeds from
	  https://r.android.com/1341756 and the build works.
Bug: 158304459
Bug: 159112414
Merged-In: I0e8ebd318312949bc58ba7a5c89f9e265b8bedf2
Change-Id: I0e8ebd318312949bc58ba7a5c89f9e265b8bedf2
(cherry picked from 92d41de8)
parent 03db4fbb
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -49,8 +49,10 @@ def CheckJar(allow_list_path, jar):
  if p.returncode != 0:
    return False
  items = stdout.split()
  classes = 0
  for f in items:
    if f.endswith('.class'):
      classes += 1
      package_name = os.path.dirname(f)
      package_name = package_name.replace('/', '.')
      if not package_name or not allow_list_re.match(package_name):
@@ -58,6 +60,9 @@ def CheckJar(allow_list_path, jar):
                              ' not in the allow list %s of packages allowed on the bootclasspath.'
                              % (jar, f, package_name, allow_list_path))
        return False
  if classes == 0:
    print >> sys.stderr, ('Error: %s does not contain any class files.' % jar)
    return False
  return True