Parametri del portale captive


10

Esistono diversi parametri del portale captive che uno potrebbe applicare a un dispositivo Android tramite settings put global- probabilmente il più famoso

settings put global captive_portal_detection_enabled 0

per disattivare completamente il controllo captive del portale (per Android <8). Qualcuno può spiegare come usare gli altri, ad esempio per definire un "server del portale captive personalizzato per fogli di latta"? Ad esempio, non si può semplicemente fare a

settings put global captive_portal_server example.com

poiché ciò, nella maggior parte dei casi, causerebbe un fallimento permanente del controllo del portale in cattività (in background: facendo ciò, il controllo del portale avrebbe costruito un URL http://example.com/generate_204e verificato contro quello, aspettandosi una risposta specifica).

Quindi, a parte la semplice disattivazione del controllo del portale captive (che potrebbe, come ho letto, portare ad altri problemi come non essere reindirizzato al portale corretto in alcuni casi), cos'altro si può fare per migliorare la privacy in questo contesto?

Esempi (se li ho trovati bene):

  • captive_portal_mode (Android 8+?):
    • 0: Non tentare di rilevare portali captive
    • 1: Richiede all'utente di accedere
    • 2: Disconnettersi immediatamente dalla rete e non riconnettersi a tale rete in futuro
  • captive_portal_detection_enabled (Android <8?):
    • 0: Disabilita completamente i controlli del portale captive
    • 1: Abilitalo (impostazione predefinita)

Mentre questi esempi sono praticamente semplici: come utilizzare gli altri parametri?

Risposte:


12

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_204pagina, 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_204automaticamente 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_204l'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_204restituisce 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_urle 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)


1
Post correlati - e almeno con MM, viene utilizzato il seguente codice: new URL("http", mServer, "/generate_204");(con mServerl'inizializzazione di captive_portal_serverse 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.
Izzy

@Izzy Purtroppo le 2 opzioni di fallback non sembrano funzionare. L'uso del valore predefinito captive_portal_https_urle l'inserimento di un URL raggiungibile captive_portal_fallback_urlnon eliminano il segno di spunta e lo stesso vale per l'inserimento captive_portal_other_fallback_urls: l'impostazione captive_portal_https_urldiretta è l'unica via d'uscita. Nota che i test sono condotti sotto LTE anziché WiFi, perché per qualche ragione il mio WiFi di scuola mi indirizzerebbe sempre al portale captive anche se imposto un URL completamente non valido.
Andy Yan,

Quei parametri di fallback potrebbero essere stati introdotti con Oreo (nota che abbiamo trovato il codice Oreo per trovarli). Immagino di aver controllato Nougat, giusto? // Buona idea includere un piccolo elenco di server. AFAIK c'era anche g.cndisponibile;)
Izzy

1
@Izzy Oh sì, non me ne sono reso conto, non ho ancora eseguito il flashing di nessuno dei miei dispositivi con LOS15. Potrebbe essere degno di dare un'occhiata e, se funziona, ti aggiorno e eseguo il ping per ripulire i commenti. Inoltre, si dice che il certificato HTTPS di g.cn sia scaduto nella terraferma, quindi non è più utilizzabile per HTTPS. // Ma aspetta ... Il codice sorgente 7.1.2 contiene anche riferimenti a captive_portal_fallback_url.
Andy Yan,

Come con molte nuove funzionalità, a volte i riferimenti vengono visualizzati prima che la funzionalità sia completa. E il file a cui si fa riferimento definisce principalmente le costanti, non la funzionalità, giusto?
Izzy
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.