diff --git a/src/main/python/firmware_flasher.py b/src/main/python/firmware_flasher.py index 081d39c..ab342b2 100644 --- a/src/main/python/firmware_flasher.py +++ b/src/main/python/firmware_flasher.py @@ -1,6 +1,7 @@ # SPDX-License-Identifier: GPL-2.0-or-later import datetime +import hashlib import struct import time import threading @@ -32,8 +33,21 @@ CHUNK = 64 def cmd_flash(device, firmware, log_cb, progress_cb, complete_cb, error_cb): - while len(firmware) % CHUNK != 0: - firmware += b"\x00" + if firmware[0:8] != b"VIALFW00": + return error_cb("Error: Invalid signature") + + fw_uid = firmware[8:16] + fw_ts = struct.unpack("