最简单可行的诉求
按服务器于 2026 年 6 月 30 日关闭前的写法保留。下面的请求,以及它们假定的截止日期,都保持原样。
这是 Bethesda 能为社区做的最小一组事情,让 Blades 在 2026 年 6 月 30 日之后继续在每个平台上运行——且不需要 Bethesda 或 Microsoft 持续参与。
下面所有内容可以归结为一个概念:一个最终的、便于保存的客户端构建,加上一份简短的技术交接文档。关于发行商为什么可能回应这项请求的战略框架,请见策略页面;本页是技术细节。
一个移除 FairPlay 的 iOS 构建。
一个移除了 FairPlay 加密的 iOS 客户端最终构建,并公开发布。没有它,就不可能保存 iOS 版。
App Store 二进制文件受 FairPlay 加密;解密需要一台对应 iOS 年代的越狱设备。没有干净的 IPA,AltStore 和 Sideloadly 等侧载工具也帮不上忙。社区无法自行获得干净的 iOS 二进制文件。
最后发布一个移除 FairPlay 的构建,并放在某个持久位置(Bethesda 保存页面、社区合作伙伴、单个归档链接),就能在 App Store 列表消失后继续保住 iOS。
在保存构建中提供可配置的服务器端点。
iOS 保存构建(以及对应的 Android 构建)从一个用户可覆盖的资源中读取服务器主机名——iOS 上是 Servers.plist,Android 上是对应的资源。
一个小型具名端点列表(auth、game、matchmaking 等),每项映射到主机名或 IP。默认随 Bethesda 当前生产主机发布;社区重新签名者在重新签名时替换它们。
副作用:多个独立社区无需协调即可运行自己的服务器,而且同一个客户端安装在生命周期中可以指向不同服务器。
在 Android 上:社区已经做出了今天就能实现这一点的修改版 APK。带有此功能的官方Android 构建是一种便利——法律灰区更少、用户信任更高——但不是阻塞项。没有它,Android 保存也能继续;iOS 才是这个诉求最重要的地方。
在保存构建中信任用户安装的证书。
该构建信任用户安装的 CA,因此客户端可以使用社区签名的 TLS 证书与社区服务器通信。
iOS:从保存构建中移除 NSPinnedDomains(或任何自定义证书固定)。没有固定后,应用会使用标准系统信任存储;在 iOS 上,其中已经包括用户安装的配置描述文件。
Android:在生产 manifest 中包含信任用户 CA 的 network_security_config。否则,Android 7+ 默认会拒绝用户安装的 CA。
没有这项诉求,诉求 2 中的可配置端点就毫无用处——客户端会在任何流量开始前拒绝社区服务器的 TLS 证书。
一份简短的技术交接,说明非显而易见的协议细节。
一份文档——几页文字,而不是代码发布——涵盖服务器模拟器仅凭观察流量难以重建的系统部分。
- 认证和会话令牌。格式、生命周期、客户端侧是否存在超过不透明会话 ID 的内容、服务器期望的任何内置客户端密钥。
- 存档状态权威。哪些子系统由服务器裁定(城镇、背包、角色属性),哪些由客户端裁定;同步规则;冲突解决。
- 竞技场 UDP 加密。密钥派生、libsodium AEAD 参数选择、序列编号、数据包封装。社区目前通过运行时 Frida hook 提取密钥;文档可以把它替换为干净的重实现。
- 防篡改签名。任何针对请求体的 HMAC 或请求签名方案,以及所用密钥。
- IAP 收据验证。Bethesda 服务器用于验证 Apple/Google 收据的流程,以及社区服务器应如何处理已恢复购买。
- 其他内容。任何 Bethesda 工程师认为服务器端重新实现者可能会遗漏的细节。
本页描述了向 Bethesda 提出的最简单具体诉求。更广泛的战略背景——为什么这很重要、发行商为什么可能回应、还有哪些替代方案——在策略页面。未与 Bethesda Softworks、ZeniMax Media 或 Microsoft Corporation 关联。The Elder Scrolls 是 ZeniMax Media Inc. 的商标。