From c6dade50c58b63bd6ef5698be91cce9c0d578ebe Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 25 Sep 2019 08:39:53 +1000 Subject: [PATCH] Tools: added script for creating apj file from *.bin useful when you have a binary firmware and want to be able to upload it with uploader.py --- Tools/scripts/make_apj.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 Tools/scripts/make_apj.py diff --git a/Tools/scripts/make_apj.py b/Tools/scripts/make_apj.py new file mode 100755 index 0000000000..39d60025af --- /dev/null +++ b/Tools/scripts/make_apj.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python +''' +Create an apj file from a *.bin binary firmware +''' + +import argparse +import json +import base64 +import zlib + +parser = argparse.ArgumentParser(description='make_apj') + +parser.add_argument('bin') +parser.add_argument('apj') +parser.add_argument('--board-id', type=int, default=1, help='board ID') + +args = parser.parse_args() + +img = open(args.bin, 'rb').read() +d = { + "board_id": int(args.board_id), + "magic": "APJFWv1", + "description": "Firmware for a %s" % args.bin, + "image": base64.b64encode(zlib.compress(img, 9)).decode('utf-8'), + "summary": args.bin, + "version": "0.1", + "image_size": len(img), + "board_revision": 0 +} + +f = open(args.apj, "w") +f.write(json.dumps(d, indent=4)) +f.close()