You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
737 B
33 lines
737 B
#!/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()
|
|
|