cptechnik
Senior-Moderator
Teammitglied
- 15.354
...hoffentlich alle...
Verärgert dadurch das DAVx keine Synchronisation mehr macht, wenn Android denkt, es hätte kein Internet*, habe ich mich mal mit dem Captive Portal Check beschäftigt.
Fündig wurde ich beim kuketz-blog¹ , habe dazu den Inhalt mit Genehmigung ins Wiki² kopiert, nach weiterer Recherche habe ich dann hier im Forum den Thread Captive Portal Check deaktivieren⁴ gefunden und die Quelle von canox.net³, der aber eigentlich nur das Google Pixel 4a betrifft.
Deshalb habe ich hier mal angefangen einen hoffentlich global gültigen Beitrag zu schreiben.
(Die Befehle wurden unter Linux getätigt, für Windows müssen die Hochkommas ( 'die da' ) weggelassen werden!)
In Kürze:
* kein Internet
oder "Anmeldung erforderlich" oder "Tippen sie hier, um sich beim Netzwerk anzumelden" oder "im WLAN-Netzwerk anmelden" ...
Diese Meldung erscheint, wenn das Captive Portal nicht erreichbar ist - WHAAAT???
Ein Captive Portal ist eine kleine Webseite, die vorgeschaltet wird bevor man Zugang zum Internet erhält.
Nun, Google und Amazon und.... also Android möchte es ja so einfach wie möglich machen, und hat für Situationen, an denen ein Captive Portal vorgeschaltet ist eine "Technik" eingebaut, um das zu erkennen. Es wird einfach eine Webseite abgerufen, die ausserhalb des lokalen Netzwerkes des (WLAN-)Anbieters ist.
Zum Beispiel : http://tabletcaptiveportal.com/generate_204 / connectivitycheck.android.com / connectivitycheck.gstatic.com
Die Antwort des Servers lautet in etwa "HTTP/1.1 204 No Content" ... Kein Inhalt... aber eben... Server erreichbar. Jetzt weiss Android ... Internet ist da.
Hierbei werden dem Server aber auch Daten übermittelt - mindestens IP-Adresse, Zeitpunkt des Internet-Zugangs, verwendeter Browser ... das ist im HTTP so vorgesehen. Jetzt könnte man als Hersteller (eines gebundelten Gerätes) auch zu Marketing zwecken auch weitere Informationen abfragen / senden...
* Wenn man also nicht möchte, dass Google oder Amazon weiß dass Du gerade wieder online gehst, nur weil der Captive Portal Check aktiv wurde oder
* wenn man das Tablet nur innerhalb des eigenen Netzes verwenden möchte
könnte man es es doch sperren... Njein...
Wenn es durch eine Firewall oder einer DNS Umleitung gesperrt wird, gibt es ja die Fehlermeldung aus ... kein Internet ... obwohl ja Internet da ist, nur der Zugriff auf den Server eben nicht.
Auch verweigern dann manche Dienste ihren Dienst (Der Autor dieses Beitrages hatte keine gute Abschlussnote in Deutsch),
wie zum Beispiel DAVx - zum Synchronisieren von Kalendern auf nextcloud.
Im Gerät ausschalten - Ja, das ist möglich... zb bei "normal" gekauften Geräten, wie bei meinem Moto G6plus.
Aber... dann hat man auch keinen Hinweis ob man Internet hat...
Richtig umleiten - Wie beim "Amazon Fire HD 8 v10" kann man oft das Portal nicht ausschalten, die Variable kann mit [adb shell settings list global] nicht abgefragt werden. Hier ist es aber möglich das Ziel der Abfrage im Gerät zu ändern (captive_portal_fallback_url, captive_portal_http_url, captive_portal_https_url).
Der Server muss aber auch richtig antworten.
Deswegen hat kuketz seinen Server entsprechend konfiguriert und auch eine Anleitung hinterlassen¹ (kopiert ins Wiki⁵), damit ihr das selbst auf eurem Server, eurer NAS einrichten könnt.
Quellen
Verärgert dadurch das DAVx keine Synchronisation mehr macht, wenn Android denkt, es hätte kein Internet*, habe ich mich mal mit dem Captive Portal Check beschäftigt.
Fündig wurde ich beim kuketz-blog¹ , habe dazu den Inhalt mit Genehmigung ins Wiki² kopiert, nach weiterer Recherche habe ich dann hier im Forum den Thread Captive Portal Check deaktivieren⁴ gefunden und die Quelle von canox.net³, der aber eigentlich nur das Google Pixel 4a betrifft.
Deshalb habe ich hier mal angefangen einen hoffentlich global gültigen Beitrag zu schreiben.
(Die Befehle wurden unter Linux getätigt, für Windows müssen die Hochkommas ( 'die da' ) weggelassen werden!)
In Kürze:
- ADB installieren
- Entwickleroptionen freischalten
- verbinden -
- Befehl(e) senden
- vielleicht reicht
Code:"adb shell settings put global captive_portal_detection_enabled 0"
- vielleicht gibt es diese Variable nicht (meinem gebundelten Amazon Fire 7), und man muss die Parameter (hier Beispiel Fire HD7v8)
Code:... captive_portal_fallback_url=https://www.google.com/generate_204 ... captive_portal_fallback_url=https://www.google.com/generate_204 ... captive_portal_http_url=http://tabletcaptiveportal.com/generate_204 ... captive_portal_https_url=http://tabletcaptiveportal.com/generate_204
Code:adb shell 'settings put global captive_portal_http_url "http://captiveportal.kuketz.de"' adb shell 'settings put global captive_portal_https_url "https://captiveportal.kuketz.de"' adb shell 'settings put global captive_portal_fallback_url "http://captiveportal.kuketz.de"' adb shell 'settings put global captive_portal_other_fallback_urls "http://captiveportal.kuketz.de"'
- vielleicht reicht
* kein Internet
oder "Anmeldung erforderlich" oder "Tippen sie hier, um sich beim Netzwerk anzumelden" oder "im WLAN-Netzwerk anmelden" ...
Diese Meldung erscheint, wenn das Captive Portal nicht erreichbar ist - WHAAAT???
Ein Captive Portal ist eine kleine Webseite, die vorgeschaltet wird bevor man Zugang zum Internet erhält.
In Hotels oder WLAN-Hotspots oder mehr oder weniger frei zugänglichen Internet-Zugängen, meist per WLAN wird abgefragt ob der Nutzer bezahlt hat (Hotel, T-Online) oder den AGB / Nutzungsregeln zugestimmt hat (freifunk.net verzichtet bewusst darauf).
Nun, Google und Amazon und.... also Android möchte es ja so einfach wie möglich machen, und hat für Situationen, an denen ein Captive Portal vorgeschaltet ist eine "Technik" eingebaut, um das zu erkennen. Es wird einfach eine Webseite abgerufen, die ausserhalb des lokalen Netzwerkes des (WLAN-)Anbieters ist.
Zum Beispiel : http://tabletcaptiveportal.com/generate_204 / connectivitycheck.android.com / connectivitycheck.gstatic.com
Die Antwort des Servers lautet in etwa "HTTP/1.1 204 No Content" ... Kein Inhalt... aber eben... Server erreichbar. Jetzt weiss Android ... Internet ist da.
Hierbei werden dem Server aber auch Daten übermittelt - mindestens IP-Adresse, Zeitpunkt des Internet-Zugangs, verwendeter Browser ... das ist im HTTP so vorgesehen. Jetzt könnte man als Hersteller (eines gebundelten Gerätes) auch zu Marketing zwecken auch weitere Informationen abfragen / senden...
* Wenn man also nicht möchte, dass Google oder Amazon weiß dass Du gerade wieder online gehst, nur weil der Captive Portal Check aktiv wurde oder
* wenn man das Tablet nur innerhalb des eigenen Netzes verwenden möchte
könnte man es es doch sperren... Njein...
Wenn es durch eine Firewall oder einer DNS Umleitung gesperrt wird, gibt es ja die Fehlermeldung aus ... kein Internet ... obwohl ja Internet da ist, nur der Zugriff auf den Server eben nicht.
Auch verweigern dann manche Dienste ihren Dienst (Der Autor dieses Beitrages hatte keine gute Abschlussnote in Deutsch),
wie zum Beispiel DAVx - zum Synchronisieren von Kalendern auf nextcloud.
Im Gerät ausschalten - Ja, das ist möglich... zb bei "normal" gekauften Geräten, wie bei meinem Moto G6plus.
Aber... dann hat man auch keinen Hinweis ob man Internet hat...
Richtig umleiten - Wie beim "Amazon Fire HD 8 v10" kann man oft das Portal nicht ausschalten, die Variable kann mit [adb shell settings list global] nicht abgefragt werden. Hier ist es aber möglich das Ziel der Abfrage im Gerät zu ändern (captive_portal_fallback_url, captive_portal_http_url, captive_portal_https_url).
Der Server muss aber auch richtig antworten.
Deswegen hat kuketz seinen Server entsprechend konfiguriert und auch eine Anleitung hinterlassen¹ (kopiert ins Wiki⁵), damit ihr das selbst auf eurem Server, eurer NAS einrichten könnt.
Quellen
Zuletzt bearbeitet: