Commit Graph
25 Commits
Author SHA1 Message Date
SirHumza 48500d2482 app.db SQLite names, self-learning map, presence builder tests, audit fixes 2026-09-24 12:26:19 +02:00
SirHumza b363a74740 User-local title overrides + idle PS logo art, cfg_save return fix 2026-09-24 10:56:05 +02:00
SirHumza d8f6539434 Name fix: sandbox-mount param.sfo source, details shows name not raw ID 2026-09-24 10:41:53 +02:00
SirHumza 968bc75395 clock include + drop unused stat in detect 2026-09-24 10:03:48 +02:00
SirHumza 2e9ad5c5f5 Resolve retry: raw fallbacks re-resolve after 5min, clock include 2026-09-24 10:01:15 +02:00
SirHumza 9be94b9f5c Delete baked tables: live Sony TMDB + local metadata only 2026-09-24 09:49:50 +02:00
SirHumza 22215edc47 Guard SDK-unused scan fn, host tests green 2026-09-24 09:41:12 +02:00
SirHumza 3eee7697ea Authoritative title identity via sandbox mounts (kills stale-title class) 2026-09-24 00:36:04 +02:00
SirHumza d967c98526 Fast game switching via eboot-set change shortcut 2026-09-24 00:02:31 +02:00
SirHumza 1b76fc4ffd Title identity via app.pkg atime (beats sync-polluted mtimes) 2026-09-23 23:54:43 +02:00
SirHumza 563b682c33 Fix undeclared scan flag, guard transitions on unknown scans 2026-09-23 23:20:18 +02:00
SirHumza c52234f41f Resolve cache removed (last-title reuse), art-table lookup API, save+appdir title signals 2026-09-23 23:02:10 +02:00
SirHumza 204e662cad Art: per-session mp cache refresh, eboot-set cache drop, quiet cache logs 2026-09-23 22:56:32 +02:00
SirHumza 64b1d66388 Features: session persistence, media types, playtime ledger, home/rest presence 2026-09-23 22:35:53 +02:00
SirHumza 6a1f25524e Audit batch: reconnect backoff, heartbeat check, urandom masks, entropy fail-secure, TLS verify, manifest public API + sign test, cfg schema+fallible save 2026-09-23 21:43:26 +02:00
SirHumza 202d4012e3 WIP: single-instance lock (sysctl liveness), eboot+savedata detection for SDK builds 2026-09-23 18:06:39 +02:00
SirHumza c01fc3fb10 WIP: SDK-port net branches + findings archive 2026-09-23 16:56:25 +02:00
SirHumza 96c02b8cb4 WIP: debug gate, monotonic clock, titleId sessions, debounce, resolve cache 2026-09-22 17:58:07 +02:00
SirHumza cf76f1ebf8 Sony TMDB runtime names+icons; remove fuzzy appdb scan
- tmdb_crypto: self-contained SHA1/HMAC, URL builder, response parse,
  all verified against hashlib and Sony's live service in unit tests
- tmdb: plain-HTTP fetch with deadline plus 8-entry cache
- detect: TMDB in both resolve paths; artwork URL plumbed through
  detect_last_art into presence assets (official Sony CDN, no uploads)
- remove appdb byte-scan: boundary ambiguity returned wrong names,
  worse than raw IDs; also removes the multi-MB game-process read
- discord/daemon: full-URL artwork wins, pack URL next, asset key last
2026-09-19 11:16:09 +02:00
SirHumza cdb431cfa6 Names tiers, SFO parser, close-frame/diagnostics hardening
- detect: cost-tiered resolution; plugin path skips multi-MB app.db
  scan (game-process safety); payload tries pronunc, sfo, appxml,
  baked table, then app.db; sfo TITLE via app0/sce_sys paths
- sfo.c: bounds-checked PARAM.SFO parser + unit tests incl malformed
- nametable: generated fallback from title DB + generator script
- discord: malformed close frames reconnect loudly; one-time warning
  when artwork requested but no application_id configured
- ws comments de-BearSSLed; gitignore covers artifacts; drop .DS_Store,
  untrack test binary; README art claim corrected
