From 8382c5662e57e00e7841e6f1e85e89b66b09eff1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Sun, 9 Apr 2023 09:55:57 +0200 Subject: [PATCH] scripts: sercomm-payload: add PID file support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Allow passing Sercomm PID from file. Until now, Sercomm PID could only be passed as an array of hex bytes. Signed-off-by: Álvaro Fernández Rojas --- scripts/sercomm-payload.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/scripts/sercomm-payload.py b/scripts/sercomm-payload.py index 5193069b6c8..2390d5d93a9 100755 --- a/scripts/sercomm-payload.py +++ b/scripts/sercomm-payload.py @@ -12,11 +12,21 @@ def create_output(args): in_bytes = in_f.read(in_size) in_f.close() + if (args.pid_file): + pid_st = os.stat(args.pid_file) + pid_size = pid_st.st_size + + pid_f = open(args.pid_file, 'r+b') + pid_bytes = pid_f.read(pid_size) + pid_f.close() + else: + pid_bytes = bytes.fromhex(args.pid) + sha256 = hashlib.sha256() sha256.update(in_bytes) out_f = open(args.output_file, 'w+b') - out_f.write(bytes.fromhex(args.pid)) + out_f.write(pid_bytes) out_f.write(sha256.digest()) out_f.write(in_bytes) out_f.close() @@ -38,6 +48,12 @@ def main(): type=str, help='Output file') + parser.add_argument('--pid-file', + dest='pid_file', + action='store', + type=str, + help='Sercomm PID file') + parser.add_argument('--pid', dest='pid', action='store', @@ -48,7 +64,7 @@ def main(): if ((not args.input_file) or (not args.output_file) or - (not args.pid)): + (not args.pid_file and not args.pid)): parser.print_help() create_output(args)