2018-03-20

修复国行 iPhone 中 “使用无线局域网与蜂窝移动的应用” 设置无效的 bug

国行 iPhone 唯一一个有点作用的特色功能,对每个应用都可以单独设置是否允许使用无线局域网,和蜂窝移动联网。其他版本的 iPhone 只有对应的蜂窝移动联网的开关,默认是放行所有的无线局域网流量。

不过这个功能有不少 bug,也经常被人诟病。比如经常遇到的不弹出是否允许访问网络的权限对话框。一般来说,只要将 “无线局域网助理” 保持打开,都不会出太大的问题。

WiFi assistant

打开 “无线局域网助理”

但是,在极为罕见的情况下,也会碰到设置失效的 bug。具体表现在,针对某个或某几个应用,无论如何更改设置权限,它都不会更改了…

  • 删 App 重装,没有用;
  • 开关 “无线局域网助理”,没有用;
  • 还原网络设置,没有用;
  • 尝试各种开关组合,都不会有用的。

产生原因,往往是在安装了大量的 App 之后(大约 100 多个),并且经常增删。因为这个设置是单独保存的,并且不会随着 App 的删除而清除,随着使用时间的增加,这个文件越来越大,直到其中某个或者某几个条目乱了。

想象一下,微信,或者支付宝,或者其他一个比较重要的应用,被设置了 “关闭” 的选项而无法更改,除了全新刷机,似乎没有其他的办法(目前还不确定在从 iTunes 备份恢复后这个 corrupted file 是否会被恢复)。

Dog gaze

你特么肯定是在吓唬我

不刷机的解决办法

需要有 root 用户权限。10.3.3 用户可以使用 v0rtex-S 或者 Meridian

以 root 用户 SSH 进入手机后,只需要一句命令,删除这个文件,然后重启手机即可:

rm -f /var/preferences/com.apple.networkextension.plist

每个 App 的联网权限设置均保存在这个文件里,删除这个文件后,所有权限会被还原成 “无线局域网与蜂窝移动”,可以再次按照自己的需求进行设置更改。

其实 Apple 应该认真考虑为 iOS 开发者开放 root 权限,这样即保证了普通用户的安全性,又为开发者提供了方便。


(End)


本文采用 知识共享 署名-非商业性使用-禁止演绎 4.0 国际 许可协议
This article is licensed under Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)

沪ICP备15044284号-1