修改安卓检测网络的目标地址Captive Portal

我们在使用一些ROM的国际版或者网上的一些开源ROM时,经常会发现手机的网络信号显示一个叉。通常不影响使用,但影响心情。

实现原理是向指定的服务器定时提交一个请求,如果能返回一个只有头部(Header)的响应(Status Code 204),表示网络已连接。所以服务器的URL一般以generate_204结尾。此功能( Captive Portal Server)在需要 wifi 网页登录验证时非常有用,它可以根据结果打开验证页面。

由于众所周知的原因,默认的测试服务器google.com是不能用了,所以使用默认值的手机会出现小叉。

下面是如何修改默认的服务器。可以打开手机的调试模式连接电脑修改,也可以在手机上安装终端工具,连接本地shell修改。

删除变量:(删除以后默认启用)
adb shell settings delete global captive_portal_mode
关闭检测:
adb shell settings put global captive_portal_mode 0
查看当前状态:
adb shell settings get global captive_portal_mode

删除(删除默认用HTTPS)
adb shell settings delete global captive_portal_https_url
adb shell settings delete global captive_portal_http_url
分别修改两个地址
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://google.cn/generate_204 或者 http://www.v2ex.com/generate_204 .

参考了 https://www.evil42.com/index.php/archives/17/