Skip to content

Commit

Permalink
update readme info
Browse files Browse the repository at this point in the history
  • Loading branch information
petabyt committed Oct 3, 2023
1 parent 89433dc commit ecd29ca
Showing 1 changed file with 14 additions and 6 deletions.
20 changes: 14 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,34 @@
# FujiHack
FujiHack is a research project that aims to reverse engineer Fujifilm cameras in order to achieve stable code execution and interaction with the firmware.
# Fujihack
Fujihack is a research project that aims to reverse-engineer Fujifilm cameras in order to understand and improve the firmware.

[Website](https://fujihack.org) •
[Wiki](https://fujihack.github.io/) •
[Discord server](https://discord.gg/UZXDktvAZP)

This codebase contains the source code of the Fujihack custom menu, tweaks, and runtime, which can be loaded and used on a camera with a patched firmware.
This repo also has lots of firmware patches, experiments, and other internal info needed to gain [interoperability](https://en.wikipedia.org/wiki/Interoperability).
This codebase consists of:
- Firmware patches to read/write/exec over USB
- PTP CLI tool to run code and dump memory over USB
- C header files documenting Fujifilm's RTOS API
- C header files with info & RAM/firmware stubs for each camera model
- POSIX, Graphics, and I/O APIs over Fujifilm's RTOS API
- Video record limit mod, button remapping
- Anything else needed to gain [interoperability](https://en.wikipedia.org/wiki/Interoperability)

Everything else such as the UI system and linker has been moved to the [Frontier](https://github.com/petabyt/frontier) repo

## Patching firmware
- Currently, the only way to run Fujihack is with a patched firmware.
- Although the patcher has been rigorously tested, custom firmware is always dangerous and can brick devices.
- There is a way to recover bricked devices (SoC boot ROM) but it hasn't been reverse engineered yet.

A [web based patcher](https://fujihack.github.io/patcher/) is provided. It has the ability to unpack, inject, patch, repack, and downgrade firmware. It assembles patches in browser and applies them in the firmware.
A [web based patcher](https://fujihack.org/patcher/) has been written for this project. It has the ability to unpack, inject, patch, repack, and downgrade firmware. It assembles patches in browser and applies them in the firmware.

The most notable patch is the [PTP/USB debugger](https://github.com/fujihack/fujihack/blob/master/patch/debug.S), which has been ported to the XF1 and X-A2.

## PTP/USB Debugger
The debugger firmware patch allows you to run custom code over USB, through the PTP protocol.

Using it requires `arm-none-eabi-gcc` and the [custom PTP CLI utility](https://github.com/fujihack/cli).
Using it requires `arm-none-eabi-gcc` and `libusb-v1.0`.

Enter the `minimal/` directory. The makefile accepts a `model` argument, which can be defined by placing a config.mak at the top directory, or defining in CLI like so:
```
Expand Down

0 comments on commit ecd29ca

Please sign in to comment.