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.
Finish ToolboxUiState migration by removing compatibility references and
updating all call sites to g_ui. Expand host tests for route matrix and
session flag/cheat-map helpers.
Break daemon/commands.cpp into playtime, jailbreak, and utils TUs. Introduce
ToolboxUiState with compatibility aliases, extract pure toolbox resource
routing for host unit tests, and fix superuser empty-XML pass-through.
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.
Introduce ps5ui::Page so cheats, plugins, remote play, and plapps UIs are
built via explicit widget calls instead of hand-written XML strings, and
cover the builder with host unit tests.
Break long init and plugin paths into named helpers with early returns and
shared PID/launch helpers so startup and XML generation are easier to follow
without changing runtime behavior.
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.
Replace fps_enabled / util_first_boot file flags with orion_ready names
(fps_overlay, util_booted). Route util toolbox enable through
IPC_Client::EnableToolbox and drop dead network* transport facades from
util msg.cpp. Document daemon/shellui seams in arch.md.
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.
Replace fixed post-spawn sleeps with named markers under
/system_tmp/orion_ready. util/daemon/kstuff/toolbox publish ready; bootstrapper
and toolbox inject wait with timeouts. Keep legacy toolbox_online as alias.
Replace per-module Detour, hde64, proc, and ucred copies in shellui/fps_elf
with shims over liborion_detour and liborion_proc so injectee low-level fixes
land once.
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.
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.
Drop the Toolbox TestKit menu and kit Mono hooks, sceKernelIsTestKit
probes in util/daemon/bootstrapper, and client IsTestKit helpers.
BREW_TESTKIT_CHECK remains an unused IPC ordinal for compatibility.
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.
Serialize kstuff before daemon toolbox inject, wait for mprotect, avoid
ForceKill on ShellUI timeout, and disable Allow_data_in_sandbox ShellCore patch.