# PS4 HDD Decryption Helper
**Main purpose of this toolkit is helping with internal HDD decryption and mounting.**

## Unicorns: ;)
- `PS4 HDD Backuper`: allows to backup user data.
- `PS4 HDD Keygen`: allows to some keys operations.
- `PS4 HDD Mounter`: allows to create mappers and **mount** filesystems.
- `PS4 HDD Tasker`: allows user to perform some special operations on disk.
- `Unattended PS4 HDD Mounter`: unattended scripts for smart and lazy people. ;)
- `PS4 HDD Unmounter` allows to **unmount** filesystems and remove mappers.
- `PS4 USB Formatter`: allows to format pendrive and create all necessary folders.

## EAP & SAMU Keys
Both keys are mandatory for decryption and mounting all partitions. However, currently SAMU HDD Key can be [obtained](https://gist.github.com/flatz/22215327864d7512e52268f9c9c51cd8) only on FW v5.05 and v9.00). With EAP HDD Key alone, you can get inside to only user data partitions.

To read **EAP HDD Key**, you can e.g. start [Linux Psxitarch](https://www.psxita.it/psxitarch-linux-v2/) (fw 5.05 only) and copy `/etc/cryptsetup/eap_hdd_key.bin` to USB, or extract it from SFlash0 image (but only from models with Aeolia and Belize South Bridges), or extract it from Orbis Kernel dumps.

To read **SAMU HDD Key**... There is no user friendly method.

## Guide:
All above listed scripts need some keys and kernel modules to operate. Depend of task, you need put different files in specified directories.

### Preparations:

1. Put **EAP HDD Key**, **EAP Kernel Key** (optional) and **SAMU HDD Key** (optional) into **~/ps4/keys/** dir under `eap_hdd_key.bin`, `eap_kernel_key.bin` and `samu_hdd_key.bin `filenames.
2. Replace **NP Account ID** inside `account_id.txt` (used only by **USB Formatter**).
3. Put **UFS** kernel module into **~/ps4/apps/** dir under `ufs.ko` filename. You must compile it yourself to match the kernel version in your Linux distribution. Version mismatching results in being unable to load it. [ufs](https://stty.io/2018/06/02/compiling-a-single-module-linux-kernel/) is *OPTIONAL*, providing only write permissions on UFS2 partitions.

### Reading HDD contents
Run **PS4 HDD Mounter** and "follow the damn train CJ". ;) After You are done, remember to run **PS4 HDD Umounter** if you don't want format HDD after back to the console. :P

### Models
What are PS4 **non-IV** and **IV** models? There is no list of motherboards which using IV and which doesn't, so in general:

- CUH-10xx and some CUH-11xx are "non-IV models".
- Some CUH-11xx, CUH-2xxx up to and include CUH-7xxx are "IV models".

## FAQ:

**Q:** Are You the author of the method, tools and shit?  
**A:** Obviously *NO*. I'm a humble Graphic Artist and IT Specialist, not a Programmer, Reverse Engineer or even Linux master hiding in the basement. I'm a Prometheus who brings you the fire, just remember to not burn someone else with it. ;)

**Q:** Can I use this toolkit for pirating games?  
**A:** *No*...

**Q:** Can I use it in WSL2?  
**A:** Yes (except writing on UFS2 partitions).

## Special Thanks:

- To all hackers who reverse engineered this shit.
- To **Zecoxao** for SFLASH0-to-EAP Python scripts.
- To **Gmipf** for compiling UFS module for Ubuntu 19.10.
- To **Anonymous** donor for Orbis Kernel dumps and **Zecoxao** for helping me finding EAP addressess.
- To **Maeli** for full HDD image sample.
- To **Thefirebeast** for test samples.
- To **Colek** for English corrections.
- To **Rj017** for test the script.
- To **Maverick1998** for QA Tests on dying HDD.

<br />Berion<br />2025-10-27
