iOS 更新屏蔽及修改 DNS 方法研究

2021-12-02 23:35:33 +08:00
 wwbfred
前两天 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.comgdmf.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 加进去,这样就不会影响其他域名的解析了。
1486 次点击
所在节点    iOS
2 条回复
zhlxsh
2021-12-03 19:23:02 +08:00
不知道我理解的对不对:
1 使用 tvOS 描述文件
2 使用 DNS 描述文件,需搭建 DOT/DOH 服务器,可以作为 hosts 文件使用
3 使用 DNS 描述文件,指向错误的 DOT 服务器即可屏蔽更新
4 Surge/quantumultX 配合 DOT 或使用 js 脚本
5 自己修改 NextDNS 的配置文件
6 可越狱的版本,用 unc0ver 只选择 disable ota
wwbfred
2021-12-03 21:41:29 +08:00
@zhlxsh 昨天是想到哪儿写到哪儿的,抱歉描述的不是很清楚,我重新整理一下。
1. 本文的方法是使用 DNS 描述文件屏蔽 iOS 强制更新,对 WIFI 和蜂窝数据均有效。
2. 操作分为两个部分,一是服务端,二是本地 iPhone 端。
3. 服务端可以选用自行搭建 DOT 服务的方式,也可以使用 NextDNS 。后者更简单。
4. 客户端需要自行编写或修改 DNS 描述文件,并加载到 iPhone 中。
5. 以 NextDNS 为例,注册账户后先将 mesu.apple.comgdmf.apple.com 两个域名加到黑名单里,然后下载 DNS 描述文件。
6. 由于我们不需要所有域名都通过 NextDNS 解析,所以需要修改下载下来的 DNS 描述文件。
7. 修改的方法是添加 SupplementalMatchDomains 字段,并将需要通过 NextDNS 解析的域名,也即 mesu.apple.comgdmf.apple.com 加入其中。
8. 修改完成后安装 DNS 描述文件,检查效果。如果设置已经出现更新红点,需要先通过传统方法去除小红点后再安装描述文件。
9. 在这个思路上,自行搭载 DOT 服务可以做到更多有趣的事情。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/819669

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX