12 votes

Paramètres du portail captif

があります。 plusieurs paramètres du portail captif que l'on pourrait appliquer à un appareil Android via settings put global - le plus célèbre étant probablement

settings put global captive_portal_detection_enabled 0

pour désactiver complètement la vérification du portail captif (pour Android < 8). Quelqu'un peut-il expliquer comment utiliser les autres - par exemple pour définir un "serveur de portail captif personnalisé pour les étains" ? Par exemple, on ne peut pas simplement faire un

settings put global captive_portal_server example.com

car cela entraînerait, dans la plupart des cas, l'échec permanent de la vérification du portail captif (contexte : en faisant cela, la vérification du portail construirait une URL http://example.com/generate_204 et vérifier par rapport à cela, en attendant une réponse spécifique).

Donc, à part la simple désactivation de la vérification du portail captif (qui peut, comme je l'ai lu, entraîner d'autres problèmes comme le fait de ne pas être redirigé vers le bon portail dans certains cas), que peut-on faire d'autre pour améliorer la confidentialité dans ce contexte ?

Exemples (si je les ai bien compris) :

  • captive_portal_mode (Android 8+ ?):
    • 0 : Ne pas essayer de détecter les portails captifs
    • 1 : Demander à l'utilisateur de se connecter
    • 2 : Se déconnecter immédiatement du réseau et ne pas se reconnecter à ce réseau à l'avenir.
  • captive_portal_detection_enabled (Android <8 ?):
    • 0 : Désactiver complètement les contrôles du portail captif
    • 1 : L'activer (par défaut)

Bien que ces exemples soient assez simples : comment utiliser les autres paramètres ?

12voto

Andy Yan Points 9360

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)

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X