Configuration du comportement du portail captif
-
captive_portal_detection_enabled
(<= Android 7.1.1)
- fonctionne comme décrit dans le corps de la question
-
captive_portal_mode
(>= Android 7.1.2)
- fonctionne comme décrit dans le corps de la question
Définition d'URL(s) de portail captif
-
captive_portal_server
(<= Android 6.0.1)
- Le serveur qui détient un
generate_204
utilisée pour créer en interne une URL pour la détection des portails captifs ( new URL("http", mServer, "/generate_204");
- obsolète à partir d'Android 7.0, voir ci-dessous)
-
captive_portal_use_https
(>= Android 7.0)
-
0
: Ne pas utiliser HTTPS pour la validation du réseau
-
1
: Utiliser HTTPS (par défaut)
-
captive_portal_http_url
(>= Android 7.0)
- L'URL utilisée pour la détection du portail captif HTTP - à utiliser en paire avec
captive_portal_use_https
(réglé sur 0
)
- >= Android 7.1.1 : Le système d'exploitation ne joint plus les fichiers
generate_204
à l'URL automatiquement, donnant à l'URL d'entrée une certaine flexibilité
-
captive_portal_https_url
(>= Android 7.0)
- L'URL utilisée pour la détection du portail captif HTTPS - à utiliser en paire avec
captive_portal_use_https
(réglé sur 1
)
- >= Android 7.1.1 : Le système d'exploitation ne joint plus les fichiers
generate_204
à l'URL automatiquement
Exigence pour l'URL à utiliser
Un code de réponse HTTP 204 ("no content") du serveur est utilisé pour la validation, aucun contenu supplémentaire n'est nécessaire : prenez l'URL de détection par défaut par exemple, curl clients3.google.com/generate_204
retourne vide, et l'inspection de la réponse HTTP en ajoutant --write-out %{http_code}
renvoie à 204
.'
Une petite liste d'URL de serveurs de portail captif utilisables en Chine continentale. (testé personnellement)
https://captive.v2ex.co/generate_204 (hébergé par v2ex.com)
https://connect.rom.miui.com/generate_204 (hébergé par Xiaomi, utilisé par défaut sur MIUI)
https://noisyfox.cn/generate_204 (hébergé par noisyfox.cn)
https://www.google.cn/generate_204 & https://developers.google.cn/generate_204 (hébergé par Google)
https://www.qualcomm.cn/generate_204 (accueilli par Qualcomm)
Autres notes
La source mentionne également des paramètres captive_portal_user_agent
, captive_portal_fallback_url
y captive_portal_other_fallback_urls
:
-
captive_portal_fallback_url
(>= Android 7.1.1) est évidemment censé contenir une seule URL, alors que
-
captive_portal_other_fallback_urls
contient plusieurs autres URL (liste séparée par des virgules, les URL peuvent donc ne pas contenir de virgule).
Mais j'ai personnellement effectué des tests sur Android 8.0.0, et les deux paramètres de repli ne fonctionnent pas. Je suppose qu'il s'agit de déclarations sans implémentation pour le moment.
Quelques exemples de paramètres du portail captif d'Android en Chine montrent l'utilisation de certains des paramètres ci-dessus :
adb shell settings put global captive\_portal\_http\_url http://www.google.cn/generate\_204
adb shell settings put global captive\_portal\_https\_url https://www.google.cn/generate\_204
adb shell settings put global captive\_portal\_fallback\_url http://www.google.cn/generate\_204
adb shell settings put global captive\_portal\_other\_fallback\_urls http://www.qualcomm.cn/generate\_204
Sachant cela, les "feuilles d'étain" pourraient même mettre en place leur propre service de vérification. Avec Apache :
RewriteEngine On
RewriteCond %{REQUEST\_URI} /generate\_204$
RewriteRule $ / \[R=204,L\]
ou avec Nginx :
location / generate\_204 { return 204 ; }
Références
1 , 2 (chinois), 3 (chinois)