diff options
Diffstat (limited to 'chromium/tools/jar_check.py')
-rwxr-xr-x | chromium/tools/jar_check.py | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/chromium/tools/jar_check.py b/chromium/tools/jar_check.py deleted file mode 100755 index 38a2ab4..0000000 --- a/chromium/tools/jar_check.py +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env python -# -# Copyright (C) 2013 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the 'License'); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an 'AS IS' BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -"""Check that a jar file contains only allowed packages. - -Given a jar file (typically, the result of running jarjar to rename packages) -and a whitelist file of allowed package names, one per line, check that all the -classes in the jar are in one of those packages. -""" - -import contextlib -import sys -import zipfile - - -def JarCheck(jar_path, whitelist_path): - """Checks that the files in the jar are in whitelisted packages. - - Args: - jar_path: The path to the .jar file to be checked. - whitelist_path: The path to the whitelist file. - Returns: - A list of files that are not in whitelisted packages. - """ - with open(whitelist_path) as whitelist_file: - allowed_packages = tuple(x.replace('.', '/').replace('\n', '/') - for x in whitelist_file) - - with contextlib.closing(zipfile.ZipFile(jar_path)) as jar: - jar_contents = jar.namelist() - - invalid_files = [] - for filename in jar_contents: - # Zipfile entries with a trailing / are directories, we can ignore these. - # Also ignore jar meta-info. - if filename.endswith('/') or filename.startswith('META-INF/'): - continue - if not filename.startswith(allowed_packages): - invalid_files.append(filename) - - return invalid_files - - -def main(argv): - if len(argv) != 3: - print >>sys.stderr, 'Usage: %s jar_file whitelist_file' % argv[0] - return 2 - invalid_files = JarCheck(argv[1], argv[2]) - invalid_file_count = len(invalid_files) - if invalid_file_count == 0: - return 0 - print >>sys.stderr, ('jar_check found %s files not in a whitelisted package:' - % invalid_file_count) - for f in invalid_files: - print >>sys.stderr, f - return 1 - - -if __name__ == '__main__': - sys.exit(main(sys.argv)) |