Configurar el comportamiento del portal cautivo
captive_portal_detection_enabled (<= Android 7.1.1)
- funciona como se describe en el cuerpo de la pregunta
 
 
captive_portal_mode (> = Android 7.1.2)
- funciona como se describe en el cuerpo de la pregunta
 
 
Establecer URL (s) del portal cautivo
captive_portal_server (<= Android 6.0.1)
- El servidor que contiene una 
generate_204página, utilizado para crear internamente una URL para la detección de portal cautivo ( new URL("http", mServer, "/generate_204");- obsoleto a partir de Android 7.0, ver más abajo) 
 
captive_portal_use_https (> = Android 7.0)
0: No use HTTPS para la validación de red 
1: Usar HTTPS (predeterminado) 
 
captive_portal_http_url (> = Android 7.0)
- La URL utilizada para la detección del portal cautivo HTTP: úsela en pareja con 
captive_portal_use_https(configurada en 0) 
- > = Android 7.1.1: el sistema operativo ya no se agrega 
generate_204a la URL automáticamente, lo que brinda cierta flexibilidad a la URL de entrada 
 
captive_portal_https_url (> = Android 7.0)
- La URL utilizada para la detección del portal cautivo HTTPS: úsela en pareja con 
captive_portal_use_https(configurada en 1) 
- > = Android 7.1.1: el sistema operativo ya no se agrega 
generate_204a la URL automáticamente 
 
Requisito para utilizar la URL
Se utiliza un código de respuesta HTTP 204 ("sin contenido") del servidor para la validación, no se necesita contenido adicional: tome la URL de detección predeterminada, por ejemplo, curl clients3.google.com/generate_204devuelve vacía e inspecciona la respuesta HTTP agregando --write-out %{http_code}devoluciones 204'.
Una pequeña lista de URL de servidor de portal cautivo utilizables en China continental (probado personalmente)
  https://captive.v2ex.co/generate_204 (alojado por v2ex.com)
  
  https://connect.rom.miui.com/generate_204 (alojado por Xiaomi, utilizado por defecto en MIUI)
  
  https://noisyfox.cn/generate_204 (alojado por noisyfox.cn)
  
  https://www.google.cn/generate_204 y https://developers.google.cn/generate_204 (alojado por Google)
  
  https://www.qualcomm.cn/generate_204 (alojado por Qualcomm)
Notas adicionales
La fuente también menciona parámetros captive_portal_user_agent, captive_portal_fallback_urly captive_portal_other_fallback_urls:
captive_portal_fallback_url (> = Android 7.1.1) obviamente se supone que tiene una sola URL, mientras 
captive_portal_other_fallback_urls contiene varias URL adicionales (lista separada por comas, por lo que es posible que las URL no contengan ninguna coma). 
Pero personalmente realicé pruebas en Android 8.0.0, y ambos parámetros de respaldo no funcionan. Asumiendo que son declaraciones sin una implementación por ahora.
Algunos ejemplos de configuraciones de portal cautivo de Android en China muestran el uso de algunas de las configuraciones anteriores:
la configuración del shell adb pone global cautive_portal_http_url http://www.google.cn/generate_204
la configuración de adb shell pone global cautive_portal_https_url https://www.google.cn/generate_204
la configuración del shell adb pone global captive_portal_fallback_url http://www.google.cn/generate_204
la configuración de adb shell coloca global cautive_portal_other_fallback_urls http://www.qualcomm.cn/generate_204
Sabiendo eso, las "hojas de estaño" incluso podrían establecer su propio servicio de verificación. Con Apache:
RewriteEngine On
RewriteCond% {REQUEST_URI} / generate_204 $
RewriteRule $ / [R = 204, L]
o con Nginx:
location / generate_204 {return 204; }
Referencias
1 , 2 (chino), 3 (chino)
                 
                
new URL("http", mServer, "/generate_204");(mServerinicializado porcaptive_portal_serversi está configurado), por lo que este debería ser el nombre del servidor (o IP) allí (que probablemente fue una de las razones por las que falló para mí en un dispositivo MM). No estoy seguro de cuándo cambió entonces, pero por lo que escribes probablemente con N. Para el 204, he encontrado esto , por lo que parece que asumí correctamente: solo el código 204, sin contenido.captive_portal_https_urly poner una URL accesiblecaptive_portal_fallback_urlno elimina la marca cruzada, y lo mismo ocurre con la colocacióncaptive_portal_other_fallback_urls:captive_portal_https_urlla única forma de hacerlo es en línea recta. Tenga en cuenta que las pruebas se llevan a cabo bajo LTE en lugar de WiFi, porque por alguna razón, el WiFi de mi escuela siempre me dirigiría al portal cautivo, incluso si configuro una URL completamente inválida.g.cndisponible;)captive_portal_fallback_url.