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.
Merge the three pt/elfldr clones (bootstrapper, libNineS, unpacker) into a
single liborion_elfldr with one authid policy (elevate once at inject entry,
never per ptrace). Wire consumers through shared headers; drop dead unpacker
loader sources. Route shellui if_exists through orion/platform and daemon
ShellUI/BigApp pid lookup through orion_proc. Document the layout and audit
status in docs/arch.md and docs/architecture-audit.md.
Add liborion_plugin for common .plugin/.elf PID and 9021 launch logic used
by util and bootstrapper. Also table-drive OnPreCreate and mono hooks, and
split OnRender overlay update for readability.
Delete error_translator.hpp, microhttpd.h, and libmicrohttpd.a left after
removing DirectPKGInstaller. Strip unused AppInst types from util/daemon,
drop SceAppInstUtil link where no longer needed, remove dead dpi/kernelrw
thread stubs, drop the toolbox microhttpd credit, and refresh README.
Delete DirectPKGInstaller and the toolbox DPI toggle. Remove the custom
background package installer (custompkginstaller XML generation and
id_pkg_ handlers). Package install remains the stock PkgInstaller link
in OrionHEN_toolbox.xml. Leave BREW_UTIL_UNUSED_DPI ordinal for IPC
compatibility.
Drop the microhttpd-based DPIv2 server and settings/UI/IPC knobs. Keep
TCP DPI on port 9090 only; custom package install no longer routes through
127.0.0.1:12800. Unlink libmicrohttpd from util.
Delete util_shellcore and the disabled Allow_data_in_sandbox feature
(settings field, toolbox toggle, onpress/onprecreate handlers). Drop the
no-op load_ps5debug_thr and id_sistro_ps5debug handler; keep credits label
only. Strip firmware pattern tables and hex_lut that only served the
historical ShellCore /data sandbox patch.
Wire daemon/util/shellui/bootstrapper to liborion_platform and
liborion_proc (orion_notify, OrionHEN_log configure, find_pid, if_exists).
Split MonoUtils into mono_runtime/toolbox_xml/settings_ui/shellui_* and
replace the OnPress id bus with table-driven domain handlers.
Drop unused hello_world ELF blob, sqlite headers/lib, and orphan
demo headers. Replace the 14k SCE error dump with a ~300-entry
install/BGFT table for DPI, cutting ~7MB from the source tree.
Wire daemon/util/shellui Load/Save through liborion_settings. Daemon and util
use g_settings directly; util keeps atomic legacy CMD flags for the hot path.
Slim daemon globalconf.hpp to StartOpts + g_settings and move UserService ABI
locals into commands.cpp.
Point shellui/fps clients at liborion_ipc dual-singleton client. Move daemon
and util Unix listen/accept loops onto shared ipc_server. Extract handleIPC
into ipc_handle.cpp so transport stays in msg.cpp and command tables can
evolve independently.
Move util cheats orchestration to C++ (CheatService, Repository, Applier,
IMemoryBackend, ICheatParser factory for json/shn/mc4 with ShnExt C adapter).
Drop the obsolete RELOAD_CHEATS UI/IPC path; reloads use file-signature hot
reload only. Document util cheats architecture under docs/util_arch.
Remove the old txt-index CheatManager and mc4decrypter path. Add a flat
TITLE_VERSION cheat engine supporting json/shn/mc4/ShnExt, mdbg/kdirect memory
writes, hot reload, and repo flatten install. Wire util IPC and build/link
keystone for ShnExt assembly.
Centralize Prospero FW major, whole-file reads, BigApp/title version resolution,
and dynlib/eboot module lookup so cheat and other features share one path instead
of private copies.
Drop the util FTP (1337) and Klog (9081) servers, Toolbox UI toggles, and
config keys. Keep former IPC command ordinals as UNUSED_* for compatibility.
Add docs/arch.md covering modules, IPC, features, and dependencies.
Rename remaining etaHEN symbols, log prefixes, on-disk paths, plugin
magic, process names, and copyright headers across bootstrapper, daemons,
shellui, and util without keeping legacy aliases.