1#!/usr/bin/env python 2# 3# Copyright 2015 The Chromium Authors. All rights reserved. 4# Use of this source code is governed by a BSD-style license that can be 5# found in the LICENSE file. 6"""Signs and zipaligns split APKs. 7 8This script is require only by GYP (not GN). 9""" 10 11import optparse 12import sys 13 14import finalize_apk 15from util import build_utils 16 17def main(): 18 parser = optparse.OptionParser() 19 parser.add_option('--zipalign-path', help='Path to the zipalign tool.') 20 parser.add_option('--resource-packaged-apk-path', 21 help='Base path to input .ap_s.') 22 parser.add_option('--base-output-path', 23 help='Path to output .apk, minus extension.') 24 parser.add_option('--key-path', help='Path to keystore for signing.') 25 parser.add_option('--key-passwd', help='Keystore password') 26 parser.add_option('--key-name', help='Keystore name') 27 parser.add_option('--densities', 28 help='Comma separated list of densities finalize.') 29 parser.add_option('--languages', 30 help='GYP list of language splits to finalize.') 31 32 options, _ = parser.parse_args() 33 options.load_library_from_zip = 0 34 35 if options.densities: 36 for density in options.densities.split(','): 37 options.unsigned_apk_path = ("%s_%s" % 38 (options.resource_packaged_apk_path, density)) 39 options.final_apk_path = ("%s-density-%s.apk" % 40 (options.base_output_path, density)) 41 finalize_apk.FinalizeApk(options) 42 43 if options.languages: 44 for lang in build_utils.ParseGypList(options.languages): 45 options.unsigned_apk_path = ("%s_%s" % 46 (options.resource_packaged_apk_path, lang)) 47 options.final_apk_path = ("%s-lang-%s.apk" % 48 (options.base_output_path, lang)) 49 finalize_apk.FinalizeApk(options) 50 51if __name__ == '__main__': 52 sys.exit(main()) 53