Tool

FujiHack

Research codebase for reverse engineering Fujifilm cameras so that custom code can run on them under a patched firmware. It holds ARM firmware patches, chiefly a PTP/USB debugger that adds memory read, write and execute commands, a host CLI that uploads code and dumps memory over USB, and C headers documenting Fujifilm’s RTOS API with per-model firmware addresses and function stubs. On-camera code adds POSIX, graphics and I/O wrappers over that RTOS, a video record-limit mod, button remapping and the Frontier UI and module system.

Requirements & limits

  • The reviewed master commit dates from 2024-08-17. Its two GitHub releases carry no files: 0.1.0, the debugger release of 2022-10-27, is marked deprecated in favour of a separate fffw project, and 0.2.0, a 2023 DOOM-port demo for the X-A2, is marked no longer supported. The README says FujiHack runs only under a patched firmware, that custom firmware is always dangerous and can damage the camera, and that recovery of bricked devices through the SoC boot ROM has not been reverse engineered. It reports the debugger patch ported to the XF1 and X-A2; model headers with firmware addresses cover ten cameras, from the Z3 and HS20EXR to the X-T4.
  • The repository contains no Fujifilm firmware, dumps or keys: model headers reference the vendor’s own firmware download URLs, and patching happens in the separate browser-based patcher, which the README says unpacks, injects, patches, repacks and downgrades a firmware DAT file the user selects. Helper programs in etc/, including a Unicorn emulation script, read firmware or RAM dumps the user makes from their own camera; this record restates no patching or installation procedure.
  • On-camera code is built per model with arm-none-eabi-gcc, plus rustc for a few Rust files, through make hack.bin model=<model>. The host fuji CLI needs libusb-1.0 and the camlib PTP library submodule, and its Windows build downloads the author’s libwpd DLL. A workflow that compiled the X-A2 target sits in a disabled .github/workflows_ directory, so no CI runs, and there are no tests. This collection reviewed source and documentation without building anything or connecting a camera.
  • GPL-3.0 per LICENSE and the README, copyright 2021–2024 Daniel C and contributors; usb/dbg.c carries another contributor’s copyright notice, and the camlib submodule keeps its own license. The README frames the work as interoperability research; Fujifilm’s firmware and trademarks remain the vendor’s. The reviewed sources establish no REA connection.

About this entry

Type
Tool
Category
Firmware tools
Relationship
Foundation tool
Targets
Firmware

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · fujihack/fujihack · Revision 754acff
  2. Makefile GitHub · fujihack/fujihack · Revision 754acff
  3. src/Makefile GitHub · fujihack/fujihack · Revision 754acff
  4. usb/Makefile GitHub · fujihack/fujihack · Revision 754acff
  5. usb/main.c GitHub · fujihack/fujihack · Revision 754acff
  6. src/patch/debug.S GitHub · fujihack/fujihack · Revision 754acff
  7. model GitHub · fujihack/fujihack · Revision 754acff
  8. model/xf1_101.h GitHub · fujihack/fujihack · Revision 754acff
  9. etc/NOTES.md GitHub · fujihack/fujihack · Revision 754acff
  10. etc/unicorn/main.py GitHub · fujihack/fujihack · Revision 754acff
  11. .github/workflows_/makefile.yml GitHub · fujihack/fujihack · Revision 754acff
  12. .gitmodules GitHub · fujihack/fujihack · Revision 754acff
  13. LICENSE GitHub · fujihack/fujihack · Revision 754acff
  14. https://github.com/fujihack/fujihack/releases/tag/0.2.0
  15. https://github.com/fujihack/fujihack/releases/tag/0.1.0

More in Firmware and hardware

All 42 entries in Firmware and hardware