diff options
author | Álvaro Fernández Rojas <noltari@gmail.com> | 2023-04-09 09:55:57 +0200 |
---|---|---|
committer | Álvaro Fernández Rojas <noltari@gmail.com> | 2023-04-09 09:55:57 +0200 |
commit | 8382c5662e57e00e7841e6f1e85e89b66b09eff1 (patch) | |
tree | 6aef41a8de2e7ca7f458fd2714db2d5bbf8fedfa /scripts | |
parent | 0c53801968d9fb7f36ba855f0e6e227cabba44f2 (diff) | |
download | upstream-8382c5662e57e00e7841e6f1e85e89b66b09eff1.tar.gz upstream-8382c5662e57e00e7841e6f1e85e89b66b09eff1.tar.bz2 upstream-8382c5662e57e00e7841e6f1e85e89b66b09eff1.zip |
scripts: sercomm-payload: add PID file support
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 <noltari@gmail.com>
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/sercomm-payload.py | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/scripts/sercomm-payload.py b/scripts/sercomm-payload.py index 5193069b6c..2390d5d93a 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) |