v3.0.2: BOSS-Patch für die Policy-Liste (SpotPass im Hintergrund auch nach einem Neustart)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
29f2c556c2
commit
4b07ddf3ae
@@ -17,7 +17,7 @@ SOURCES := source
|
||||
INCLUDES := source
|
||||
|
||||
# Bei jedem Release erhöhen - das Auto-Update vergleicht diese Nummer
|
||||
VERSION := 3.0.1
|
||||
VERSION := 3.0.2
|
||||
|
||||
APP_TITLE := MBMNET
|
||||
APP_DESCRIPTION := Dein eigenes 3DS-Netzwerk
|
||||
|
||||
+10
-2
@@ -63,6 +63,7 @@ typedef struct {
|
||||
const char *label; // Name für Meldungen
|
||||
Rule rules[MAX_RULES];
|
||||
bool optional; // Anwendung statt Systemmodul: nur patchen, wenn installiert und Adresse gefunden
|
||||
bool soft; // Systemmodul, aber verzichtbar: Adresse nicht gefunden = ohne diesen Patch weiter
|
||||
} Target;
|
||||
|
||||
#define TITLES_DIR "sdmc:/luma/titles"
|
||||
@@ -79,6 +80,13 @@ static const Target targets[] = {
|
||||
{ RULE_EXACT, "https://%s%saccount.nintendo.net/v%u/api/", "/v1/api/" },
|
||||
{ RULE_PREFIX, "https://account.nintendo.net" },
|
||||
} },
|
||||
// SpotPass (BOSS): holt vor jedem Abruf die Policy-Liste von nppl.c.app.nintendowifi.net (abgeschaltet).
|
||||
// Die App stellt die Adresse zwar zur Laufzeit um (boss:P SetPolicyListUrl), nach einem Neustart gilt
|
||||
// aber wieder Nintendos - dann scheitern alle Abrufe im Hintergrund, bis man die App öffnet. Der Patch
|
||||
// macht die MBMNET-Adresse dauerhaft. Verzichtbar: Fehlt die Adresse im Modul, läuft alles andere weiter.
|
||||
{ 0x0004013000003402ULL, SYSMODULE_DIR, "SpotPass", {
|
||||
{ RULE_PREFIX, "https://nppl.c.app.nintendowifi.net" },
|
||||
}, false, true },
|
||||
// Miiverse (JPN, USA, EUR): fragt zuerst den Discovery-Server, wohin es geht, und lädt dann seine Seiten
|
||||
// per HTTPS. Gebaut wird der Patch in olvpatch.c (die Regel hier dient nur der Diagnose). Nur die
|
||||
// installierte Region wird gepatcht. Luma lädt Patches für Anwendungen aus /luma/titles/<ID>/code.ips (wie Nimbus).
|
||||
@@ -365,7 +373,7 @@ static bool build_patch(const Target *t, const char *server, Patch *p, char *msg
|
||||
}
|
||||
free(code);
|
||||
|
||||
if (p->count == 0 && t->optional) return false;
|
||||
if (p->count == 0 && (t->optional || t->soft)) return false;
|
||||
if (p->count == 0) {
|
||||
char diag[64];
|
||||
patch_diagnose(diag, sizeof(diag));
|
||||
@@ -540,7 +548,7 @@ bool patch_enable(const char *server, bool *changed, char *msg, size_t msglen)
|
||||
if (ipsLen[i]) continue;
|
||||
static Patch patch;
|
||||
if (!build_patch(&targets[i], server, &patch, msg, msglen)) {
|
||||
if (targets[i].optional) { ipsLen[i] = 0; continue; } // nicht installiert: auslassen
|
||||
if (targets[i].optional || targets[i].soft) { ipsLen[i] = 0; msg[0] = 0; continue; } // auslassen
|
||||
return false;
|
||||
}
|
||||
ipsLen[i] = build_ips(&patch, ips[i], IPS_CAP);
|
||||
|
||||
Reference in New Issue
Block a user