2026-09-19 01:37:55 +02:00
SirHumza bf5579d6da Stable gateway backend: mbedTLS, 8MB READY, JSON-safe parsing
- BearSSL replaced with mbedTLS (TLSv1.3 passes Cloudflare)
- 8MB frame cap + truncation-proof gateway op/seq scanner
- Thread-safe compat, locked logging, atomic config with template
- Daemon keeps last-good config, persistent presence timer
- 256B token buffers, weak-libc shims, portable build preflights
- Tests: gateway spoof + OOM cases pass

Still open: display names fall back to titleId in sandbox,
cover art needs shared Discord app assets. Backend fully functional.
2026-09-19 01:03:17 +02:00
SirHumza 6dbfa1512c Harden networking, lifecycle, and build validation
Add BearSSL integration, strict utility handling, WebSocket validation,
plugin lifecycle cleanup, host regression tests, and reproducible GoldHEN
build support.
2026-08-27 20:38:39 +02:00
SirHumza d5d1957668 plugin: run orbisRPC as a GoldHEN plugin (native auto-start)
/data/GoldHEN/payloads/ is not an auto-load folder (PPPwn only loads
goldhen.bin; folder auto-load is unimplemented GoldHEN feature #296), so the
ELF payload never ran regardless of reboots. Replace that route with the
GoldHEN plugin loader, which auto-starts into the game process at every boot
via plugins.ini [default] with no PC involvement.

- daemon.c/h: extract the payload main() loop into a shared daemon_run()
  usable from both the ELF entry (main.c thin wrapper) and the plugin
- detect.c/h: add detect_name_for_title() for the known-titleid plugin mode
- plugin/plugin.c: plugin_load() reads procInfo.titleid via sys_sdk_proc_info,
  skips non-game (NPXS/system) titles, starts daemon thread; plugin_unload()
  stops it cleanly
- plugin/Makefile: builds orbisrpc_plugin.prx against the GoldHEN SDK
  (libGoldHEN_Hook.a + crtprx.o)
- deploy/SETUP.md: rewrite for the plugin route; add plugins.ini [default]
  (plugin/plugins.ini.ps4)
- scripts/build.sh: include daemon.c
2026-08-15 00:23:33 +02:00
SirHumza d40fc600c4 revise: fix TLS handshake, heartbeat ack, RESUME, seq parse, party
ws: SSL_connect on the non-blocking socket now polls WANT_READ/WANT_WRITE
  with a deadline (previously it would fail the very first handshake);
  handshake response read in chunks so the 5s deadline can't spuriously
  trip; ws_send_text errors on oversized frames instead of silently
  truncating; added ws_send_pong for RFC6455 server pings.
discord: heartbeat ack tracking -> reconnect on 2x-interval silence;
  handle op 7 (reconnect) and op 9 (invalid session, clears session_id);
  parse the sequence from the correct "s" field (was "seq", never
  matched, heartbeat always sent d:0); READY captures session_id for
  RESUME; reconnect now RESUMEs (op 6) when a session exists and falls
  back to IDENTIFY on invalid-session; party size now emitted in the
  activity; dropped the unused 'intent' arg; zeroed gateway-fetch buffer.
main: use config presence_state (was hardcoded); reset last_name after
  reconnect so the current game is re-pushed immediately.
cfg: clamp poll_interval_s to [5,300]; atomic config save (tmp+rename).
log: seconds in timestamps; rotate log at 512 KB.
jsonlite: jl_obj_get/jl_arr_at return non-const (fixes const-drop
  warnings); stringify emits proper "null" for missing pair values.
detect: trim whitespace around app.xml title; drop per-poll log spam.
2026-08-14 20:24:24 +02:00
SirHumza af1a48dbf3 chore: rename project PS4RP -> orbisRPC
- Repo renamed to SirHumza/orbisRPC on GitHub
- Source dir PS4RP/ -> orbisrpc/
- Binaries ps4rp.{elf,fself,bin} -> orbisrpc.{elf,fself,bin}
- On-console config dir /data/PS4RP -> /data/orbisRPC
- Build outputs, HTTP UA, net pool/socket names, README, SETUP
  guide all updated to orbisRPC
2026-08-14 10:31:14 +02:00