kopia lustrzana https://github.com/fagci/qs-uvk5-firmware-modder
feat: fw library ++
rodzic
f35486947e
commit
9232a29a1f
9
fw.py
9
fw.py
|
@ -1,14 +1,19 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from uvk5 import argv, eprint, Firmware
|
||||
from uvk5 import UVK5, argv, eprint, Firmware
|
||||
|
||||
def main(path):
|
||||
fw = Firmware.load(path)
|
||||
argc = len(argv)
|
||||
eprint('Version:', fw.version)
|
||||
if len(argv) == 4 and argv[2] == 'mod':
|
||||
if argc >= 4 and argv[2] == 'mod':
|
||||
eprint('mods:', argv[3])
|
||||
fw.apply_mods(argv[3].split(','))
|
||||
fw.write()
|
||||
if argc == 5:
|
||||
with UVK5(argv[4]) as uvk5:
|
||||
uvk5.get_version()
|
||||
uvk5.send_firmware(fw)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main(argv[1])
|
||||
|
|
9
uvk5.py
9
uvk5.py
|
@ -170,6 +170,15 @@ class UVK5(Serial):
|
|||
self.timestamp = i2b32(time())
|
||||
super().__init__(port, 38400, timeout=5)
|
||||
|
||||
def send_firmware(self, fw:Firmware):
|
||||
for block, data in enumerate(chunk(fw, UVK5.BLOCK_SIZE)):
|
||||
offset = block * UVK5.BLOCK_SIZE
|
||||
self.write_fw(offset, data)
|
||||
exit(128)
|
||||
|
||||
def write_fw(self, offset, data):
|
||||
eprint('FW write not implemented yet', offset, len(data))
|
||||
|
||||
def get_version(self):
|
||||
return self.cmd(UVK5.CMD_VERSION_REQ)[1][:10].decode().rstrip('\x00')
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue