Konfigurieren des Verhaltens des Captive-Portals
captive_portal_detection_enabled
(<= Android 7.1.1)
- funktioniert wie im Fragetext beschrieben
captive_portal_mode
(> = Android 7.1.2)
- funktioniert wie im Fragetext beschrieben
Festlegen von Captive-Portal-URLs
captive_portal_server
(<= Android 6.0.1)
- Der Server, auf dem sich eine
generate_204
Seite befindet, auf der intern eine URL für die Erkennung von Captive-Portalen erstellt wird ( new URL("http", mServer, "/generate_204");
- veraltet ab Android 7.0, siehe unten).
captive_portal_use_https
(> = Android 7.0)
0
: Verwenden Sie HTTPS nicht zur Netzwerküberprüfung
1
: Verwenden Sie HTTPS (Standard)
captive_portal_http_url
(> = Android 7.0)
- Die URL, die für die Erkennung des HTTP-Captive-Portals verwendet wird - in Kombination mit
captive_portal_use_https
(auf 0
) gesetzt
- > = Android 7.1.1: Das Betriebssystem wird nicht mehr automatisch
generate_204
an die URL angehängt , wodurch die Eingabe-URL etwas flexibler wird
captive_portal_https_url
(> = Android 7.0)
- Die URL, die für die Erkennung des HTTPS-Captive-Portals verwendet wird - wird zusammen mit
captive_portal_use_https
(auf 1
) gesetzt.
- > = Android 7.1.1: Das Betriebssystem wird nicht mehr automatisch
generate_204
an die URL angehängt
Voraussetzung für die zu verwendende URL
Ein HTTP 204-Antwortcode ("kein Inhalt") vom Server wird zur Validierung verwendet, es wird kein zusätzlicher Inhalt benötigt: Nehmen Sie beispielsweise die Standarderkennungs-URL, geben Sie die curl clients3.google.com/generate_204
Rückgabe leer zurück und überprüfen Sie die HTTP-Antwort, indem Sie --write-out %{http_code}
Rückgaben hinzufügen 204
. '
Eine kleine Liste verwendbarer Captive-Portal-Server-URLs auf dem chinesischen Festland (persönlich getestet)
https://captive.v2ex.co/generate_204 (gehostet von v2ex.com)
https://connect.rom.miui.com/generate_204 (gehostet von Xiaomi, standardmäßig auf MIUI verwendet)
https://noisyfox.cn/generate_204 (gehostet von noisyfox.cn)
https://www.google.cn/generate_204 & https://developers.google.cn/generate_204 (gehostet von Google)
https://www.qualcomm.cn/generate_204 (gehostet von Qualcomm)
Weitere Hinweise
Die Quelle erwähnt auch Parameter captive_portal_user_agent
, captive_portal_fallback_url
und captive_portal_other_fallback_urls
:
captive_portal_fallback_url
(> = Android 7.1.1) soll offensichtlich eine einzige URL enthalten, während
captive_portal_other_fallback_urls
enthält mehrere weitere URLs (durch Kommas getrennte Liste, sodass die URLs möglicherweise kein Komma enthalten).
Aber ich persönlich habe Tests mit Android 8.0.0 durchgeführt, und beide Fallback-Parameter funktionieren nicht. Angenommen, es handelt sich um Deklarationen ohne Implementierung.
Einige Beispiele für Captive-Portal-Einstellungen von Android in China zeigen die Verwendung einiger der oben genannten Einstellungen:
Die ADB-Shell-Einstellungen setzen global captive_portal_http_url http://www.google.cn/generate_204
Die ADB-Shell-Einstellungen setzen global captive_portal_https_url https://www.google.cn/generate_204
Die ADB-Shell-Einstellungen setzen global captive_portal_fallback_url http://www.google.cn/generate_204
In den ADB-Shell-Einstellungen werden globale Captive_portal_other_fallback_urls http://www.qualcomm.cn/generate_204 gesetzt
In diesem Wissen könnten "Zinnfolien" sogar einen eigenen Verifizierungsdienst einrichten. Mit Apache:
RewriteEngine On
RewriteCond% {REQUEST_URI} / generate_204 $
RewriteRule $ / [R = 204, L]
oder mit Nginx:
location / generate_204 {return 204; }}
Verweise
1 , 2 (Chinesisch), 3 (Chinesisch)
new URL("http", mServer, "/generate_204");
(mitmServer
Initialisierung durch,captive_portal_server
falls festgelegt) - dies sollte also nur der Servername (oder die IP) dort sein (was höchstwahrscheinlich einer der Gründe war, warum er für mich fehlgeschlagen ist auf einem MM-Gerät). Ich bin mir nicht sicher, wann es sich dann geändert hat - aber von dem, was Sie wahrscheinlich mit N schreiben. Für den 204 habe ich das gefunden - also habe ich anscheinend richtig angenommen: nur der 204-Code, kein Inhalt.