-
Notifications
You must be signed in to change notification settings - Fork 13
SF_RESOURCE
Georg Lukas edited this page Apr 9, 2025
·
1 revision
The firmware of multiple camera models (at least NX mini, NX3000/NX3300, WB250F, WB30F, WB800F, Galaxy K-Zoom) contains an embedded resource filesystem called SF_RESOURCE
. It can be inspected/extracted using sfresource.py.
The SF_RESOURCE
filesystem is aligned on a 2KB boundary. It begins with a 32 bytes header containing the magic string "SF_RESOURCE", a version number, and the number of files (e.g. N = 0xa3 = 163 files; the examples are from NX mini firmware 1.10):
00000000: 5346 5f52 4553 4f55 5243 4500 0000 0000 SF_RESOURCE.....
00000010: 3031 2e30 a300 0000 0000 0000 0000 0000 01.0............
After that, there is a 64 byte block for each file metadata, with the filename, offset and size:
00000020: 4e58 4d49 4e49 2e48 4558 0000 0000 0000 NXMINI.HEX......
00000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000050: 0000 0000 0000 0000 0000 0000 0c92 0000 ................
00000060: 6364 2e69 736f 0000 0000 0000 0000 0000 cd.iso..........
00000070: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000080: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000090: 0000 0000 0000 0000 00c0 0000 00f8 0600 ................
...
The offsets are relative to the end of the header (32+N*64 bytes). Listed files:
- NXMINI.HEX at offset=0 with size=37388
- cd.iso at offset=49152 with size=456704 (matching an actual ISO-9660 fs in the SF_RESOURCE block at position 49152 + 32 + 163*64 = 59616)