Update: MeshOS/Ultra bypass firmwares verified and ready for deployment
This commit is contained in:
BIN
firmware/MeshOS-TDeck-1.1.8-merged.patched.bin
Normal file
BIN
firmware/MeshOS-TDeck-1.1.8-merged.patched.bin
Normal file
Binary file not shown.
BIN
firmware/Ultra-TDeck-v9.2-merged.patched.bin
Normal file
BIN
firmware/Ultra-TDeck-v9.2-merged.patched.bin
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -2,6 +2,7 @@
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
||||||
def check_binary(file_path, patches):
|
def check_binary(file_path, patches):
|
||||||
if not os.path.exists(file_path):
|
if not os.path.exists(file_path):
|
||||||
return f"MISSING: {file_path}"
|
return f"MISSING: {file_path}"
|
||||||
@@ -17,34 +18,61 @@ def check_binary(file_path, patches):
|
|||||||
results.append(f" [PASS] {name}: PATCHED (found {patched.hex()})")
|
results.append(f" [PASS] {name}: PATCHED (found {patched.hex()})")
|
||||||
else:
|
else:
|
||||||
found = data[offset : offset + max(len(expected), len(patched))].hex()
|
found = data[offset : offset + max(len(expected), len(patched))].hex()
|
||||||
results.append(f" [ERR] {name}: UNKNOWN (expected {patched.hex()}, found {found})")
|
results.append(
|
||||||
|
f" [ERR] {name}: UNKNOWN (expected {patched.hex()}, found {found})"
|
||||||
|
)
|
||||||
|
|
||||||
return "\n".join(results)
|
return "\n".join(results)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
PATCHED_DIR = "/home/sapient/Public/esp32-analysis/patched_binaries"
|
PATCHED_DIR = "/home/sapient/Public/esp32-analysis/patched_binaries"
|
||||||
|
|
||||||
ultra_patches = [
|
ultra_patches = [
|
||||||
("UI Branch", 0xBA62D, bytes.fromhex("26153c"), bytes.fromhex("060f00")),
|
("UI Branch", 0xBA62D, bytes.fromhex("26153c"), bytes.fromhex("060f00")),
|
||||||
("Global Status (Round 2)", 0xBA6AD, bytes.fromhex("040242"), bytes.fromhex("221000ec"))
|
(
|
||||||
|
"Global Status (Round 2)",
|
||||||
|
0xBA6AD,
|
||||||
|
bytes.fromhex("040242"),
|
||||||
|
bytes.fromhex("221000"),
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
meshos_patches = [
|
meshos_patches = [
|
||||||
("UI Branch", 0xB99ED, bytes.fromhex("26193c"), bytes.fromhex("060f00")),
|
("UI Branch", 0xB99ED, bytes.fromhex("26193c"), bytes.fromhex("060f00")),
|
||||||
("Global Status (Round 2)", 0xB9A54, bytes.fromhex("84210040"), bytes.fromhex("22100040"))
|
(
|
||||||
|
"Global Status (Round 2)",
|
||||||
|
0xB9A54,
|
||||||
|
bytes.fromhex("84210040"),
|
||||||
|
bytes.fromhex("22100040"),
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
targets = [
|
targets = [
|
||||||
("Ultra Standalone", os.path.join(PATCHED_DIR, "Ultra-TDeck-v9.2.patched.bin"), ultra_patches),
|
(
|
||||||
("Ultra Merged", os.path.join(PATCHED_DIR, "Ultra-TDeck-v9.2-merged.patched.bin"),
|
"Ultra Standalone-MOD",
|
||||||
[(n, o+0x10000, e, p) for n, o, e, p in ultra_patches]),
|
os.path.join(PATCHED_DIR, "Ultra-TDeck-v9.2.patched.bin"),
|
||||||
("MeshOS Standalone", os.path.join(PATCHED_DIR, "MeshOS-TDeck-1.1.8.patched.bin"), meshos_patches),
|
ultra_patches,
|
||||||
("MeshOS Merged", os.path.join(PATCHED_DIR, "MeshOS-TDeck-1.1.8-merged.patched.bin"),
|
),
|
||||||
[(n, o+0x10000, e, p) for n, o, e, p in meshos_patches])
|
(
|
||||||
|
"Ultra Merged-MOD",
|
||||||
|
os.path.join(PATCHED_DIR, "Ultra-TDeck-v9.2-merged.patched.bin"),
|
||||||
|
[(n, o + 0x10000, e, p) for n, o, e, p in ultra_patches],
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"MeshOS Standalone-MOD",
|
||||||
|
os.path.join(PATCHED_DIR, "MeshOS-TDeck-1.1.8.patched.bin"),
|
||||||
|
meshos_patches,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"MeshOS Merged-MOD",
|
||||||
|
os.path.join(PATCHED_DIR, "MeshOS-TDeck-1.1.8-merged.patched.bin"),
|
||||||
|
[(n, o + 0x10000, e, p) for n, o, e, p in meshos_patches],
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
all_passed = True
|
all_passed = True
|
||||||
print("=== Firmware Patch Verification Harness ===")
|
print("=== T-Deck-MOD Firmware Patch Verification Harness ===")
|
||||||
for label, path, p in targets:
|
for label, path, p in targets:
|
||||||
print(f"\n{label}:")
|
print(f"\n{label}:")
|
||||||
report = check_binary(path, p)
|
report = check_binary(path, p)
|
||||||
|
|||||||
Reference in New Issue
Block a user