{
  "added_at": "2026-11-02",
  "additional_evidence_urls": [
    "https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/Makefile",
    "https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/src/Makefile",
    "https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/usb/Makefile",
    "https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/usb/main.c",
    "https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/src/patch/debug.S",
    "https://github.com/fujihack/fujihack/tree/754acff9aa0322df19446cf7eca699b221c3330d/model",
    "https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/model/xf1_101.h",
    "https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/etc/NOTES.md",
    "https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/etc/unicorn/main.py",
    "https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/.github/workflows_/makefile.yml",
    "https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/.gitmodules",
    "https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/LICENSE",
    "https://github.com/fujihack/fujihack/releases/tag/0.2.0",
    "https://github.com/fujihack/fujihack/releases/tag/0.1.0"
  ],
  "category": "firmware",
  "description_en": "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.",
  "description_zh": "以逆向 Fujifilm 相机为目标的研究代码库，使自定义代码能够在打过补丁的固件下于相机上运行。其中包括 ARM 固件补丁，最主要的是为 PTP/USB 增加内存读、写和执行命令的调试器补丁；一个通过 USB 上传代码并转储内存的主机命令行工具；以及记录 Fujifilm RTOS API 的 C 头文件，附各机型的固件地址和函数桩。相机端代码在该 RTOS 之上提供 POSIX、图形和 I/O 封装，并包含解除录像时长限制的修改、按键重映射，以及名为 Frontier 的界面与模块系统。",
  "entry_url": "https://awesomerea.org/resources/fujihack/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/fujihack/",
  "evidence_url": "https://github.com/fujihack/fujihack/blob/754acff9aa0322df19446cf7eca699b221c3330d/README.md",
  "group": "tools",
  "id": "fujihack",
  "json_url": "https://awesomerea.org/resources/fujihack/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/fujihack/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/fujihack/index.md",
  "name": "FujiHack",
  "name_zh": "FujiHack：Fujifilm 相机固件逆向研究项目",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "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."
  ],
  "requirements_zh": [
    "所审阅的 master 提交日期为 2024-08-17。仓库的两个 GitHub 发布版本都不含文件：2022-10-27 的调试器版本 0.1.0 已标为弃用，改推独立的 fffw 项目；2023 年面向 X-A2 的 DOOM 移植演示版本 0.2.0 已标为不再支持。README 称 FujiHack 只能在打过补丁的固件下运行，自定义固件始终存在风险并可能损坏相机，而借助 SoC 启动 ROM 恢复变砖设备的方法尚未逆向出来。README 报告调试器补丁已移植到 XF1 和 X-A2；附固件地址的机型头文件涵盖十款相机，从 Z3、HS20EXR 到 X-T4。",
    "仓库不包含任何 Fujifilm 固件、转储或密钥：机型头文件引用的是厂商自己的固件下载地址，打补丁则在独立的浏览器端补丁工具中完成，README 称它可对使用者选择的固件 DAT 文件进行解包、注入、打补丁、重新打包和降级。etc/ 中的辅助程序（包括一个 Unicorn 仿真脚本）读取使用者从自己相机中获取的固件或内存转储。",
    "相机端代码按机型使用 arm-none-eabi-gcc 构建，少量 Rust 文件另需 rustc，命令为 make hack.bin model=<model>。主机端 fuji 命令行工具需要 libusb-1.0 和 camlib PTP 库子模块，其 Windows 构建会下载作者的 libwpd DLL。曾编译 X-A2 目标的工作流位于已停用的 .github/workflows_ 目录中，因此没有运行中的 CI，也没有测试。",
    "LICENSE 与 README 标明采用 GPL-3.0，版权归 Daniel C 及贡献者（2021–2024）；usb/dbg.c 带有另一位贡献者的版权声明，camlib 子模块有其自身许可。README 将这项工作定位为互操作性研究；Fujifilm 的固件和商标仍归厂商所有。"
  ],
  "targets": [
    "firmware"
  ],
  "url": "https://github.com/fujihack/fujihack",
  "verification": "source-reviewed",
  "verified_at": "2026-10-20"
}
