Files
onionHEN/source
HexwellandClaude Fable 5 2df9e0b2fb fix: share console IP lookup across modules
get_ip_address had three independent implementations (shellui, util, daemon)
because each module also carried its own copy of SceNetCtlInfo and its own
prototype for sceNetCtlGetInfo, with the pointer typed as SceNetCtlInfo* in
two of them and void* in the third.

The shellui and util copies stored the result in an unsigned int and tested
`ret < 0`, which is never true for an unsigned value. Their error branch was
unreachable, so a failed lookup returned success, left not_connected clear,
and copied an uninitialised SceNetCtlInfo to the caller instead of the
IP NOT FOUND placeholder. util's rest-mode network-recovery retry keys off
that return value and therefore never ran.

Declare the netctl ABI once in source/include/ps5/net_ctl.h, add
onion_net_get_ip_address to libonion_platform with an explicit buffer-size
contract, and keep util's not_connected latch in util where it belongs.
Cover the status mapping, the placeholder length and buffer validation with
host tests.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-26 19:49:50 +08:00
..
2026-07-20 17:01:08 +08:00
2026-07-09 23:48:02 +08:00
2026-07-09 23:48:02 +08:00

OnionHEN — source tree

This directory is the CMake project for OnionHEN, a community continuation of etaHEN (LightningMods), licensed under GPLv3.

OnionHEN is based on etaHEN’s open-source release. See the root README for project goals, credits to GoldHEN and etaHEN, and full documentation.

Layout

Path Description
bootstrapper/ Main payload bootstrapper
daemon/ Main daemon
util/ Utility daemon (cheats, IPC, …)
shellui/ Toolbox / ShellUI hooks
unpacker/ Payload unpacker
libhijacker/, libNineS/, libNidResolver/ Internal static libs
include/ Shared headers
common/ Shared low-level implementations
platform/ps5/stubs/ PS5 system-library link stubs

External source and prebuilt dependencies live in the repository-level third_party/ directory. Downloaded dependency blobs are cached under .cache/dependencies/; they are never stored in source/. Repository-side generators and build helpers live in ../tools/.

Build

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

Full pipeline (preferred) from the repo root:

export PS5_PAYLOAD_SDK=/path/to/ps5-payload-sdk
./scripts/build.sh

Stages external embeds, then shellui → daemon/util → bootstrapper → unpacker. See ../third_party/README.md and ./scripts/build.sh --help.

Manual CMake:

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

Build products go under build/bin/ and build/lib/ (repo root; gitignored).

Further reading