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 de portail captif
captive_portal_server
(<= Android 6.0.1)
- Le serveur qui contient une
generate_204
page, utilisé pour créer en interne une URL pour la détection de portail captif ( new URL("http", mServer, "/generate_204");
- obsolète depuis Android 7.0, voir ci-dessous)
captive_portal_use_https
(> = Android 7.0)
0
: N'utilisez pas 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 de portail captif HTTP - à utiliser avec
captive_portal_use_https
(définie sur 0
)
- > = Android 7.1.1: le système d'exploitation ne s'ajoute plus
generate_204
automatiquement à l'URL, ce qui donne une certaine flexibilité à l'URL d'entrée
captive_portal_https_url
(> = Android 7.0)
- L'URL utilisée pour la détection de portail captif HTTPS - à utiliser avec
captive_portal_use_https
(définie sur 1
)
- > = Android 7.1.1: le système d'exploitation ne s'ajoute plus
generate_204
automatiquement à l'URL
Obligation d'utiliser l'URL
Un code de réponse HTTP 204 ("aucun contenu") provenant 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 inspectez la réponse HTTP en ajoutant des --write-out %{http_code}
retours 204
. '
Une petite liste d'URL de serveur de portail captif utilisables en Chine continentale (testée 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 (hébergé par Qualcomm)
Notes complémentaires
La source mentionne aussi les paramètres captive_portal_user_agent
, captive_portal_fallback_url
et captive_portal_other_fallback_urls
:
captive_portal_fallback_url
(> = Android 7.1.1) est évidemment censé contenir une seule URL, tandis que
captive_portal_other_fallback_urls
contient plusieurs URL supplémentaires (liste séparée par des virgules, il est donc possible que les URL ne contiennent aucune virgule).
Mais j'ai personnellement effectué des tests sur Android 8.0.0, et les deux paramètres de secours ne fonctionnent pas. En supposant que ce sont des déclarations sans implémentation pour l'instant.
Quelques exemples de paramètres de portail captif d'Android en Chine montrent l'utilisation de certains des paramètres ci-dessus:
les paramètres du shell adb mettent global captive_portal_http_url http://www.google.cn/generate_204
les paramètres du shell adb mettent global captive_portal_https_url https://www.google.cn/generate_204
les paramètres du shell adb mettent global captive_portal_fallback_url http://www.google.cn/generate_204
les paramètres du shell adb mettent global captive_portal_other_fallback_urls http://www.qualcomm.cn/generate_204
Sachant cela, les «feuilles d'étain» pouvaient 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)
new URL("http", mServer, "/generate_204");
(avecmServer
initialisation parcaptive_portal_server
si défini) - il devrait donc s'agir simplement du nom du serveur (ou IP) là-bas (ce qui était probablement l'une des raisons pour lesquelles il a échoué pour moi sur un appareil MM). Je ne sais pas quand cela a changé alors - mais d'après ce que vous écrivez probablement avec N. Pour le 204, j'ai trouvé cela - donc il semble que j'ai supposé correctement: juste le code 204, pas de contenu.