Jak wyłączyć wykrywanie niewoli portalu? Jak usunąć wykrzyknik z Wi-Fi lub ikony sygnału w Lollipop?

36

Po połączeniu z Internetem system sprawdza, czy znajduje się w otoczonym murem ogrodzie, który po prostu próbuje połączyć się z Google. Jeśli zawiedzie, w systemie Android 5 na ikonie Wi-Fi lub ikonie sygnału pojawi się wykrzyknik.

W niektórych sytuacjach jest to denerwujące. Powiedzmy, że w Chinach Google jest zablokowany, wykrzyknik zawsze będzie tam, co nie ma znaczenia.

Jak mogę wyłączyć tę kontrolę i sprawić, że system przyjmie, że połączone WiFi / dane mobilne są połączone z Internetem?

Qian
źródło
Ponownie otwarte, ponieważ to inne pytanie IMO. Możesz to wyłączyć bez napotkania problemu w innym pytaniu.
Mateusz

Odpowiedzi:

33

To proste. W terminalu (wymaga roota) lub w adb shell(nie wymaga roota) wydaj polecenie

settings put global captive_portal_detection_enabled 0

i uruchom ponownie. To powinno być wyłączone. Istniejący stan można również zweryfikować za pomocą polecenia

settings get global captive_portal_detection_enabled

Odpowiedź „null” oznacza, że ​​globalna wartość klucza nie została ustawiona, a system Android wróci do domyślnych ustawień włączenia i wykonywania wykrywania. Jeśli wykrywanie zostanie wyłączone, odpowiedź „0” zostanie odebrana.

Więcej informacji: Android: Jak usunąć wykrywanie „niewoli portalu” w Androidzie 4.2.2 i 4.3

Działa również w 5.

Qian
źródło
Świetny! Zwracam uwagę, że link opisuje robienie tego w 4.2.2 i 4.3. Czy ty (lub ktokolwiek inny) sprawdziłeś, że działa to również w 5.0.x?
Flyto,
@ SimonW tak, działa. Dlatego otagowałem pytanie Lollipop. Używam jednak CyanogenMod 12.
Qian
Jestem w Android Noob. Czy muszę to zrootować, aby to zrobić?
Christian Bongiorno
1
Skomentuj Gery , bez tego przedstawiciela: Dla tych, którzy używają terminala po raz pierwszy, nie zapomnij umieścić polecenia „su” przed zrobieniem czegokolwiek, aby zezwolić na uprawnienia administratora. (Minęło trochę czasu, zanim zrozumiałem, dlaczego dostaję „odmowę zgody”). Potem działało to jak urok.
Izzy
1
Zaczynając od Nougat (chyba tylko 7.1.2 lub już Marshmallow), użyj settings put global captive_portal_mode 0zamiast tego, patrz jira.lineageos.org/browse/REGRESSION-620
bonob
13

W wersji zapoznawczej dla programistów Androida M dla Shamu (Nexus 6) i ewentualnie innych wersji tego systemu operacyjnego system captive_portal_server globaljest używany przez system operacyjny niezależnie od stanu captive_portal_detection_enabledw celu określenia stanu sieci Wi-Fi.

W przypadku sieci Wi-Fi nie tylko wykrzykuje wykrzyknik na ikonie siły, ale również umieszcza na czarnej liście ten identyfikator SSID po ponownym automatycznym ponownym połączeniu, jeśli curladres URL podany w captive_portal_server globaltym identyfikatorze SSID nie powiedzie się. Ręczne ponowne połączenie jest dozwolone, ale pozostanie podłączone tylko wtedy, gdy captive_portal_detection_enabledręcznie wybierzesz „Użyj tej sieci w stanie, w jakim się znajduje” za każdym razem, gdy łączysz się z tym identyfikatorem SSID Wi-Fi. To zastąpienie jest tymczasowe.

W przypadku sieci dostawców telefonii komórkowej captive_portal_serverznak wykrzyknika jest wyświetlany tylko na ikonie siły, ale pozostanie połączony, a ruch będzie płynął, jeśli połączenie będzie działało.

Na zrootowanym urządzeniu rozwiązaniem jest ponowne włączenie, captive_portal_detection_enabledjeśli go wyłączyłeś, podłącz się do tej sieci Wi-Fi, wybierz „Użyj tej sieci w stanie obecnym” z menu rozwijanego w wyskakującym okienku portalu, wyłącz sieć komórkową dane do skoncentrowania się na określeniu strony internetowej, którą można odzyskać za pośrednictwem sieci Wi-Fi, logując się do własnego portalu, a następnie użyj przeglądarki, aby znaleźć taką, która działa. Następnie możesz wyłączyć, captive_portal_detection_enabledaby uniknąć irytującego wyskakującego okienka.

Aby ponownie włączyć captive_portal_detection, jeśli wcześniej go wyłączyłeś, wydaj polecenie:

settings put global captive_portal_detection_enabled 1

Wyłącz sieć komórkową (w Ustawieniach - Wykorzystanie danych - Dane mobilne - Wyłącz), aby tymczasowo zmusić telefon do korzystania z sieci Wi-Fi dla całego ruchu. Nie będzie to wymagane, gdy wszystkie ustawienia będą potrzebne.

Wygląda na to, że Android M wymaga strony, która ładuje się pomyślnie i nie zwraca aktywnie 204 (bez zawartości).

Kilka opcji obejmuje między innymi

androidcheck.kiritostudio.com
captive.apple.com
www.textise.net
the network router
localhost
127.0.0.1 (if you have an onboard simple HTTP server)
and the list goes on...

Po znalezieniu takiego, który działa dla Twojej sieci Wi-Fi (często wymaga więcej wyobraźni i prób za firmowymi serwerami proxy, które nie lubią ruchu HTTPS przed uwierzytelnieniem), możesz zapisać serwer.

Zapisz serwer, uruchamiając go w aplikacji terminalowej z włączonym rootem, zastępując przykładowy adres URL tym, na który masz nadzieję, że zadziała:

settings put global captive_portal_server androidcheck.kiritostudio.com

Uruchom ponownie urządzenie. Wypróbuj to. Gdy jesteś zadowolony z zachowania wykrzykników na ikonach, ostatnim krokiem jest wyłączenie wyskakującego okienka portalu dla niewoli, co jest jednym z najbardziej niefortunnych wynalazków tej dekady.

Polecenie wydania:

settings put global captive_portal_detection_enabled 0

Jeśli znajdziesz się w innym kraju lub w sytuacji Wi-Fi, w której występują problemy, niestety musisz powtórzyć powyższe czynności od początku captive_portal_detection_enabled, ponownie włączyć , ponownie uruchomić, znaleźć odpowiedni serwer, a następnie wyłączyć wykrywanie portalu.

Użytkownik Androida M.
źródło
Miałeś na myśli HTTP 204 ( brak zawartości ) lub HTTP 404 (nie znaleziono)? Obecnie zmieniłem na „brak treści” na podstawie innej odpowiedzi
Andrew T.
To rozwiązało problem „połączonego, bez internetu” na Nougat. Uruchamianie świeżej pamięci CM14.1 (7.1.2) na Nexusie.
Yvon
1

Możesz skonfigurować do niego adres własnego serwera portalu.

settings put global captive_portal_server g.cn

Następnie uruchom ponownie telefon.

PS: Wcześniej można sprawdzić, czy serwer jest dostępny.

http://g.cn/generate_204

Kebin Liu
źródło
Wolę g.cn dla Chin kontynentalnych
youfu
Dostaję błąd HTTP 404.0 - Nie znaleziono
Lucky
@Lucky Proszę użyć g.cn.
Kebin Liu,