介绍
几年前有名的华为封杀安卓事件。
华为要求中国政府封杀过一些竞争对手的网路服务,其中就包含 Google 系产品用于网路联通性检查的“connectivitycheck.gstatic.com/generate_204”。原生安卓系统的 DNS 与联通性检查网址都是硬编码到系统里的,用户不能通过正常手段进行更改。
如果在固定Wifi下使用,可以设置一下Wifi热点的captive_portal_url。安卓系统会优先使用路由器派发的联通性检查网址。
“受限”原因
自 Android 5.0 起,谷歌引入了「Captive Portal」的机制,用于检测 WiFi网络认证是否正常。
该机制默认检测访问的是谷歌服务器,需要科学才能正常访问谷歌服务器,如若没有 WiFi就会出现网络受限的情况,WiFi图标上会出现一个感叹号标志,导致系统误以为你的网络不好,从而使网络不稳定。
解决办法
方式一(推荐):修改url
前往 Android Studio 官网,下载 adb工具。
adb工具下载链接:【点击跳转】
下载好后,打开目录,并在目录下,在资源搜索栏中输入 CMD 打开命令行(无需root权限)。
1
2adb shell settings delete global captive_portal_https_url
adb shell settings delete global captive_portal_http_url输入信息的服务器信息
1
2adb shell settings put global captive_portal_http_url http://captive.v2ex.co/generate_204
adb shell settings put global captive_portal_https_url https://captive.v2ex.co/generate_204补充:也可以用“小米”或者“华为”的 url。
1
2小米:http://connect.rom.miui.com/generate_204
华为:http://connectivitycheck.platform.hicloud.com/generate_204切换为飞行模式,再切换回来。
方式二:修改AOSP源码
推荐使用 MT管理器软件
在AOSP源码中禁用「Captive Portal」机制
在AOSP目录下检索“NetworkMonitor.java”文件
AOSP 11.0.0_r41中文件在以下目录:
packages/moudules/NetworkStuack/src/com/android/server/connectivity/NetworkMonitor.java
部分版本中文件在以下目录:
frameworks/base/services/core/java/com/android/server/connectivity/NetworkMonitor.java修改其中的代码。
找到:1
mIsCaptivePortalCheckEnabled = getIsCaptivePortalCheckEnabled();
修改为:
1
mIsCaptivePortalCheckEnabled = false;