V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wwbfred
V2EX  ›  iOS

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

  •  
  •   wwbfred · 2021-12-02 23:35:33 +08:00 · 1443 次点击
    这是一个创建于 1094 天前的主题,其中的信息可能已经有所发展或是发生改变。
    前两天 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 加进去,这样就不会影响其他域名的解析了。
    zhlxsh
        1
    zhlxsh  
       2021-12-03 19:23:02 +08:00 via iPhone
    不知道我理解的对不对:
    1 使用 tvOS 描述文件
    2 使用 DNS 描述文件,需搭建 DOT/DOH 服务器,可以作为 hosts 文件使用
    3 使用 DNS 描述文件,指向错误的 DOT 服务器即可屏蔽更新
    4 Surge/quantumultX 配合 DOT 或使用 js 脚本
    5 自己修改 NextDNS 的配置文件
    6 可越狱的版本,用 unc0ver 只选择 disable ota
    wwbfred
        2
    wwbfred  
    OP
       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 服务可以做到更多有趣的事情。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2589 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 06:37 · PVG 14:37 · LAX 22:37 · JFK 01:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.