60 Commits
Author SHA1 Message Date
aydencharles 1cdbfc5752 perf(unpacker): cache bootstrapper ELF to skip LZMA on reboot 2026-09-04 17:26:28 +08:00
Hexwell e1cd1e6d3a refactor(dpi): move installer to external plugin 2026-09-03 14:41:00 +08:00
Hexwell 33da7e3709 refactor(ftp): remove built-in FTP server 2026-09-02 22:38:47 +08:00
kvnhrt a534adcd60 feat: add ShadowMount+, DPI pkg-server + WebUI, fix PS4 FPS
- fix(fps): measure PS4 BC frame rate with a remote GNM detour
  and hide the pkg install result code in the finish notification
- feat(utils): integrate ShadowMount+ alongside the FTPSRV service
  for game scanning, mounting and installation
- feat(DPI): add the packet package server (pkgserver) with its
  Web UI and full REST/SSE API surface
- feat(tests): add new host test suites (multipart, builtin
  services, pkg XML, FPS formula, toolbox i18n/route, language)
- build: add Docker support for building and running the tests
- docs: update credits, README, architecture, util-arch, api and
  third-party documentation; add contributor credit and i18n keys
- i18n: remove the pkg finish result code from every locale
2026-08-31 05:26:42 -06:00
Hexwell e049af1ce4 refactor(services): remove ShadowMountPlus and integrate ftpsrv source 2026-08-22 21:13:16 +08:00
Hexwell 40e2fab9b1 feat(plugins): split run/autoload and embed ShadowMountPlus 1.6beta16 2026-08-21 16:22:58 +08:00
Hexwell da2073578b feat: add control facade for ftpsrv and ShadowMountPlus 2026-08-21 15:57:07 +08:00
Kevin Huerta b7fa1bd238 feat: add FTP, Docker, Remote Play, and ShadowMountPlus support (#23)
* feat: move FTP server to third_party and keep Docker

* docs: add ftpsrv to project credits

* feat: add FTP, Docker, and Remote Play support

* docs: document FTP and Remote Play

* feat: improve dependency scripts and add ShadowMountPlus

* docs: update ShadowMountPlus credits

* docs: add ShadowMountPlus config example

* i18n: normalize locale terminology and validation

* fix: launch ShadowMountPlus from memory
2026-08-20 10:10:32 +08:00
Hexwell 7ea2ba30c5 feat(cheats): sync cheat catalogs over HTTPS zip download
Replace the git clone/fetch pipeline with a curl + miniz HTTPS
ZIP download. The engine streams one archive, extracts only the
catalog roots, and reuses flatten to install flat files, so the
libgit2 submodule and its build integration are gone.

Drop the pre-download reachability probe and the commit-SHA
parser; reachability is implied by the download itself and the
SHA only fed the old git flow. Mirror selection stays in
CheatMirrorFactory (auto: cnb.cool for zh-Hans, GitHub otherwise;
explicit github/cnb skips fallback).

curl verifies peer+host against the embedded CA bundle and now
distinguishes certificate time-skew from other verification
failures, surfacing a dedicated clock notification. Revert the
util CMake target back to "util" now that libgit2 no longer
claims that name.
2026-08-18 15:41:08 +08:00
Hexwell 976bd71d34 docs: clean up unused documentation 2026-08-18 11:23:32 +08:00
Hexwell fbf4c3c64b chore: remove unused ELF self-integrity
Ed25519 signing no longer adds useful friction. Drop
libonion_integrity, tools/elf_sign, and the XOR integrity toasts
so builds no longer sign daemon.elf.
2026-08-17 10:45:02 +08:00
Hexwell 4c4043581d chore: remove unused beta trial gate
The 14-day seal is no longer used. Drop libonion_trial, the Toolbox
banner, and notify.trial catalog entries so Debug no longer expires.
2026-08-17 10:44:16 +08:00
Hexwell f50b2b8101 feat: use latest kstuff-lite 2026-08-16 20:57:54 +08:00
Hexwell c1bea90955 build: disable beta trial gate in Release
Release packages should not expire. Debug still defaults to the 14-day
trial; Release skips libonion_trial so bootstrapper, daemon, and the
toolbox banner never carry the gate.
2026-08-16 20:13:18 +08:00
Hexwell c4e4fb10e9 feat(shellui): complete firmware dump compatibility
Add HomeUI and Settings profiles for every usable firmware dump in Sony Dumps, including the early legacy bundles.

Expand the offline verifiers to cover archived dumps and document the final 48-version compatibility matrix.
2026-08-15 14:32:58 +08:00
Hexwell b51b59bca0 fix(shellui): preserve stock Settings icon
Leave NPXS40008's icon_setting.png and bundle icon id untouched.
Redirect the URI at CxmlUri so Debug Settings reverts to the Sony
icon when OnionHEN is not loaded.
2026-08-15 12:57:13 +08:00
Hexwell 422093b34f feat(shellui): support fw8.6 through fw10.0 dumps 2026-08-08 12:37:36 +08:00
Hexwell 8403f7e9e7 refactor(shellui): unify HomeUI and Settings patching 2026-08-07 13:25:53 +08:00
Hexwell 50d3db8964 feat(shellui): support 5.10 HomeUI and DebugSettings 2026-08-07 12:50:30 +08:00
Hexwell f2cc0b1a43 feat(shellui): support 7.40 HomeUI and DebugSettings 2026-08-07 12:44:55 +08:00
Hexwell b7a068fc51 feat(shellui): support 6.x HomeUI and DebugSettings 2026-08-07 12:41:25 +08:00
Hexwell 127b052d45 feat(shellui): support 7.61 HomeUI and DebugSettings 2026-08-07 12:35:01 +08:00
Hexwell e0fe255e23 feat(shellui): support 8.x HomeUI and DebugSettings 2026-08-07 12:23:56 +08:00
Hexwell 7e54890306 fix(shellui): stabilize 9.00 HomeUI and Settings patches 2026-08-07 11:32:16 +08:00
Hexwell 52309fe6a7 fix(shellui): render older HomeUI top nav icons 2026-08-06 17:32:00 +08:00
Hexwell 34e89ea9ae feat(shellui): support 4.x and 9.00 DebugSettings 2026-08-06 16:23:44 +08:00
Hexwell 689f3f3f1c feat(shellui): support 4.x and 9.00 HomeUI top nav
Add a Hermes v89 profile for 9.00 and an equal-length legacy RNPS JavaScript patch for the byte-identical 4.03/4.50/4.51 bundles. Keep ApplicationErrorEventTrigger as the safe OnionHEN host and preserve the stock Fps implementation.

Extend dump analysis, two-pass compatibility verification, and the HomeUI handoff guide for both bundle formats.
2026-08-06 15:53:51 +08:00
Hexwell b91cb0a227 feat(trial): encrypt trial.state and shorten campaign to 14 days
Seal on-disk trial state with AES-256-CBC plus outer HMAC (encrypt-then-MAC)
so last_seen and related fields are not plaintext. Default beta campaign
window is now 14 days from configure time.
2026-08-03 19:58:17 +08:00
Hexwell 0aef6b7717 feat(integrity): gate boot on ELF signature and trial before payloads
Add libonion_integrity (Ed25519 self-check + signed-image verify) and
host sign/verify tools. Bootstrapper now verifies the embedded daemon
and runs the beta trial gate before launching private elfldr, util, or
daemon. Stop writing OnionHEN.bin under /data/OnionHEN; link kernel_sys
from bootstrapper for device serial used by trial.
2026-08-03 19:36:20 +08:00
Hexwell dbe471e268 refactor(trial): replace certificate gate with 30-day beta trial
Drop per-device Ed25519 licenses and TCP install in favor of a build-time
seal plus sealed trial.state anti-rollback. Rename libonion_activation to
libonion_trial, show beta notices in daemon toast and toolbox UI, remove
unused V_FW, and set author to 麒麟/0xp0co.
2026-08-03 19:19:53 +08:00
Hexwell 5fa2c9bf67 feat(activation): add pluggable beta Ed25519 certificate gate
Introduce a self-contained libonion_activation module for internal-test
license checks, with compile-time public-key injection, debug-style
toasts, and shared notification i18n. Disable with
ONION_ENABLE_BETA_ACTIVATION=OFF when the beta gate is no longer needed.
2026-08-03 11:35:56 +08:00
HexwellandClaude Fable 5 dccfa2ddf0 refactor(shellui): make HomeUI top-nav patch table-driven
patch_homeui_top_nav had grown to 667 lines because every firmware's byte
patterns were declared inside the function body, related to the offsets table
through a second HomeUiPatchByteSet lookup, and size-checked by 32
hand-written pairwise static_asserts. Adding a firmware meant edits in three
places that had to stay index-aligned.

Fold HomeUiPatchBytes into HomeUiPatchProfile and give each byte field a
fixed-size array type, which drops the byte-set enum, the second lookup and
every static_assert: a mistyped blob is now a compile error. Move the per
firmware data to homeui_top_nav_profiles.inc so adding a firmware is a
data-only change, and leave the function at 185 lines of patch logic.

The offline verifier kept its own copy of the offsets and source hashes;
point it at the .inc instead and derive the legacy-body special case from
the profile rather than a hardcoded byte-set name.

Patch data is unchanged: the table the compiler emits was diffed byte for
byte against the previous layout.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-26 19:50:02 +08:00
Hexwell 027814f5b0 fix: prefix OnionHEN runtime process names 2026-07-22 22:10:16 +08:00
Hexwell 258eed695e fix: HomeUI top-nav crash on game close and blank focus icon
Host OnionHEN on ApplicationErrorEventTrigger instead of rewriting Fps,
restore stock Fps body on all profiles, and mirror onionhen.png into
invertedIcon for focused state. Add dump verifier and build toggle.
2026-07-21 22:12:54 +08:00
Hexwell 90f53ae4d0 update: compatibility support for 12.4 2026-07-20 19:17:54 +08:00
Hexwell c520530cb1 update: compatibility support for 10.2, 11.2 and 12.6 2026-07-20 19:00:44 +08:00
Hexwell 7e2c15698f update: compatibility support for 11.4 settings 2026-07-20 16:53:20 +08:00
Hexwell c05fc5a7a2 docs: clarify 12.0 compatibility profile reuse 2026-07-20 16:35:00 +08:00
Hexwell 07dbc55100 update: compatibility support for 12.02 2026-07-20 15:52:08 +08:00
Hexwell 19fe309a1a update: compatibility support for 11.0 and 11.4 2026-07-20 15:28:36 +08:00
Hexwell 242fee3f7f update: nav patch support for 10.4 and 12.20 2026-07-20 13:58:49 +08:00
Hexwell d83577e568 feat: embed private elfldr on 9020 2026-07-18 20:35:16 +08:00
Hexwell a463b85912 feat: add interactive build type selection 2026-07-18 18:56:10 +08:00
Hexwell 4412785bf7 remove: drop FPS overlay inject and fps_elf embed
Remove FPS calculation from the shellui monitor bar while keeping CPU,
GPU, RAM, and IP metrics, and delete the full game-process inject path
(fps_elf, fps.prx, SHM) so titles are no longer soft-injected.

Clear any legacy fps_overlay ready marker on daemon/shellui start, and
bound CPU sampling retries so a stuck probe cannot block other metrics.
2026-07-16 22:22:29 +08:00
Hexwell 72f607f5e6 refactor: reorganize project directories 2026-07-16 18:09:55 +08:00
Hexwell 49b6e4ba02 refactor: remove playtime tracking 2026-07-16 17:30:28 +08:00
Hexwell 0b356e15dd chore(deps): prune unused third-party sources 2026-07-16 17:26:44 +08:00
Hexwell aad2cdaabc refactor: rebrand OrionHEN to OnionHEN
Rename product, namespaces, libraries, paths, and assets from Orion/orion
to Onion/onion across the tree. TCP stack-shutdown magic is now ONIO
(0x4F4E494F) to match the corrected branding.
2026-07-15 18:23:16 +08:00
Hexwell 1650363b67 update: remove scripts 2026-07-15 18:14:44 +08:00
Hexwell f789140c9e build: place artifacts under repo-root build/
Default CMake binary dir is <repo>/build with ELFs in build/bin and libs
in build/lib. Keep source/bin as a symlink for .incbin compatibility.
2026-07-15 18:10:58 +08:00