From ea661ee9ff16defc5c056c3e0b68fc86c1fcd9e0 Mon Sep 17 00:00:00 2001 From: SashegDev Date: Fri, 11 Sep 2026 08:15:25 +0000 Subject: [PATCH] ffu_extract: store via PlatformId scan, mmap --- tools/ffu_extract.py | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/tools/ffu_extract.py b/tools/ffu_extract.py index 52aa0b8..de01ec9 100644 --- a/tools/ffu_extract.py +++ b/tools/ffu_extract.py @@ -18,27 +18,25 @@ CHUNK = 131072 def load(ffu): - f = open(ffu, "rb") + import mmap + raw = open(ffu, "rb") + f = mmap.mmap(raw.fileno(), 0, access=mmap.ACCESS_READ) sec = f.read(32) _, _, chunk_kb, _, cat, hsh = struct.unpack(" 0 + vals = struct.unpack("<11I", f[st + 204:st + 248]) + assert vals[0] == CHUNK, vals # blkSize sanity wcnt = vals[1] pos = st + 248 disk = {} # diskchunk -> datachunk dc = 0 for _ in range(wcnt): - f.seek(pos) - a, _ = struct.unpack("