From e153b3464374155d03bfe47092faaab555b89e81 Mon Sep 17 00:00:00 2001 From: Takeshi Kanemoto Date: Thu, 14 Nov 2013 17:20:50 +0900 Subject: [PATCH] ota_from_target_files: Add an option to not sign OTA packages Sometimes it is useful to be able to tell ota_from_target_files to not sign the output zip file. For instance, the private release key may not be available when ota_from_target_files is executed; similarly the release tools may not be available or executable where the private key is stored. This change adds an option, '--no_signing', to simply output the unsigned OTA zip file, instead of spuriously signing it with the test key even though the zip file would need to be re-signed later with a different key. Change-Id: I1f3c4dc8ffa35ce85478f848b147aff3d40fe283 --- tools/releasetools/ota_from_target_files | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 2ef896f17..b7e66135c 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -88,6 +88,7 @@ OPTIONS.omit_prereq = False OPTIONS.extra_script = None OPTIONS.aslr_mode = True OPTIONS.worker_threads = 3 +OPTIONS.no_signing = False def MostPopularKey(d, default): """Given a dict, return the key corresponding to the largest @@ -822,6 +823,8 @@ def main(argv): OPTIONS.aslr_mode = False elif o in ("--worker_threads"): OPTIONS.worker_threads = int(a) + elif o in ("--no_signing"): + OPTIONS.no_signing = True else: return False return True @@ -836,6 +839,7 @@ def main(argv): "extra_script=", "worker_threads=", "aslr_mode=", + "no_signing", ], extra_option_handler=option_handler) @@ -870,9 +874,12 @@ def main(argv): OPTIONS.device_specific = os.path.normpath(OPTIONS.device_specific) print "using device-specific extensions in", OPTIONS.device_specific - temp_zip_file = tempfile.NamedTemporaryFile() - output_zip = zipfile.ZipFile(temp_zip_file, "w", - compression=zipfile.ZIP_DEFLATED) + if OPTIONS.no_signing: + output_zip = zipfile.ZipFile(args[1], "w", compression=zipfile.ZIP_DEFLATED) + else: + temp_zip_file = tempfile.NamedTemporaryFile() + output_zip = zipfile.ZipFile(temp_zip_file, "w", + compression=zipfile.ZIP_DEFLATED) if OPTIONS.incremental_source is None: WriteFullOTAPackage(input_zip, output_zip) @@ -896,8 +903,9 @@ def main(argv): output_zip.close() - SignOutput(temp_zip_file.name, args[1]) - temp_zip_file.close() + if not OPTIONS.no_signing: + SignOutput(temp_zip_file.name, args[1]) + temp_zip_file.close() common.Cleanup()