iOS 越狱与移动系统探索
亲手进行的 iOS 实验:苹果代码签名原理、AltStore 与 SideStore 侧载、Dopamine 越狱、iPad mini 6 上的 TrollStore,以及插件。
最后更新:
概述
高中时,我试验过 iOS 设备定制。我了解了苹果的代码签名机制(开发者证书和免费 Apple ID 签名),侧载过应用,使用过 Dopamine 越狱,并在 iPad mini 6 上配置过 TrollStore。
技术背景
- 越狱会解除 iOS 的部分限制,让应用和插件可以改变系统的行为。
- Dopamine 由 opa334 开发,作者将其描述为支持一系列 iOS 15 至 26 版本的半完美越狱(semi-untethered)。
- TrollStore 同样由 opa334 开发,作者将其描述为可以永久安装 IPA 文件的应用,且只适用于特定 iOS 版本。
- 软件源是越狱设备可以从中获取应用和插件的软件包仓库。
- 代码签名:iOS 只运行带有苹果认可证书签名的应用。免费 Apple ID 签名的应用 7 天后过期;AltStore 和 SideStore 会自动重签来绕开这个限制;企业证书本是用于公司内部分发。
- 有根与无根(rootful / rootless)越狱的区别在于越狱文件放在哪里:有根会修改真正的根文件系统,无根则把所有内容放在独立的前缀目录下(Dopamine 是无根越狱),所以插件要按对应的目录布局来编译。
- dylib 插件是被加载进应用、用来改变其行为的动态库;JIT(即时编译)是部分应用需要、而 iOS 默认限制的能力;Filza 是越狱设备上用来浏览文件系统的文件管理器。
我的实验
- 在运行 iOS 15.4.1 的 iPad mini 6 上使用 Dopamine 越狱,并理解有根与无根越狱的区别。
- 在同一台 iPad mini 6(iOS 15.4.1)上配置 TrollStore。
- 使用第三方软件源,并用 Filza 浏览文件系统。
- 用免费 Apple ID(7 天签名)通过 AltStore 和 SideStore 侧载应用。
- 为应用开启 JIT,并使用 dylib 插件。
- 之后的设备我只用 Apple ID 签名来安装应用(没有越狱)。
结果
这些工具我都成功运行并在自己的设备上使用过。
我学到了什么
- 哪个工具可用取决于具体设备和 iOS 版本,所以首先要读项目自己的支持版本说明。
- iOS 上应用的安装和签名方式与其他平台不同;第三方软件源和任何外部代码一样需要谨慎对待。
- 证书到期、权限(entitlements)和越狱的文件系统布局,决定了什么能装、什么不能装。
参考资料
本页用到的项目。