Hexwell ece77ea433 fix: harden IPC transport and process-local settings store
Serialize IPC_Client with a per-target mutex and full-frame send/recv plus
NUL-terminated payloads. Escape reply JSON vars, null-check daemon FS paths,
handle BREW_UTIL_TEST_CONNECTION, and track BREW_LAST_RET from the last reply.

Introduce SettingsStore (mutex snapshot/update), dual-path config mtime gating,
and fan IPC persistence to twin config files. Stop cold-start toolbox delay on
util_booted; fix jailbreak hijack retry to stop only when dead or maxed.

Add host tests for IPC wire helpers, toolbox timing policy, and hijack retry.
2026-07-10 17:56:21 +08:00
2026-07-10 14:42:14 +08:00
2026-07-09 23:48:02 +08:00

OrionHEN

All-in-one homebrew enabler for the PlayStation 5.

OrionHEN is a community continuation of etaHEN by LightningMods. The original etaHEN project is no longer actively maintained; this repository continues that work under a new name, built directly on etaHEN’s open-source code (GPLv3).

PS4  →  GoldHEN
PS5  →  etaHEN  →  OrionHEN (this project)

Heritage & respect

Homebrew on PlayStation did not appear overnight. OrionHEN stands on the shoulders of two landmark projects:

Project Platform Role
GoldHEN PS4 The gold standard AIO HEN for PS4 — the bar every later enabler is measured against
etaHEN PS5 The first serious AIO homebrew stack for PS5; OrionHEN’s direct source base

OrionHEN does not claim to invent that foundation. We fork, maintain, and extend etaHEN’s published GPLv3 source, in the same spirit that GoldHEN defined for the PS4 generation: one payload, many services, practical tools for developers and users.

Thank you

  • SiSTR0 / GoldHEN team — for GoldHEN, years of PS4 HEN work, and showing what a polished AIO enabler looks like.
  • LightningMods — for designing, shipping, and open-sourcing etaHEN under GPLv3 so the community could carry it forward.
  • Every etaHEN & GoldHEN contributor, tester, and reverse engineer listed below and in their respective projects.

If you benefit from OrionHEN, please also consider supporting the original authors:


What is OrionHEN?

  • License: GPLv3 (same family of obligations as etaHEN; see LICENSE)
  • Source: source/
  • Docs: docs/
  • Host tools: scripts/
  • Prebuilt payload (legacy etaHEN binary packaging, for now): releases/

Repository layout

OrionHEN/
├── assets/          # Icons and images
├── docs/            # Technical writeups
├── releases/        # Prebuilt payload binaries
├── scripts/         # Host-side tools (send payload, launch, logs, …)
├── source/          # Full source tree (CMake / Prospero SDK)
├── LICENSE
└── README.md

Building from source

Source lives in source/ under GPLv3, with the files required to satisfy the license.

You need a Prospero / PS5 payload SDK (PS5_PAYLOAD_SDK) and a clang toolchain targeting x86_64-sie-ps5.

Recommended (full pipeline): pulls open-source third-parties (submodules / GitHub Releases), then builds shellui → daemon/util → bootstrapper → unpacker:

git submodule update --init --recursive
export PS5_PAYLOAD_SDK=/path/to/ps5-payload-sdk

./scripts/build.sh
# or only fetch embeds:
# ./scripts/sync_vendor.sh

# dry-run compile without real vendor blobs:
# ./scripts/build.sh --stub-missing

Manual CMake (advanced):

./scripts/ps5_cmake.sh -S source -B source/build -G Ninja -DV_FW=0x3000000
cmake --build source/build

Artifacts land in source/bin/.

Technical notes and writeups: docs/.


Loading the payload

Exploit sites (community)

Prebuilt binary

Current tree still ships the last public etaHEN-line binary packaging for convenience while OrionHEN branding and versioning settle in:

Future releases will be published under the OrionHEN name.


Host scripts

Windows PowerShell — scripts/send_payload.ps1

