写在前面
作为一个 注重阅读体验(间歇性强迫症)的博主,以往我习惯使用首字母大写的“Android”来称呼“安卓系统”,但近些年来,谷歌官方使用的名称,均为 android,因此,以后我也将尽量使用这一名称来取代“Android”和“安卓”。
问题出现
前几天找出了自己的旧手机 红米 Note 3,给它捂热充电复活了一下(有一说一,武汉冬天的室温对锂电池非常不友好)。回忆了一遍装在上面的应用之后,我寻思着这老机型以前是个“刷机小王子”,有不少第三方适配的 ROM 可供刷入,于是我准备给它刷个较新的 android 11 或者 12 版本的系统。
去 XDA 论坛对应的机型板块翻了很久,只找到了两个 android 11 的类原生系统,最后更新还都在去年。整个看下来,发现这机型今年已经没人做第三方 ROM 了,酷安也都是求老版本 MIUI 的官改包。最后实在没办法,只好刷了个去年的基于 android 11 的 AEX(AospExtended)类原生系统。
刷好之后,按照类原生的使用规则,首先应该修改 Captive Portal 的服务器。
用过公共 Wi-Fi 或者校园网的朋友应该知道,首次连接上网络后,正常情况下是会自动弹出来一个认证页面的。Captive Portal 存在的目的,就是为了在用户连上 Wi-Fi 之后,来判断当前网络是否可用,是否需要额外认证。
而类原生 android 系统都是使用 android 默认的谷歌的服务器,由于不可抗因素,该服务器在国内网络环境下无法直连,所以我们需要手动将其修改为其它稳定可用的服务器地址,比如 MIUI 的。
所以我在刷入 AEX 后,紧接着刷入了 Magisk 以获取 ROOT 权限(修改 Captive Portal 服务器需要较高的权限才能完成),开机后,再次安装 Magisk 以管理 ROOT 权限,并安装了 CaptiveMgr 这一软件来修改为 MIUI 的服务器地址。
但很快我发现,修改完毕后,无论是连接家里的 Wi-Fi 还是手机热点,抑或是邻居家的 Wi-Fi,系统均会提示网络受限,且浏览器无法加载网页,酷安 App 无法联网。
开始解决
这就非常奇怪了,以前刷过那么多设备和系统,都没遇到过这个问题。
难道是 ROM 的 bug,或者是手机的 Wi-Fi 模块坏了?
于是我准备换个系统试试。去下了这一机型最新版本的 Mokee ROM (android 9)
刷入后,连上 Wi-Fi,一切正常。好家伙,似乎真是 ROM 的 bug
发现端倪
用了两天 android 9,心里还是按捺不住想上更新的 android 版本,所以决定刷个 android 10 版本的 Havoc-OS(2020 年网课期间给手上的米 4 刷过,很好用)
刷入之后,连上 Wi-Fi,修改完 Captive Portal 服务器地址后,依旧不能联网。
我寻思着,难道这么多 ROM 都存在这个联网 bug 吗?不应该啊。
在 CaptiveMgr 这个 App 里面捣鼓了一会儿,我发现了一些端倪。
所有的服务器节点,使用 HTTPS 测速,结果均为超时;而使用 HTTP 测速,结果均正常。
也就是说,其实网络是可以正常连接的,只是不知道为何 HTTPS 均连不上。
浏览器直接访问 http://192.168.31.1/ 也是可以正常打开路由器管理界面(小米路由器)
说明连不了网的问题出在 HTTPS 的连接上。
解决问题
HTTPS 连接能有什么问题呢?我无意瞟了一眼左上角的时间,发现时间不对。
难道是当前日期不正确,所以所有的 HTTPS 连接对应的 SSL 证书都不起作用?
我去设置里面看了看时间,好家伙,2021年1月1日,难怪。
时间手动改回正常后,Captive Portal 的网络状态,以及浏览器网页都能正常打开了。
总结
刷入类原生系统后,首先需要修改 Captive Portal 的服务器地址为国内可以直连的网址;
然后,需要确保当前手机的时间为正确的时间,才能正常联网。
因为现在绝大多数网站都已经全面使用了 HTTPS 协议,如果手机时间与正确的时间不一致,SSL 证书将无法正确加载,那么也就近似等同于网络无法正常连接
有用,感谢你