From c82caae612401cd42c211767f600afa6cac89697 Mon Sep 17 00:00:00 2001 From: Markus Birth Date: Mon, 15 Oct 2018 00:26:38 +0200 Subject: [PATCH] Output (one?) hw_id/fwver marker from fw_all.bin --- gcd.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/gcd.py b/gcd.py index c47b194..a8eec38 100644 --- a/gcd.py +++ b/gcd.py @@ -145,6 +145,7 @@ with open(FILE, "rb") as f: raise Exception("Signature mismatch ({}, should be {})!".format(repr(sig), repr(GCD_SIG))) i = 0 + fw_all_done = False while True: hdr = f.read(4) @@ -155,14 +156,20 @@ with open(FILE, "rb") as f: print("End of file reached.") break payload = f.read(tlen) - if ttype == 0x01: + if ttype == 0x0001: parseTLV1(payload) - elif ttype == 0x03: + elif ttype == 0x0003: parseTLV3(payload) - elif ttype == 0x06: + elif ttype == 0x0006: parseTLV6(payload) - elif ttype == 0x07: + elif ttype == 0x0007: parseTLV7(payload) + elif ttype == 0x02bd and not fw_all_done: + hw_id = unpack("H", payload[0x208:0x20a])[0] + fw_ver = unpack("H", payload[0x20c:0x20e])[0] + print(" - Device ID: {:04x} / {:d} ({})".format(hw_id, hw_id, get_device(hw_id))) + print(" - Firmware version: {:04x} / {:d}".format(fw_ver, fw_ver)) + fw_all_done = True else: payloadshort = payload[:64] #print(" > " + " ".join("{:02x}".format(c) for c in payloadshort))