Enable scripts if needed:

Set-ExecutionPolicy Bypass

Or run once:

powershell.exe -ExecutionPolicy Bypass -File C:\Path\To\OrionHEN\scripts\send_payload.ps1
.\scripts\send_payload.ps1 -Payload "C:\path\to\example.elf" -IP "192.168.x.x" -Port XXXX

Common ports: exploit elfldr 9020 and runtime elfldr 9021. OrionHEN does not ship the 9021 service; start an external elfldr before loading OrionHEN.

Other tools

Script Purpose
scripts/send_elf.py Send an ELF over the network
scripts/launch.py Launch / control apps via IPC
scripts/kill_daemon.py Stop the main daemon
scripts/daemon_log.py Stream daemon logs
scripts/ps5_cmake.sh Prospero CMake helper

Features

(Feature set is inherited from etaHEN and will evolve under OrionHEN.)

  • ★ Toolbox (debug settings replacement)
  • Custom plugins via the etaHEN SDK (still used until an OrionHEN SDK is split out)
  • [Toolbox] Rest Mode options
  • [Toolbox] Remote Play menu
  • [Toolbox] Plugin / payload ELF menu with auto-start
  • [Toolbox] External HDD menu
  • [Toolbox] Kstuff menu
  • [Toolbox] Game overlay menu
  • [Toolbox] Cheats menu (WIP)
  • [Toolbox] Controller shortcuts
  • [Toolbox] Custom game options menu
  • [Toolbox] Display title IDs on home menu
  • [Toolbox] Disable toolbox auto-start
  • [Toolbox] Blu-ray license activation
  • [Toolbox] Disc auto-eject for BD-J / Lua-based exploits
  • [Toolbox] Credits / supporters
  • [Toolbox] Custom debug settings text and icon
  • [Toolbox] Auto-open menu after load
  • Two daemons for stability (util daemon auto-restarted by the main daemon)
  • Custom system software version string
  • kstuff-related flows for fself / fpkg support
  • Logs under /data/OrionHEN
  • Jailbreak IPC for homebrew apps
  • Update blocker (unmounts update partition)
  • Optional Illusions cheats/patches plugin
  • Optional FTP on port 1337 (removed)
  • Optional Klog server on port 9081 (removed)
  • Optional /data inside app sandboxes (removed — was only sandbox path visibility, not jailbreak)
  • Direct PKG Installer (TCP 9090) and DPI v2 WebUI (12800) (removed — use system PkgInstaller UI)
  • ELF spawn via external elfldr on port 9021 (not bundled)

Plugin / SDK

Custom plugins are still developed against the public etaHEN SDK. See that repo’s README. OrionHEN aims to stay compatible where practical and may publish its own SDK docs later.

Roadmap (high level)

  • Keep the stack building and usable on supported firmwares
  • Stability and maintenance after the etaHEN hand-off
  • Clear OrionHEN branding for binaries and config over time

Configuration (config.ini)

Settings file: /data/OrionHEN/config.ini (created on first run).

INI key Description Default
toolbox_auto_start 0 = off, 1 = on 1
Allow_data_in_sandbox Ignored (sandbox /data patch removed) 0
Rest_Mode_Delay_Seconds Delay before shellui patch after rest 0
Util_rest_kill Kill util daemon on rest 0
Game_rest_kill Kill open game on rest 0
disable_toolbox_auto_start_for_rest_mode Disable toolbox autostart after rest 0
Display_tids Show title IDs 0
APP_JB_Debug_Msg App jailbreak debug messages 0
OrionHEN_Game_Options Game options menu 1
auto_eject_disc Auto eject disc 0
Cheats_shortcut_opt Cheats shortcut 0 (CHEATS_SC_OFF)
Toolbox_shortcut_opt Toolbox shortcut 0 (TOOLBOX_SC_OFF)
Kstuff_shortcut_opt Kstuff shortcut 0 (KSTUFF_SC_OFF)
overlay_ram Overlay: RAM 0
overlay_cpu Overlay: CPU 0
overlay_gpu Overlay: GPU 0
overlay_ip Overlay: IP 1
overlay_kstuff Overlay: kstuff status 1
Overlay_pos Overlay position 0 (OVERLAY_POS_TOP_LEFT)

