Captive Portal Check deaktivieren (alle Geräte)

cptechnik

cptechnik

Senior-Moderator
Teammitglied
15.146
...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:
  • ADB installieren
  • Entwickleroptionen freischalten
  • verbinden -
    • (nicht nur von "nur Laden" auf Dateiübertragung schalten,
      IMG_20211017_0752-3.jpgIMG_20211017_0752-1.jpgIMG_20211017_0752-2.jpg
    • auch die Authentifizierungs Meldung suchen und bestätigen!)
      IMG_20211017_0752-4.jpg
  • Befehl(e) senden
    • vielleicht reicht
      Code:
      "adb shell settings put global captive_portal_detection_enabled 0"
      (so bei meinem Motoo G6plus)
    • 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
      auf den Server von kuketz ändern, oder am besten gleich selber hosten ..
      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"'


* 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
  1. Android Captive Portal Check: 204-HTTP-Antwort von captiveportal.kuketz.de
  2. droidwiki.org / Captiveportal abschalten
  3. Android: Captive-Portal-Check deaktivieren – CANOX.NET
  4. Captive Portal Check deaktivieren
  5. droidwiki.org / Captiveportal abschalten / Connectivity Check selbst hosten
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Heizoelkocher, Keks66, Chefingenieur und eine weitere Person
Ich habe das mal versucht.
Ergebnis: "inaccessible or not found"
 

Anhänge

  • Captive Error.jpg
    Captive Error.jpg
    66,7 KB · Aufrufe: 58
... der Beitrag ist schon was länger her, und ... müsste überprüft, korrigiert werden...
... go! ;)
 
@Heizoelkocher Du hast aber schon den Fehler im ersten Befehl gesehen?
Code:
adb server version (40) doesn't match this client (41)
Dein ADB ist zu alt. Lad dir immer die aktuelle Version runter: SDK Platform Tools release notes | Android Developers
Und nimm auf keinen Fall die Minimal ADB/Fastboot Tools, falls du das in Erwägung ziehen solltest! Die Binaries sind inzwischen 10 Jahre alt.

Hast du den verlinkten Beitrag auch gelesen?
Captive Portal Check deaktivieren
Du solltest versuchen, die Hochkommas im Befehl wegzulassen.
Beiträge automatisch zusammengeführt:

Alternativ zu den Hochkommas, kannst du auch zuerst nur adb shell eingeben. Danach bist du in der Shell des Handys und musst nicht jeden Befehl mit adb shell beginnen. Dadurch fällt auch die Verwendung der Hochkommas weg:
Code:
adb shell
settings put global ...
settings put global ...
usw.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: cptechnik und Heizoelkocher
Ich verstehe diesen Blog nicht. Ganz dramatisch wird dort geschrieben:
Zur Prüfung, ob eine Verbindung besteht, sendet Android eine Anfrage an die Adresse »connectivitycheck.gstatic.com«. Ist die Anfrage erfolgreich, besteht Zugang zum Internet. Mit dieser Anfrage übermittelt das System jedes Mal Informationen zur IP-Adresse des Anschlusses, dem Zeitpunkt des Internet-Zugangs und welcher Browser aktuell verwendet wird an Google.

Allgemein hat ein Verbindungswechsel wie dieser zur Folge, dass nicht nur Google, sondern auch alle anderen Dienste, Prozesse und Apps diesen mitgeteilt bekommen. Natürlich wird auch meine IP-Adresse regelmäßig an Google übermittelt, weil ich auch mit den Google Servern kommuniziere. Und das auch außerhalb dieser Anmeldung über Captive Portal.
Google erfährt, welchen Browser ich nutze? Nicht schlimm, weil Captive Portal gar nicht über meinen Browser angezeigt wird. Captive Portal läuft nämlich nur über WebView in der Captive Portal App! Mein Browser hat hiermit nix zu tun. Dieser Ping an Google verät noch am wenigsten über mich. Wie gesagt, die Google Server bekommen auch ohne diesen Captive Portal Check genau mit, dass sich meine IP-Adresse ändert und das ist logischerweise unumgänglich.
 
  • Danke
Reaktionen: cptechnik
Danke - ohne Hochkommas geht's, und über adb shell auch.
Musste aber erst mal suchen wie ich copy&paste nutzen kann 😁 (Ctrl+V oder Shift+Ins gehen nicht, sondern nur re. Maustaste).

@chrs267 Fehler beim ersten Befehl gesehen? Ja, hatte mir danach die aktuellste 33.0.3 (Aug 2022) herunter geladen: keine Änderung.
Es liegt an den Hochkommas.
 
Vielleicht liegt das Hochkomma Problem daran, das ich Linux als Basis System verwende und ihr Windows?
... hätte ich dabei schreiben sollen...
 
@cptechnik Da gehe ich mal von aus 😀
 
@chrs267
Naja, wenn du auch den Play Store installiert hast... Dann schon...
Aber wenn jemand ohne Play Store herum läuft, bekommt Google eben das dennoch über captiveportal mit... Oder noch zusätzlich...

Ich hatte es eine Zeit lang aktiviert, dann wollte ich das captive Portal selber hosten, das hat nicht so wunderbar funktioniert, und dann habe ich es jetzt wieder sein gelassen...
 
Zuletzt bearbeitet:
@cptechnik Hast' es nun abgeschaltet oder wieder auf Google gesetzt?

Wenn man's ganz abschaltet, wie kommt man dann auf diese ungeliebten Anmeldeportale ?
 
Original gelassen... Nix gemacht...
Gerät gewechselt... Ich müsste noch mal nachsehen...
Beiträge automatisch zusammengeführt:

... ich habe einen Satz für die Hochkommas eingefügt...
 
Zuletzt bearbeitet:
So, alles läuft ... und läuft nicht.

adb shell settings list global ergibt:
captive_portal_detection_enabled=0
captive_portal_mode=0
captive_portal_server=localhost

Nach Einschalten des WLANs erscheint "verbunden, kein Internet", und erst nach eine halben Minute verschwindet das Kreuzchen am WLAN-Symbol ... 😑

Gerät: ein Tab S2 (SM-T810) mit AOSP Extended, A9-basierend.
 
Wenn ich zb im www.freifunk.net bin, braucht die Überprüfung übrigens auch etwas länger, obwohl ich nichts dran gemacht habe...
Aber das Netz (mit älteren Geräten) ist nicht für minimalen Ping und maximale Geschwindigkeit gebaut (bei neuen Geräten mag das anders sein)...
 

Ähnliche Themen

Liverpool
Antworten
4
Aufrufe
175
maik005
maik005
B
Antworten
3
Aufrufe
187
Joh
J
T
Antworten
5
Aufrufe
1.280
TomWeber
T
Zurück
Oben Unten