installer: drop the wifi check entirely

This commit is contained in:
SirHumza committed 2026-09-25 15:54:46 +02:00
1 parent ef291c2990
commit be276b00a3
3 files changed
+22 -35

No files matched your search

+2 -2
View File
@@ -21,7 +21,7 @@ playing to Discord: name, cover art, timer. No PC at runtime.</p>
[Releases page](https://github.com/SirHumza/orbisRPC/releases/tag/v1.0.0)
and install it with Package Installer.
2. Open **orbisRPC Setup** → say Yes. It drops the daemon into GoldHEN's
`bin/elf`, checks WiFi, and saves your Discord token.
`bin/elf` and saves your Discord token.
3. Start **orbisrpc** from GoldHEN's payload menu, launch a game, watch Discord.
After a reboot: re-jailbreak, then enable AutoRun for `orbisrpc` in GoldHEN's
@@ -36,7 +36,7 @@ payload menu once — it starts itself on every jailbreak after that.
| ⏱️ **True timers** | Survive reconnects and restarts, resume across quick game switches. |
| 🧠 **Self-learning** | First-seen titles are remembered, so later boots resolve instantly. |
| 🔄 **Self-updating** | Signed daemon updates with boot rollback. No reinstall treadmill. |
| 📦 **One-tap installer** | Setup PKG: install → WiFi check → token → payload in place. |
| 📦 **One-tap installer** | Setup PKG: install → token → payload in place. |
## How it works
+14 -8
View File
@@ -3,9 +3,15 @@
## What it does
One linear flow, forward-only (every No skips ahead, nothing loops back):
confirm → copy `orbisrpc.bin` to `/data/GoldHEN/bin/elf/` (mkdir -p + size
read-back, one OK/denied line) → WiFi check → token prompt (skipped when
valid) → done. Declining install offers a read-only status screen instead.
confirm → copy `orbisrpc.bin` to `/data/GoldHEN/bin/elf/` (mkdir -p +
byte-count + hash read-back, one OK/denied line) → token prompt (skipped
when valid) → done. Declining install offers a read-only status screen
instead.
There is no WiFi check. The installer runs sandboxed, so its socket probe
measures the app's network stack, not the payload's — and a FAILED line
reads like a verdict on Discord itself. The daemon reports real reachability
in its own log once started.
The installer never boots anything. Starting the daemon is GoldHEN's
payload menu or AutoRun — see below. No loopback ports, no eviction, no
@@ -22,12 +28,12 @@ exits are Done, explicit close, or a payload write failure.
3 s foreground settle, or the first dialog flash-dismisses.
- Dialog/IME/IME-backend sysmodules + internal SYSTEM/USER/COMMON modules
load before use (unloaded calls panic).
- Network stack: internal NET module + `sceNetInit` + pool, verified with a
probe socket. All connects non-blocking with hard deadlines (blocking
connect ignores timeouts on filtered hosts — 75 s hole).
- `stat()`/`fstat()` lie about sizes inside the sandbox (observed 4096/4160
for a 2071552-byte file), so install proof is byte count + FNV hash on
read-back, and status uses open-existence, never stat.
- Config writes are atomic (tmp+fsync+rename) with read-back proof.
- IME wait is bounded; EAGAIN send retries are capped; asset key charset
validated (bad keys blank the activity).
- IME wait is bounded; asset key charset validated (bad keys blank the
activity).
## Auto-start
+6 -25
View File
@@ -1,5 +1,5 @@
/* installer.c - orbisRPC Setup, stripped to the bone:
* install files -> wifi check -> token -> done.
* install files -> token -> done.
* One confirm up front; everything after flows forward.
*
* Payload placement is the whole job: one copy of orbisrpc.bin into
@@ -16,9 +16,7 @@
#include <orbis/libkernel.h>
#include <orbis/SystemService.h>
#include "ui.h"
#include "send.h"
#include "icfg.h"
#include "nettest.h"
#ifndef SETUP_VERSION
#define SETUP_VERSION "1.0.0"
@@ -197,26 +195,11 @@ static int step_files(void){
return 0;
}
/* 2: wifi. Always continues forward; result is information. */
static void step_wifi(void){
int ok, rc;
ilogv("wifi-begun", 0, 0);
rc = net_init();
ilogv("net-init", rc, 0);
if(ui_progress_open("Checking connection...") != 0){
ilogv("progress-fail", 0, 0);
return;
}
ilogv("progress-open", 0, 0);
ok = net_probe("gateway.discord.gg", 443, 6);
ilogv("probe-result", ok, 0);
ui_progress_close();
ui_ok(ok ? "WiFi check: OK.\n\nDiscord is reachable from this console."
: "WiFi check: FAILED.\n\nDiscord is unreachable. Presence will not work until the network does.\nContinuing anyway.");
ilogv("wifi-done", ok, 0);
}
/* 2: wifi check removed on purpose: it probed gateway.discord.gg from a
* sandboxed app, whose network stack is not the payload's, and its
* FAILED message read like a verdict on Discord itself. */
/* 3: token. Skips silently when one already validates. */
/* 2: token. Skips silently when one already validates. */
static void step_token(void){
char tok[160];
int tries, r;
@@ -275,7 +258,7 @@ int main(void){
sceSystemServiceHideSplashScreen();
sceKernelSleep(3);
snprintf(welcome, sizeof welcome,
"orbisRPC Setup %s\n\nInstalls the daemon payload, checks WiFi, and saves your token.",
"orbisRPC Setup %s\n\nInstalls the daemon payload and saves your Discord token.",
SETUP_VERSION);
q = ui_confirm(welcome);
if(q != 1){
@@ -287,8 +270,6 @@ int main(void){
if(step_assets() != 0) return 1;
ilogv("assets-ok", 0, 0);
if(step_files() != 0) return 1;
step_wifi();
ilogv("post-wifi", 0, 0);
step_token();
ilogv("post-token", 0, 0);
ui_ok("Setup " SETUP_VERSION " complete.\n\n"