Configurazione del comportamento del portale captive
captive_portal_detection_enabled
(<= Android 7.1.1)
- funziona come descritto nel corpo dell'interrogazione
captive_portal_mode
(> = Android 7.1.2)
- funziona come descritto nel corpo dell'interrogazione
Impostazione degli URL del portale captive
captive_portal_server
(<= Android 6.0.1)
- Il server che contiene una
generate_204
pagina, utilizzato per creare internamente un URL per il rilevamento del portale captive ( new URL("http", mServer, "/generate_204");
- obsoleto da Android 7.0, vedi sotto)
captive_portal_use_https
(> = Android 7.0)
0
: Non utilizzare HTTPS per la convalida della rete
1
: Usa HTTPS (impostazione predefinita)
captive_portal_http_url
(> = Android 7.0)
- L'URL utilizzato per il rilevamento del portale captive HTTP: utilizzare in coppia con
captive_portal_use_https
(impostato su 0
)
- > = Android 7.1.1: il sistema operativo non aggiunge più
generate_204
automaticamente l'URL, offrendo una certa flessibilità all'URL di input
captive_portal_https_url
(> = Android 7.0)
- L'URL utilizzato per il rilevamento del portale captive HTTPS: utilizzare in coppia con
captive_portal_use_https
(impostato su 1
)
- > = Android 7.1.1: il sistema operativo non aggiunge più
generate_204
l'URL automaticamente
Requisito per l'URL da utilizzare
Per la convalida viene utilizzato un codice di risposta HTTP 204 ("nessun contenuto") dal server, non è necessario alcun contenuto aggiuntivo: prendere ad esempio l'URL di rilevamento predefinito, curl clients3.google.com/generate_204
restituisce vuoto e ispeziona la risposta HTTP aggiungendo --write-out %{http_code}
resi 204
. "
Un piccolo elenco di URL server captive portal utilizzabili nella Cina continentale (testati personalmente)
https://captive.v2ex.co/generate_204 (ospitato da v2ex.com)
https://connect.rom.miui.com/generate_204 (ospitato da Xiaomi, utilizzato per impostazione predefinita su MIUI)
https://noisyfox.cn/generate_204 (ospitato da noisyfox.cn)
https://www.google.cn/generate_204 & https://developers.google.cn/generate_204 (ospitato da Google)
https://www.qualcomm.cn/generate_204 (ospitato da Qualcomm)
Ulteriori note
La fonte cita anche i parametri captive_portal_user_agent
, captive_portal_fallback_url
e captive_portal_other_fallback_urls
:
captive_portal_fallback_url
(> = Android 7.1.1) ovviamente dovrebbe contenere un singolo URL, mentre
captive_portal_other_fallback_urls
contiene più ulteriori URL (elenco separato da virgole, quindi gli URL potrebbero non contenere virgola).
Ma ho personalmente condotto test su Android 8.0.0 ed entrambi i parametri di fallback non funzionano. Supponendo che siano dichiarazioni senza un'implementazione per ora.
Alcuni esempi di impostazioni del portale captive di Android in Cina mostrano l'uso di alcune delle impostazioni sopra:
le impostazioni della shell adb rendono globale captive_portal_http_url http://www.google.cn/generate_204
le impostazioni della shell adb rendono globale captive_portal_https_url https://www.google.cn/generate_204
le impostazioni della shell adb rendono globale captive_portal_fallback_url http://www.google.cn/generate_204
le impostazioni della shell adb mettono globale captive_portal_other_fallback_urls http://www.qualcomm.cn/generate_204
Sapendo che, le "lamine di stagno" potrebbero persino istituire il proprio servizio di verifica. Con Apache:
RewriteEngine On
RewriteCond% {REQUEST_URI} / generate_204 $
RewriteRule $ / [R = 204, L]
o con Nginx:
location / generate_204 {return 204; }
Riferimenti
1 , 2 (cinese), 3 (cinese)
new URL("http", mServer, "/generate_204");
(conmServer
l'inizializzazione dicaptive_portal_server
se impostato) - quindi questo dovrebbe essere solo il nome del server (o IP) lì (che era probabilmente uno dei motivi per cui non è riuscito per me su un dispositivo MM). Non sono sicuro quando sia cambiato allora - ma da quello che scrivi probabilmente con N. Per il 204, l'ho trovato - quindi sembra che abbia assunto correttamente: solo il codice 204, nessun contenuto.