前两天 iOS 又开始强推 15 了,这次气不过研究了一下屏蔽方法。
网上主要的方法是加载 tvOS 描述文件,这个方法最大的问题是描述文件会过期,现行文件的过期时间是 22 年 1 月份。
第二个方法是强行加载描述文件,这个方法不会过期,但需要两台 iPhone 和(一台 MAC 或订阅版 iMazing),并需要抹掉现有 iPhone ,非常麻烦。
想到 iOS14 开始可以通过加载 DOH/DOT 描述文件的方法更改全局 DNS ,故确定思路:用 unbound 在闲置 vps 上部署 DOT ,通过描述文件将特定域名使用该 DOT 解析。不部署 DOH 的原因是这个做法相当于开了个网站,放在国内一定需要备案。如果放到国外也可以用 DOH 。
看了下苹果提供的文档,可以使用 SupplementalMatchDomains 字段指定解析白名单,OnDemandRules 指定解析排除名单,并通过 SSIDMatch 排除特定 WIFI 。具体格式可以参考现有 DNS 描述文件。
完成之后把
apple.com 加载到解析白名单中,并在 unbound 里把
mesu.apple.com 和
gdmf.apple.com 指向 0.0.0.0 ,大功告成。
实践效果非常好,WIFI 和蜂窝下都无法找到更新。如果已经有出现了更新小红点提示,可以先加载上述 tvOS 描述文件去除,然后加载 DNS 描述文件,再删除 tvOS 描述文件。
理论上如果只需要屏蔽更新,你不需要部署 unbound ,随便指向一个错误的 dot 地址就可以了。另外使用 Surge 等 VPN 时,DNS 设置会被覆盖,你需要把上述规则同样写到 Surge 等软件里。
这个方法还有一个好处是可以把它当成 Hosts 文件使用,这意味着你可以做到更多的事情,例如 Gmail 邮件直接接收,直连 Youtube Music 和 Google Voice 等等。
加上证书描述文件,你甚至可以在本机做 HTTPS 中间人攻击,做到例如解决 Tiktok 的 SIM 卡限制问题。不越狱能做到这点已经很神奇了。
写在这里供大家参考,顺便也为自己做个备份。
UPDATE:
我想起来了,有个服务叫 NextDNS ,可以自己添加解析黑名单。屏蔽更新用这个服务就好了,免费账户每个月 300000 次请求好像是,足够了。下载下来的 DNS 描述文件要自己修改一下,使用 SupplementalMatchDomains 字段把
apple.com 加进去,这样就不会影响其他域名的解析了。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/819669
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.