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 Change-Id: I0e8ebd318312949bc58ba7a5c89f9e265b8bedf2
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user