# 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.

- Type: Tool
- Targets: Firmware
- Category: Firmware tools
- Relationship: Foundation tool
- Sources reviewed: 2026-10-20
- Added to the catalog: 2026-11-02
- Original resource: <https://github.com/fujihack/fujihack>
- Primary source: <https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/README.md>
- Catalog page: <https://awesomerea.org/resources/fujihack/>
- Record JSON: <https://awesomerea.org/resources/fujihack/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/fujihack/index.md)

## 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.
- 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.
- 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.

## Primary sources

1. <https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/README.md>
2. <https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/Makefile>
3. <https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/src/Makefile>
4. <https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/usb/Makefile>
5. <https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/usb/main.c>
6. <https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/src/patch/debug.S>
7. <https://github.com/fujihack/fujihack/tree/754acff9aa0322df19446cf7eca699b221c3330d/model>
8. <https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/model/xf1_101.h>
9. <https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/etc/NOTES.md>
10. <https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/etc/unicorn/main.py>
11. <https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/.github/workflows_/makefile.yml>
12. <https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/.gitmodules>
13. <https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/LICENSE>
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

- [efiSeek](https://awesomerea.org/resources/efiseek/index.md) · Tool
- [FwAnalyzer](https://awesomerea.org/resources/fwanalyzer/index.md) · Tool
- [FwHunt Community Scanner (fwhunt-scan)](https://awesomerea.org/resources/fwhunt-scan/index.md) · Tool
- [sniffROM](https://awesomerea.org/resources/sniffrom/index.md) · Tool
- [Pawn](https://awesomerea.org/resources/google-pawn/index.md) · Tool
- [EMBArk](https://awesomerea.org/resources/embark/index.md) · Tool

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
