CaptiveMgr 中文文档 下载 App

安卓各版本的 Captive Portal 检测参数变化

参数变迁总览

安卓版本关键参数备注
5.0 – 6.0.1(Lollipop / Marshmallow)captive_portal_server只有一个服务器地址参数,HTTP 探测
7.0 – 7.1(Nougat)captive_portal_http_url + captive_portal_https_url新增 HTTPS 探测,参数名从 server 改为 url
8.0 – 10(Oreo 到 Q)同上 + captive_portal_mode + captive_portal_use_https增加模式开关和 HTTPS 开关
11 及以上同 8.0+,行为更完善支持 DHCP option 114 等新协议

各版本 ADB 命令对照

如果你想手动用 ADB 修改,命令随版本不同:

Android 5.0 – 6.0.1

adb shell settings put global captive_portal_server connect.rom.miui.com

这两个版本没有单独的 HTTP_URL / HTTPS_URL 参数,改 captive_portal_server 就够了。

Android 7.0 及以上

adb shell settings put global captive_portal_http_url http://connect.rom.miui.com/generate_204
adb shell settings put global captive_portal_https_url https://connect.rom.miui.com/generate_204

两个 URL 都要设。只设一个可能导致系统仍然挂感叹号——因为它会同时跑 HTTP 和 HTTPS 两次探测,任一次失败都算失败。

全版本通用的关闭检测

adb shell settings put global captive_portal_detection_enabled 0

设成 0 就是彻底停用整套机制。设成 1 恢复。

为什么 CaptiveMgr 能一个工具通吃

你不需要关心自己设备上的参数名是什么版本——CaptiveMgr 在运行时会自动检测当前设备的系统版本,对应写入正确的参数。工具内部走的也是同一套 settings global 操作,只是帮你省了查文档和敲 adb 的功夫。

CaptiveMgr 与版本的关系

工具本身最低支持 Android 5.0,也正是 Captive Portal 检测机制开始内建的版本。5.0 以下的安卓根本没有这套检测,自然也没感叹号可清。

相关页面

关于参数值具体填什么服务器地址,参见「备选服务器清单」。关于 CaptiveMgr 手动 ADB 命令的对比,参见「与 ADB 命令方案对比」。