From e45693bfe050163756e5509688ea3eb55a370776 Mon Sep 17 00:00:00 2001 From: Nic Limper Date: Thu, 31 Aug 2023 02:44:34 +0200 Subject: [PATCH] new version of 88MZ100 7.4" tag firmware + patch_mac.py for easy mac change No need for HxD anymore for this firmware. See https://github.com/jjwbruijn/OpenEPaperLink/wiki/88MZ100-Programming-and-interfacing --- .../88MZ100_7.4_BETA-0.3.bin | Bin 0 -> 64416 bytes Tag_Flasher/patch_mac.py | 25 ++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/88MZ100_7.4_BETA-0.3.bin create mode 100644 Tag_Flasher/patch_mac.py diff --git a/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/88MZ100_7.4_BETA-0.3.bin b/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/88MZ100_7.4_BETA-0.3.bin new file mode 100644 index 0000000000000000000000000000000000000000..fc9a9e1274cdd0085215287bfdf344b0a653806c GIT binary patch literal 64416 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 VkYF4K#xm?XI_wQD;M+=o{{x>xb)f(N literal 0 HcmV?d00001 diff --git a/Tag_Flasher/patch_mac.py b/Tag_Flasher/patch_mac.py new file mode 100644 index 00000000..5857efca --- /dev/null +++ b/Tag_Flasher/patch_mac.py @@ -0,0 +1,25 @@ +import argparse + +def patch_mac(file_path, mac): + try: + with open(file_path, "r+b") as file: + offset = 0x0148 + mac_bytes = bytearray.fromhex(mac) + mac_bytes.reverse() # Reverse the byte order + + file.seek(offset) + file.write(mac_bytes) + print(f"MAC address patched successfully.") + except FileNotFoundError: + print("Error: File not found.") + except Exception as e: + print(f"An error occurred: {e}") + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Patch MAC address in a binary firmware file for the 88MZ100 7.4 inch esl") + parser.add_argument("-mac", required=True, help="MAC address (without colons)") + parser.add_argument("filename", help="Binary file to patch") + + args = parser.parse_args() + patch_mac(args.filename, args.mac) +