Jailbreaking an app (FPKG) via IPC

Requires network + legacy CMD server toolbox settings. Non-whitelist method (protocol as implemented upstream):

enum Commands : int {
  INVALID_CMD = -1,
  ACTIVE_CMD = 0,
  LAUNCH_CMD,
  PROCLIST_CMD,
  KILL_CMD,
  KILL_APP_CMD,
  JAILBREAK_CMD
};

struct HijackerCommand
{
  int magic = 0xDEADBEEF;
  Commands cmd = INVALID_CMD;
  int PID = -1;
  int ret = -1337;
  char msg1[0x500];
  char msg2[0x500];
};

int HJOpenConnectionforBC() {

  SceNetSockaddrIn address;
  address.sin_len = sizeof(address);
  address.sin_family = AF_INET;
  address.sin_port = sceNetHtons(9028); // command server port
  memset(address.sin_zero, 0, sizeof(address.sin_zero));
  sceNetInetPton(AF_INET, "127.0.0.1", &address.sin_addr.s_addr);

  int socket = sceNetSocket("IPC_CMD_SERVER", AF_INET, SOCK_STREAM, 0);
  if (sceNetConnect(socket, (SceNetSockaddr*)&address, sizeof(address)) < 0) {
    close(socket), socket = -1;
  }

  return socket;
}

bool HJJailbreakforBC(int& sock) {

  HijackerCommand cmd;
  cmd.PID = getpid();
  cmd.cmd = JAILBREAK_CMD;

  if (send(sock, (void*)&cmd, sizeof(cmd), MSG_NOSIGNAL) == -1) {
      puts("failed to send command");
      return false;
  }
  else {
    recv(sock, reinterpret_cast<void*>(&cmd), sizeof(cmd), MSG_NOSIGNAL);
    close(sock), sock = -1;
    if (cmd.ret != 0 && cmd.ret != -1337) {
      puts("Jailbreak has failed");
      return false;
    }
    return true;
  }

  return false;
}

int main()
{
     int ret = HJOpenConnectionforBC();
     if (ret < 0) {
         puts("Failed to connect to daemon");
         return -1;
     }
     if (!HJJailbreakforBC(ret))
     {
          puts("Jailbreak failed");
          return -1;
     }

     return 0;
}

Credits

Lineage

  • GoldHEN — SiSTR0 and contributors. PS4 AIO HEN; the spiritual predecessor of the “one payload that does everything” model OrionHEN follows on PS5.
  • etaHEN — LightningMods and contributors. Direct open-source base of OrionHEN.

Upstream contributors (etaHEN / shared ecosystem)

Testers (upstream)

OrionHEN will add its own contributor and tester lists as this fork grows. If you contributed to etaHEN and want an explicit OrionHEN credit line, open an issue or PR.


License

This project is licensed under the GNU General Public License v3.0 — see LICENSE.

Because OrionHEN is based on etaHEN’s GPLv3 source, derivative works must remain under compatible terms. We are grateful that LightningMods released etaHEN as free software so the community could continue it.


Disclaimer

OrionHEN is for research and homebrew on devices you own. Use at your own risk. This project is not affiliated with Sony Interactive Entertainment, GoldHEN, or the original etaHEN author beyond use of publicly licensed code and public documentation.

S
Description
Yet another HEN enabler for jailbroken PS5
Readme GPL-3.0
29 MiB
0 Stars 1 Watchers 0 Forks
2026-09-11 11:21:08 -05:00
Languages
C++ 71.2%
C 19.7%
Python 2.5%
CMake 2.2%
POV-Ray SDL 1.6%
Other 2.8%