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
|
INCLUDES := source
|
||||||
|
|
||||||
# Bei jedem Release erhöhen - das Auto-Update vergleicht diese Nummer
|
# Bei jedem Release erhöhen - das Auto-Update vergleicht diese Nummer
|
||||||
VERSION := 3.0.1
|
VERSION := 3.0.2
|
||||||
|
|
||||||
APP_TITLE := MBMNET
|
APP_TITLE := MBMNET
|
||||||
APP_DESCRIPTION := Dein eigenes 3DS-Netzwerk
|
APP_DESCRIPTION := Dein eigenes 3DS-Netzwerk
|
||||||
|
|||||||
+10
-2
@@ -63,6 +63,7 @@ typedef struct {
|
|||||||
const char *label; // Name für Meldungen
|
const char *label; // Name für Meldungen
|
||||||
Rule rules[MAX_RULES];
|
Rule rules[MAX_RULES];
|
||||||
bool optional; // Anwendung statt Systemmodul: nur patchen, wenn installiert und Adresse gefunden
|
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;
|
} Target;
|
||||||
|
|
||||||
#define TITLES_DIR "sdmc:/luma/titles"
|
#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_EXACT, "https://%s%saccount.nintendo.net/v%u/api/", "/v1/api/" },
|
||||||
{ RULE_PREFIX, "https://account.nintendo.net" },
|
{ 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
|
// 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
|
// 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).
|
// 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);
|
free(code);
|
||||||
|
|
||||||
if (p->count == 0 && t->optional) return false;
|
if (p->count == 0 && (t->optional || t->soft)) return false;
|
||||||
if (p->count == 0) {
|
if (p->count == 0) {
|
||||||
char diag[64];
|
char diag[64];
|
||||||
patch_diagnose(diag, sizeof(diag));
|
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;
|
if (ipsLen[i]) continue;
|
||||||
static Patch patch;
|
static Patch patch;
|
||||||
if (!build_patch(&targets[i], server, &patch, msg, msglen)) {
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
ipsLen[i] = build_ips(&patch, ips[i], IPS_CAP);
|
ipsLen[i] = build_ips(&patch, ips[i], IPS_CAP);
|
||||||
|
|||||||
Reference in New Issue
Block a user