mirror of
https://github.com/SirHumza/orbisRPC.git
synced 2026-10-06 10:00:36 +02:00
installer: drop the wifi check entirely
This commit is contained in:
1 parent
ef291c2990
commit
be276b00a3
3 files changed
+22
-35
No files matched your search
@@ -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
@@ -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
@@ -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"
|
||||
|
||||
Reference in new issue
Block a user