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.
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.
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.
A --release build defined both DEBUG and NDEBUG, and SHELL_DEBUG was
hardcoded to 1 in defs.h. Every debug branch therefore shipped: the extra
checks in libhijacker's containers, and ~50 verbose diagnostic blocks in the
ShellUI hooks — the chattiest logging in the project, running inside an
injected system process on every boot.
DEBUG is now defined only for non-Release configurations, and SHELL_DEBUG
follows NDEBUG (override with -DSHELL_DEBUG=1 to keep the verbose blocks in a
release build while chasing a report). The symbols that exist only to serve
those blocks are guarded alongside them.
Also drop the hardcoded -O0. Release only got -O3 because it was appended
after it; reordering the flag strings would have silently produced an
unoptimised release build. Optimisation now comes from the build type alone.
Release shellui.elf is 24% smaller than the Debug one, and smaller than
before this change despite the added logging code.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
All 17 module CMakeLists repeated the same prologue: language standards, the
PS5 SDK header paths, a clang check, the cross-compile triple, the output
directory layout and an objcopy strip step. The triple appeared 17 times and
the strip block 6 times, each needing manual sync.
Add source/cmake/OnionTarget.cmake with onion_module_prologue,
onion_output_dirs and onion_strip_debug. Language standards stay opt-in
arguments because the loader-side C modules are C17 while the rest are C11,
and a shared default would silently downgrade them. Per-module compiler flags
are left alone since the modules genuinely differ.
Drop IS_SUBPROJECT and IS_CLANG, which were assigned in 11 and 6 modules
respectively and never read anywhere.
Add CONFIGURE_DEPENDS to the seven source-listing globs that lacked it, so a
newly added source file triggers a re-configure instead of being silently
omitted from the build.
Hoist -DDEBUG onto the shared C flags in the five modules that only passed it
to C++, so both languages in a target see the same macros. No .c file keys
off DEBUG today, so this changes no behaviour.
Compile and link flags were captured from build.ninja before and after: all
132 compile edges and 17 link edges are unchanged except for the intended
-DDEBUG addition.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Place the welcome title in subMessage and the build version with author in message to match the PS5 toast layout. Shorten dirty build labels to dirty-SHA.
Generate shared version metadata from an exact Git tag, falling back to dirty-YYMMDD-SHA for untagged or modified trees. Show the version and author in the startup toast and reuse the generated version across ShellUI.