Commit Graph
186 Commits
Author SHA1 Message Date
SirHumza 3fca823a59 docs: payload lives at /data/payloads, launch from payload list 2026-10-06 20:20:06 +02:00
SirHumza 9afe569216 chore: drop stale build_setup.txt (wrong loader port, docs cover it) 2026-10-06 20:18:09 +02:00
dependabot[bot] 2b60e1fda2 chore(deps): bump actions/upload-artifact from 4 to 7 (#30)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-06 20:17:56 +02:00
SirHumza f5472c9b78 README: full rewrite (TOC, requirements, presence table, developing, credits) 2026-10-06 20:16:47 +02:00
dependabot[bot] 16a4865927 chore(deps): bump softprops/action-gh-release from 2 to 3 (#29)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2 to 3.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v2...v3)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-06 20:15:58 +02:00
SirHumza b5f6f9b1ff README: CI status badge 2026-10-06 20:15:50 +02:00
SirHumza 2276ba91f1 chore: drop stale root eboot.bin (artifacts ship via CI) 2026-10-06 20:09:25 +02:00
SirHumza 86e13c6ad9 ci: bump remaining SDK checkouts to v5 2026-10-06 20:09:16 +02:00
SirHumza aebef11e23 ci: checkout v5, concurrency cancel, dependabot for actions 2026-10-06 20:09:07 +02:00
SirHumza d70b8ce8d1 github: bug report form and PR checklist 2026-10-06 20:08:54 +02:00
SirHumza c32814acf4 ci: tag-triggered ELF releases to GitHub 2026-10-06 20:08:51 +02:00
SirHumza 4a28ae872a superplan: repo excellence spec + implementation plan 2026-10-06 20:07:15 +02:00
SirHumza 6f87dc382b repo: AGENTS.md, SECURITY.md, ignore pycache 2026-10-06 19:57:40 +02:00
SirHumza 481b836893 docs: delete HANDOFF, merge findings into docs/research, expand
- Delete stale HANDOFF.md (superseded by PRODUCTION + README + CI)
- Move findings/ into docs/research/ (incl retired-tables); fix
  all cross-links (DAEMON, injecting, README, fw.h, PROGRESS_LOG)
- New docs/README.md index; new BUILDING.md (toolchain, SDK rule,
  scripts, CI jobs, tests); new CONFIG.md (full key reference,
  verified against cfg_defaults)
- Rewrite TROUBLESHOOTING.md from tester history (first-run flow,
  nanoDNS 127.0.0.1 step, connection checklist, known issues)
- INSTALLER.md: PKG not shipped with test builds; PRODUCTION.md:
  drop dead-webhook line, fix readiness note
2026-10-06 19:55:17 +02:00
SirHumza f78daa4801 ci: upload orbisrpc_sdk.elf as test-build artifact 2026-10-06 19:48:10 +02:00
SirHumza d62dc11f61 README: report issues on Discord, we will fix them 2026-10-06 19:45:49 +02:00
SirHumza 649e47e88d README: DNS 127.0.0.1 step, connection checklist, known issues 2026-10-06 19:45:12 +02:00
SirHumza d91fa8060b README: no Payload Guest, autorun note, PKG at official release 2026-10-06 19:41:38 +02:00
SirHumza 5a565a8d95 README: elf-only beta install flow from announcements
- No PKG: install is test-build .elf via Discord
- First-run flow: delete /data/orbisRPC, run once (config + no
  token), set token in SET_ME slot, re-run
- 0.60 notes: fw string parsing, pkg-zone homebrew, retro list,
  show_* flags default true
- nanoDNS exception walkthrough with before/after ini + restart
2026-10-06 19:39:57 +02:00
SirHumza f0d60defee fix CI sqlite CANTOPEN + SDK pin; README beta payload install
- tests: link vendored sqlite amalgamation instead of system
  -lsqlite3; wrapper VFS with trivial xFullPathname; unlink stale
  app.db + pre-create before open (runner CANTOPEN)
- tests: free parsed values in test_json_oom_safe (LSan leak)
- ci: pin SDK via checkout+fetch-depth 0 (raw SHA is not a ref)
- README: credit SirHumza & CyberMask367, no-PKG beta payload
  install, beta access via Discord
2026-10-06 19:37:45 +02:00
SirHumza 989783f1ac fix CI on CyberMask367 base + README invite/support
- e2e: tolerate non-UTF8 make output (errors=replace), fixes
  UnicodeDecodeError that red-lined e2e contracts
- e2e: drop fast-switch/atime gates absent from this tree; skip
  payload-built when no build-sdk elf (sdk-payload job gates it)
- tests: fix stale discord_build_activity arg order + home asset
  cases so host unit tests and ASan pass
- ci: push-only Discord webhook notify via DISCORD_WEBHOOK_URL secret
- README: CyberMask367 credit, discord.gg/BWEyfcT7ZQ badge + support
  section, beta-access note, 9.00-13.52 firmware, test-build upgrade
  + nanoDNS exception steps
2026-10-06 18:57:45 +02:00
CyberMask367andSirHumza e35c47b3f5 upto 13.52 firmware and other fixes and changes
changed game detection logic, resolving retro games and homebrew, new rpc style, custom options in config.json, installer is not fixed yet

Co-Authored-By: SirHumza <204067870+SirHumza@users.noreply.github.com>
2026-10-06 03:06:28 +01:00
SirHumza d8f6e541d9 packaging: make the open experiment switchable; drop dead SDL font assets
The param.sfo revert shipped as a 'fix' but online verification shows
Apollo Save Tool's current main (v02.32) still ships ATTRIBUTE=32 /
CATEGORY=gde / --authinfo and is a proven universal PS4 app. So 0/gd
is probably innocent too and the real cause is still unidentified.
This commit stops overclaiming: PKG_ATTR, PKG_CATEGORY and AUTHINFO
are now make variables so either build is one flag away, the Makefile
comment records both the evidence and the counter-evidence, and the
stale 'param.sfo is the cause' claim is corrected.

Also deletes installer/font.h and scripts/genfont.py (2366 dead lines
left over from the reverted SDL reskin) and fixes a wrong deployment
path in build.sh: orbisRPC goes to /data/payloads/ for Payload Guest.
GoldHEN's own single payload slot is /data/payload.bin, a different
thing entirely.
2026-09-28 17:20:12 +02:00
SirHumza ba4e28c98a fix(installer): revert packaging to hardware-verified values, add pre-main boot marker
param.sfo ATTRIBUTE 32->0 and CATEGORY gde->gd, and drop --authinfo.
These are the only values verified to launch on real hardware. The
gde/32 + authinfo combo was theory borrowed from Apollo; every build
carrying it died silently pre-logging on a real console (4/4) while
0/gd launched fine. Isolation ruled out authinfo (2 builds), the SDL
UI, and the native UI; LIBS, the object set, and all installer.c
deltas are identical or provably safe before the first log call.
param.sfo was the last variable present in 4/4 crashes and absent
from the single success.

installer.c also gains a pre-main constructor that writes a BOOT line
via raw open/write. Four builds died with install.log completely
untouched and the in-main crash handler never armed, so loader-side
death and main-side death were indistinguishable. Now: no BOOT means
the SELF never got control; BOOT without a stage means main died
before the first log.
2026-09-28 17:13:25 +02:00
SirHumza 53b11f7a66 tooling: ps4-check.sh (one-command console evidence pull) + compress boundary rule
- scripts/ps4-check.sh: install.log/log.txt tails, status/diag/gen,
  staged PKG list, local-vs-remote payload size diff. Multi-file probe
  so a refused directory listing can't read as 'console offline'.
2026-09-28 16:52:04 +02:00
SirHumza 05401494cc installer: revert to native Sony dialogs (SDL UI crashed pre-log on console)
SDL2/Piglet/AudioOut/VideoOut init dies silently before logging
(authinfo exonerated: no-authinfo SDL build crashed identically).
Keep all remaster logic: config preserve, gen bump, token retry,
honest stage logging, daemon liveness. Drop SDL libs + font rule.
2026-09-27 18:08:17 +02:00
SirHumza 0b207aa743 docs: point README at v1.1.0 release, bump SETUP_VERSION fallback 2026-09-27 15:37:36 +02:00
SirHumza 43246c3ab3 god-tier: diag census, v1.1.0, arch docs, CI version gate
- daemon writes diag.json at boot (fw, kinfo-table hit, msgbuf /
  sandbox / shellcore reachability) for the firmware matrix
- focus_msgbuf_ok() reachability probe + host test
- version 1.1.0 (version.h + installer Makefile)
- ARCHITECTURE.md: binaries, detection cascade, gateway states,
  no-exit policy, on-disk state, installer, compat baseline
- CI consistency job: version.h vs Makefile parity gate
v1.1.0
2026-09-27 15:31:08 +02:00
SirHumza e26d25c47a installer: custom SDL2 reskin + remaster landing
- ui.c: fullscreen Discord-blurple cards, embedded bitmap font,
  pad X-to-continue, progress bar; IME token entry kept as overlay
- scripts/genfont.py + installer/font.h: build-time rasterized font
- Makefile: -lSDL2 -lSDL2main -lScePigletv2VSH -lSceAudioOut -lSceVideoOut,
  font.h regen rule; drop stock -lSceMsgDialog
- daemon: gateway state machine, status.json heartbeat, gen supersede,
  no-exit token wait; updater removed per direction
- installer: config preserve on reinstall, honest stage logging,
  token-save verification, daemon liveness on done screen
2026-09-27 15:21:00 +02:00
SirHumza c87fc68b4c chore: remove HANDOFF.md (notes live in docs/ + SUPPORT.md) 2026-09-27 14:55:33 +02:00
SirHumza 25462c744c docs: unify payload-launch menu names (Payloads/PayLoader/LaunchPad) 2026-09-27 14:49:45 +02:00
SirHumza ab4d985f0b docs: firmware test-status note (carries origin firmware warning) 2026-09-27 14:49:09 +02:00
SirHumza d0972b68e9 remaster: any-firmware hardening + installer remake
- detection: probe-first (ShellCoreUtil dlopen, msgbuf AppFocusChanged,
  sysctl kinfo via verified-only fw table, sandbox/save fallbacks)
- new orbisrpc/focus.c + fw.c/fw.h (bounded scans, fail-closed unknowns)
- daemon: no-exit everywhere (token wait-loop, 4004 retry), status.json
  heartbeat, daemon.gen supersede protocol
- installer: progress UI, token IME retry + FTP fallback, install.log,
  drop evict.elf (delete tools/evict.c, build_evict.sh)
- packaging: Apollo parity CATEGORY=gde ATTRIBUTE=32 --authinfo
- security: chmod 0600 on token-bearing files
- docs: firmware-independent injecting guide, SUPPORT.md, release.sh
2026-09-27 14:47:09 +02:00
SirHumza 68a34993da pkg: Apollo parity (CATEGORY=gde, ATTRIBUTE=32, --authinfo) + probe-first detection
- installer/Makefile + scripts/build.sh: create-fself --authinfo Apollo blob
- installer/Makefile: export OO_PS4_TOOLCHAIN (create-fself requires it)
- detect.c: ShellCoreUtil dlopen first in both builds; sysctl fallback
  SDK-only (OpenOrbis lacks sys/sysctl.h); OpenOrbis keeps UserService fg fallback
- rebuilt Setup PKG + param.sfo (verified gde in sfo)
2026-09-27 14:06:57 +02:00
SirHumzaandSirHumza 09f43f5be9 fix: remove dead SceAppInstUtil/SceAppContent from daemon build
These libs are linked but never referenced anywhere in daemon source.
If the modules don't exist on the target firmware, the ELF fails to
load entirely (no log.txt created) — the reported crash on 9.00/12.50/13.52.

Also scrub the live Discord token leaked into installer config files
and hardcoded fallbacks in installer.c (all now SET_ME).

Closes #2, #7. Fixes packaging mismatch #8 (CATEGORY/ATTRIBUTE/
--authinfo tracked separately).

Co-authored-by: SirHumza <sirhumza>
2026-09-26 19:49:01 +02:00
Humza 21b14fbbbd debug(ci): print sqlite3_open_v2 error detail 2026-09-25 19:09:50 +02:00
Humza b0c8f84a9c fix(ci): link system sqlite3 on host builds (bundled amalgamation fails open_v2 on runner) 2026-09-25 19:06:25 +02:00
Humza 2b277065ec fix(ci): call sqlite3_initialize() before open_v2 on the ubuntu runner 2026-09-25 19:00:57 +02:00
Humza be4da6b4ce fix(ci): compile sqlite3.c with -O2 (default flags) 2026-09-25 18:58:12 +02:00
Humza e7ad0914ab fix(ci): use SQLITE_THREADSAFE=1 (default) on host builds; 0 breaks sqlite3_open_v2 on runner 2026-09-25 18:53:35 +02:00
Humza deb558309d fix(ci): drop SQLITE_OPEN_NOMUTEX (unsupported by bundled sqlite on ubuntu runner) 2026-09-25 18:50:50 +02:00
Humza 92947f4031 fix(ci): _DEFAULT_SOURCE for usleep under glibc strict c11 2026-09-25 18:44:59 +02:00
Humza 1bf56acc41 fix(ci): POSIX 2008 feature macro for host test builds (glibc hides fileno/strdup under -std=c11) 2026-09-25 18:41:37 +02:00
Humza 047ce7b95a fix(ci): gcc -std=c11 fixes for ubuntu runners: POSIX macro for strdup, brace split misleading if-guards in jsonlite 2026-09-25 18:38:02 +02:00
Humza 1acc6ada7c fix(ci): widen pj buffer for gcc -Werror=format-truncation on ubuntu runners 2026-09-25 18:32:50 +02:00
Humza 29617192e6 v1.0.0 hardening: signed-only updates, heap fix, plugin name fallback, dead code purge, release keys, secret guard, docs accuracy 2026-09-25 18:28:58 +02:00
SirHumza 9ba212d859 fix: critical path bugs and build errors
- daemon.c/updater.c: fix /data/GoldHEN/payloads -> /data/payloads
  (Payload Guest reads /data/payloads/, not /data/GoldHEN/payloads/)
- daemon.c: fix strncmp(..., sizeof buffer) -> strcmp for title ID
  comparison (strncmp pastes past null terminator, giving false diffs)
- tmdb.c: fix fd scoping — TLS code was outside #ifdef block where fd
  was declared, causing compile error; move tls_start/connect/close
  inside #ifdef ORBISRPC_SDK_PAYLOAD block
- detect.c: comment out appdb_title calls — sqlite3.h unavailable
  in toolchain; appdb.c cannot compile without it
- All: build verified, all tests pass
2026-09-25 17:39:37 +02:00
SirHumza 5d98cd8a45 clean: descriptive comments, remove dead code, fix build errors
- Remove dead step_status() function (never called)
- Add reap_stale() forward declaration, call from ui_init()
- Add descriptive comments throughout installer.c and ui.c
- Add PAD module unload to ui_shutdown()
- Add config.json to Makefile clean target
- Fix step_token missing closing brace
- Update docs/INSTALLER.md to reflect LoadStartModule eviction
- All tests green, EBOOT matches, SHA-256 match after FTP upload
2026-09-25 17:28:55 +02:00
SirHumza eb095314c9 fix: use sceKernelLoadStartModule for eviction (kill blocked by sandbox)
- kill() returns EPERM in sandbox, so replaced with sceKernelLoadStartModule
  to launch evict.elf as a module — it reads daemon.lock and kills the daemon
- Copy evict.elf first, then load+start it via LoadStartModule
- Wait 500ms for evict.elf to run, then continue to copy orbisrpc.bin
- Removed dead kill() SIGTERM/SIGKILL code
- Verified: no kill references in binary, all tests pass, EBOOT matches
2026-09-25 17:24:22 +02:00
SirHumza 7f0153c7a9 installer: clean branding, just show the logo
- Removed all 'orbisRPC Setup' / 'Setup' branding from dialogs
- Welcome: just 'orbisRPC\n\nInstall daemon payload.'
- Status dialog: just 'status:' with daemon/evict/lock/token lines
- Done dialog: just 'Done.\n\nPayloads in /data/payloads...'
- Removed duplicate ui_ok(report) bug
- Cleaned up step_status (was broken by earlier edit)
- Removed 'Setup PKG' reference from missing-payload message

Verified: no 'Setup' in binary, EBOOT matches, tests green
2026-09-25 17:22:56 +02:00