diff options
author | Gabriele M <moto.falcon.git@gmail.com> | 2017-01-11 16:11:57 +0100 |
---|---|---|
committer | Zhao Wei Liew <zhaoweiliew@gmail.com> | 2017-01-23 11:06:28 +0800 |
commit | 918ca7f98412ec2e79ac0119327db2cf7120db2b (patch) | |
tree | 7310af2d747737b198870e483b93a4c43e30811e | |
parent | a3b37940bdcdc04e786fcca54195f957aa83d72b (diff) | |
download | build-918ca7f98412ec2e79ac0119327db2cf7120db2b.zip build-918ca7f98412ec2e79ac0119327db2cf7120db2b.tar.gz build-918ca7f98412ec2e79ac0119327db2cf7120db2b.tar.bz2 |
releasetools: Add script to sign zips
Change-Id: I9cbeb6edea79a7e9bb0fc692e53497b54058d67f
-rwxr-xr-x | tools/releasetools/sign_zip.py | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/tools/releasetools/sign_zip.py b/tools/releasetools/sign_zip.py new file mode 100755 index 0000000..c40b1b4 --- /dev/null +++ b/tools/releasetools/sign_zip.py @@ -0,0 +1,69 @@ +#!/usr/bin/env python +# +# Copyright (C) 2017 The LineageOS 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. + +""" +Signs the given zip with the given key producing a new zip. + +Usage: sign_release_zip [flags] input_zip output_zip + + -k (--package_key) <key> Key to use to sign the package (default is + "build/target/product/security/testkey"). +""" +import sys + +import common + +OPTIONS = common.OPTIONS + +OPTIONS.package_key = "build/target/product/security/testkey" + +def SignOutput(input_zip_name, output_zip_name): + key_passwords = common.GetKeyPasswords([OPTIONS.package_key]) + pw = key_passwords[OPTIONS.package_key] + + common.SignFile(input_zip_name, output_zip_name, OPTIONS.package_key, pw, + whole_file=True) + + +def main(argv): + + def option_handler(o, a): + if o in ("-k", "--package_key"): + OPTIONS.package_key = a + else: + return False + return True + + args = common.ParseOptions(argv, __doc__, + extra_opts="k:", + extra_long_opts=[ + "package_key=", + ], extra_option_handler=option_handler) + if len(args) != 2: + common.Usage(__doc__) + sys.exit(1) + + SignOutput(args[0], args[1]) + + +if __name__ == '__main__': + try: + main(sys.argv[1:]) + except common.ExternalError as e: + print() + print(" ERROR: %s" % e) + print() + sys.exit(1) |