¿Cómo deshabilitar la detección de portal cautivo? ¿Cómo eliminar el signo de exclamación en el icono de señal o Wi-Fi en Lollipop?

36

Cuando está conectado a Internet, el sistema verifica si está en un jardín amurallado, que simplemente está tratando de conectarse a Google. Si falla, en Android 5, habrá un signo de exclamación en el icono de WiFi o en el icono de señal.

En algunas situaciones, esto es molesto. Digamos que en China, Google está bloqueado, el signo de exclamación siempre estará allí, lo que no tiene sentido.

¿Cómo puedo desactivar esta verificación y hacer que el sistema asuma que los datos de WiFi / móviles conectados están conectados a Internet?

Qian
fuente
Reabierto porque esta es una pregunta diferente de la OMI. Puede deshabilitar esto sin encontrar el problema en la otra pregunta.
Matthew leyó

Respuestas:

33

Es simple. En el terminal (requiere root), o en adb shell(no requiere root), emita el comando

settings put global captive_portal_detection_enabled 0

y reiniciar. Debería estar deshabilitado. El estado existente también se puede verificar mediante el comando

settings get global captive_portal_detection_enabled

Una respuesta de "nulo" indica que el valor de la clave global no se ha establecido y Android volverá al valor predeterminado de estar encendido y realizar la detección. Si la detección está desactivada, se recibirá la respuesta de "0".

Más información: Android: Cómo eliminar la detección de "portal cautivo" en Android 4.2.2 y 4.3

También funciona en 5.

Qian
fuente
¡Excelente! Observo que el enlace describe hacer esto en 4.2.2 y 4.3. ¿Has verificado (o alguien más) que esto también funciona en 5.0.x?
Flyto
@SimonW sí, funciona. Es por eso que etiqueté la pregunta piruleta. Sin embargo, estoy usando CyanogenMod 12.
Qian
Estoy en novato de Android. ¿Necesito rootearlo para que esto funcione?
Christian Bongiorno
1
Comentario de Gery , que no tiene el representante: para aquellos que usan la terminal por primera vez, no olviden poner el comando "su" antes de hacer nada, para permitir permisos de superusuario. (Me tomó un tiempo entender por qué obtengo un "permiso denegado") Después de eso funcionó a las mil maravillas.
Izzy
1
A partir de Turrón (supongo, podría ser solo 7.1.2, o ya Marshmallow), use settings put global captive_portal_mode 0en su lugar, vea jira.lineageos.org/browse/REGRESSION-620
bonob
13

En la Vista previa del desarrollador de Android M para Shamu (Nexus 6), y posiblemente otras compilaciones de este sistema operativo, el sistema operativo captive_portal_server globallo utiliza independientemente del estado captive_portal_detection_enabledpara determinar el estado de una red WiFi.

Para las redes WiFi, no solo dibujará un signo de exclamación en el ícono de fuerza, sino que incluirá en la lista negra que el SSID se reconectará automáticamente si no tiene éxito curlla URL especificada en la captive_portal_server globalvía a través de ese SSID. La reconexión manual está permitida, pero solo permanecerá conectada si la tiene captive_portal_detection_enabledy elija "Usar esta red tal como está" manualmente, cada vez que se conecte a ese SSID WiFi. Esta anulación es temporal.

Para las redes de proveedores móviles, captive_portal_serversolo se usa para dibujar un signo de exclamación en el ícono de fuerza, pero permanecerá conectado y el tráfico fluirá si la conexión funciona.

En su dispositivo rooteado, la solución es volver a habilitarlo captive_portal_detection_enabledsi lo ha deshabilitado, conectarse a esa red WiFi, seleccionar "Usar esta red tal como está" en el menú desplegable en la ventana emergente del portal cautivo, deshabilitar su red móvil datos para centrarse en determinar un sitio web que se puede recuperar a través de su red Wifi iniciando sesión en su portal cautivo y luego use un navegador para encontrar uno que funcione. Después de eso, puede desactivar captive_portal_detection_enabledpara evitar la molesta ventana emergente.

Para volver a habilitar su captive_portal_detection, si previamente lo deshabilitó, emita el comando:

settings put global captive_portal_detection_enabled 1

Desactive su red móvil (en Configuración - Uso de datos - Datos móviles - Desactivado), para obligar al teléfono a utilizar la red WiFi para todo el tráfico, temporalmente. Esto no será necesario una vez que tenga todas sus configuraciones donde deben estar.

Android M parece requerir un sitio web que se carga con éxito y no devuelve activamente un 204 (sin contenido).

Un par de opciones incluyen, entre otras,

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...

Después de encontrar uno que funcione para su red WiFi (a menudo requiere más imaginación e intentos detrás de servidores proxy de puerta de enlace web corporativos que no les gusta el tráfico HTTPS antes de la autenticación), puede guardar el servidor.

Guarde el servidor ejecutando esto en su aplicación de terminal habilitada para root, reemplazando la URL de ejemplo con la que espera que funcione:

settings put global captive_portal_server androidcheck.kiritostudio.com

Reinicia tu dispositivo. Pruébalo. Una vez que esté satisfecho con el comportamiento de las Marcas de exclamación en los iconos, el paso final es deshabilitar la ventana emergente del portal cautivo, que es uno de los inventos más desafortunados de esta década.

Emitir comando:

settings put global captive_portal_detection_enabled 0

Si se encuentra en un país diferente o en una situación de WiFi donde surgen problemas, desafortunadamente deberá repetir lo anterior desde el principio, volver a habilitar captive_portal_detection_enabled, reiniciar, encontrar el servidor correcto y luego deshabilitar la detección del portal.

Usuario de Android M
fuente
¿Quiso decir HTTP 204 ( sin contenido ) o HTTP 404 (no encontrado)? Actualmente cambié a "sin contenido" en base a otra respuesta
Andrew T.
Esto resolvió el problema "conectado, sin internet" en Nougat. Ejecución de CM14.1 recién actualizado (7.1.2) en Nexus.
Yvon
1

Puede configurar la dirección de su servidor de portal cautivo.

settings put global captive_portal_server g.cn

Luego, reinicie su teléfono.

PD: Antes de eso, puede validar que el servidor esté disponible.

http://g.cn/generate_204

Kebin Liu
fuente
Prefiero g.cn para China continental
youfu
Recibo un error HTTP 404.0 - No encontrado
Lucky
@Lucky Usa g.cn.
Kebin Liu