解决Nexus系列Android 5.0 Lollipop连接Wifi的感叹号问题

Update:

本文作废,正解在小狐狸.中国/45.html

简单说,执行下列命令即可解决:

1
adb shell 'settings put global captive_portal_server g.cn'

大陆地区的Nexus4, 5在升级5.0之后,连接Wifi时常会看见状态栏图标上显示一个感叹号,之后自动开启并回退到使用3G/4G上网的情况,造成设备偶尔偷跑流量。而受限于SELinux,截至目前ss等软件仍仅能工作于VPN模式而非Root模式。

传说中,造成Wifi叹号的原因是设备会不断尝试ping google.com以判断网络是否可用。于是找个可ping的Google IP,再把它写入hosts即可。

如果你不大懂怎么改hosts的话,大致步骤如下:

  1. 确保PC/Mac端有adb/fastboot。
  2. 确保手机已root,如未root可至autoroot.chainfire.eu下载对应机型的文件以adb/fastboot刷入即可。
  3. adb shell 连接手机,然后以 su 提权,确认后键入以下命令
1
2
3
4
mount -o remount,rw /system /system
echo '173.194.127.201 www.google.com' >> /etc/hosts
echo '173.194.127.201 google.com' >> /etc/hosts
reboot

重启后效果还不错,虽然偶尔仍会出现wifi叹号,但时间都很短,不至于回退至3G。