Add ability to pass in payload_signer args
Bug: 28701652
Change-Id: I110d5fc14446e4a6a0f8e25dcb0d300decdf09a4
(cherry picked from commit 2abbbd03339947327ada0becba5bd4ef41f1bdab)
diff --git a/tools/releasetools/ota_from_target_files.py b/tools/releasetools/ota_from_target_files.py
index bd25fd5..6966964 100755
--- a/tools/releasetools/ota_from_target_files.py
+++ b/tools/releasetools/ota_from_target_files.py
@@ -116,6 +116,9 @@
directly, a payload signer that knows how to do that should be specified.
The signer will be supplied with "-inkey <path_to_key>",
"-in <input_file>" and "-out <output_file>" parameters.
+
+ --payload_signer_args <args>
+ Specify the arguments needed for payload signer.
"""
import sys
@@ -127,6 +130,7 @@
import multiprocessing
import os
import subprocess
+import shlex
import tempfile
import zipfile
@@ -163,6 +167,7 @@
OPTIONS.gen_verify = False
OPTIONS.log_diff = None
OPTIONS.payload_signer = None
+OPTIONS.payload_signer_args = []
def MostPopularKey(d, default):
"""Given a dict, return the key corresponding to the largest
@@ -1234,8 +1239,8 @@
suffix=".bin")
# 3a. Sign the payload hash.
if OPTIONS.payload_signer is not None:
- cmd = [OPTIONS.payload_signer,
- "-inkey", OPTIONS.package_key + OPTIONS.private_key_suffix]
+ cmd = [OPTIONS.payload_signer]
+ cmd.extend(OPTIONS.payload_signer_args)
else:
cmd = ["openssl", "pkeyutl", "-sign",
"-inkey", rsa_key,
@@ -1248,8 +1253,8 @@
# 3b. Sign the metadata hash.
if OPTIONS.payload_signer is not None:
- cmd = [OPTIONS.payload_signer,
- "-inkey", OPTIONS.package_key + OPTIONS.private_key_suffix]
+ cmd = [OPTIONS.payload_signer]
+ cmd.extend(OPTIONS.payload_signer_args)
else:
cmd = ["openssl", "pkeyutl", "-sign",
"-inkey", rsa_key,
@@ -1917,6 +1922,8 @@
OPTIONS.log_diff = a
elif o == "--payload_signer":
OPTIONS.payload_signer = a
+ elif o == "--payload_signer_args":
+ OPTIONS.payload_signer_args = shlex.split(a)
else:
return False
return True
@@ -1946,6 +1953,7 @@
"gen_verify",
"log_diff=",
"payload_signer=",
+ "payload_signer_args=",
], extra_option_handler=option_handler)
if len(args) != 2: