2023-06-13 16:54:32 +00:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
2023-06-13 17:36:47 +00:00
|
|
|
from uvk5 import UVK5, argv, eprint, Firmware
|
2023-06-13 16:54:32 +00:00
|
|
|
|
2023-06-13 18:16:58 +00:00
|
|
|
def main(cmd):
|
2023-06-13 17:36:47 +00:00
|
|
|
argc = len(argv)
|
2023-06-13 18:16:58 +00:00
|
|
|
fw = Firmware.load(argv[2])
|
|
|
|
|
2023-06-13 17:20:13 +00:00
|
|
|
eprint('Version:', fw.version)
|
2023-06-13 18:16:58 +00:00
|
|
|
|
|
|
|
if argc < 3:
|
|
|
|
return
|
|
|
|
|
|
|
|
if cmd == 'mod':
|
2023-06-13 17:20:13 +00:00
|
|
|
eprint('mods:', argv[3])
|
|
|
|
fw.apply_mods(argv[3].split(','))
|
|
|
|
fw.write()
|
2023-06-13 17:36:47 +00:00
|
|
|
if argc == 5:
|
|
|
|
with UVK5(argv[4]) as uvk5:
|
|
|
|
uvk5.get_version()
|
|
|
|
uvk5.send_firmware(fw)
|
2023-06-13 18:16:58 +00:00
|
|
|
|
|
|
|
if cmd == 'cmp':
|
|
|
|
fw2 = Firmware.load(argv[3])
|
|
|
|
fw.compare(fw2)
|
|
|
|
|
2023-06-13 18:39:33 +00:00
|
|
|
if cmd == 'search':
|
|
|
|
fw.search(argv[3].encode())
|
|
|
|
|
|
|
|
|
|
|
|
def usage():
|
|
|
|
eprint('Usage:', argv[0], '<cmd>', '<fw.bin>', '[args...]')
|
|
|
|
exit(255)
|
2023-06-13 18:16:58 +00:00
|
|
|
|
2023-06-13 16:54:32 +00:00
|
|
|
|
|
|
|
if __name__ == '__main__':
|
2023-06-13 18:39:33 +00:00
|
|
|
if len(argv) == 1:
|
|
|
|
usage()
|
|
|
|
|
2023-06-13 16:54:32 +00:00
|
|
|
main(argv[1])
|