Настройка поведения портала в неволе
captive_portal_detection_enabled
(<= Android 7.1.1)
- работает как описано в теле вопроса
captive_portal_mode
(> = Android 7.1.2)
- работает как описано в теле вопроса
Настройка URL портала (ов)
captive_portal_server
(<= Android 6.0.1)
- Сервер, на котором находится
generate_204
страница, используемая для внутреннего создания URL-адреса для обнаружения неавторизованного портала ( new URL("http", mServer, "/generate_204");
устарел с Android 7.0, см. Ниже)
captive_portal_use_https
(> = Android 7.0)
0
: Не используйте HTTPS для проверки сети
1
: Использовать HTTPS (по умолчанию)
captive_portal_http_url
(> = Android 7.0)
- URL-адрес, используемый для обнаружения неактивного портала HTTP - используется в паре с
captive_portal_use_https
(установлено на 0
)
- > = Android 7.1.1: ОС больше не добавляет
generate_204
URL-адреса автоматически, что дает возможность ввода URL-адреса
captive_portal_https_url
(> = Android 7.0)
- URL-адрес, используемый для обнаружения HTTPS-портала: использовать в паре с
captive_portal_use_https
(установить в 1
)
- > = Android 7.1.1: ОС больше не добавляет
generate_204
URL автоматически
Требование к используемому URL
Код ответа HTTP 204 («без содержимого») с сервера используется для проверки, дополнительный контент не требуется: возьмите, например, URL-адрес обнаружения по умолчанию, curl clients3.google.com/generate_204
возвращает пустой и проверяет ответ HTTP, добавляя --write-out %{http_code}
возврат 204
. '
Небольшой список доступных URL-адресов серверов портала в материковом Китае (лично проверено)
https://captive.v2ex.co/generate_204 (размещено на v2ex.com)
https://connect.rom.miui.com/generate_204 (размещено на Xiaomi, по умолчанию используется в MIUI)
https://noisyfox.cn/generate_204 (размещено на noisyfox.cn)
https://www.google.cn/generate_204 & https://developers.google.cn/generate_204 (размещено в Google)
https://www.qualcomm.cn/generate_204 (размещено в Qualcomm)
Дальнейшие заметки
Источник также упоминает параметры captive_portal_user_agent
, captive_portal_fallback_url
и captive_portal_other_fallback_urls
:
captive_portal_fallback_url
(> = Android 7.1.1) очевидно должен содержать один URL, а
captive_portal_other_fallback_urls
содержит несколько дополнительных URL-адресов (список, разделенный запятыми, поэтому URL-адреса могут не содержать запятую).
Но я лично проводил тесты на Android 8.0.0, и оба запасных параметра не работают. Предполагая, что они являются объявлениями без реализации на данный момент.
Некоторые примеры настроек портала Android в Китае демонстрируют использование некоторых из указанных выше настроек:
настройки оболочки adb поставьте глобальный captive_portal_http_url http://www.google.cn/generate_204
настройки оболочки adb поставьте глобальный captive_portal_https_url https://www.google.cn/generate_204
настройки оболочки adb поставьте глобальный captive_portal_fallback_url http://www.google.cn/generate_204
настройки оболочки adb поставьте глобальные captive_portal_other_fallback_urls http://www.qualcomm.cn/generate_204
Зная, что «оловянные фольги» могут даже создать собственную службу проверки. С Apache:
RewriteEngine On
RewriteCond% {REQUEST_URI} / generate_204 $
RewriteRule $ / [R = 204, L]
или с Nginx:
location / generate_204 {return 204; }
Ссылки
1 , 2 (китайский), 3 (китайский)
new URL("http", mServer, "/generate_204");
(сmServer
инициализацией,captive_portal_server
если установлен) - так что это должно быть просто имя сервера (или IP) там (что, скорее всего, было одной из причин, по которой он не удался для меня) на устройстве ММ). Не уверен, когда это изменилось тогда - но из того, что вы пишете, вероятно, с N. Для 204 я нашел это - так что, похоже, я правильно предположил: только код 204, никакого контента.