0x0 背景
近几年iOS的安全一直在加固,导致越狱越来越难出现。不过我本身越狱的原因最重要的一部分就是安装第三方App。虽然AltStore和Sideloadly的出现让证书续签能够自动化,但不常用的机子还是免不了隔三差五需要重新安装的情况出现。
不过苹果倒也在在一些小的方面多次搞砸过。比如多个漏洞导致的MacDirtyCow利用及后续的KFD利用,它们能实现内核内存读写,催生了一些修改系统字体、进入监管模式等一些工具的出现。前者支持到iOS 16.1.2后者支持到iOS 16.6b1。
而CoreTrust漏洞导致TrollStore的出现,它是个能永久签名应用的工具,且安装好后不需要借助PC,支持到iOS 15.6。并且由于其安装的App为系统应用,还具有更高的权限,如开启JIT、调用通知接口等。后来苹果第二次搞砸CoreTrust漏洞为TrollStore添加了到iOS 17.0的支持。
刚好我的设备为了利用MacDirtyCow以及后续可能出现的越狱,Delayed OTA到iOS 16.1.2后就一直没升级过,这次就准备安装TrollStore 2。
其实还可以保留TrollStore并更新到iOS 17.0。
需要注意Delayed OTA到iOS 17.0截止至2023年12月20日。
0x1 步骤
其实国外大佬们已经写好了详细的安装步骤。针对不同机型的不同系统版本,安装方式也不尽相同,且伴随工具的更新也会有不同程度的优化,建议自行参考国外的最新安装教程安装。而如果想要升级到iOS 17,还需要结合做些额外的操作来保留TrollStore。
简要步骤(详细步骤建议查看原版教程):
iOS 16.1.2所有机型可以使用TrollInstallerMDC工具来安装。
- 确保
iOS自带的系统应用提示还在,如果删除了那就去下载回来。之后会将提示应用替换为工具软件。 - 手机开启开发者模式。
- 使用Sideloadly签名并安装
TrollInstallerMDC。 - 信任安装好的
TrollInstallerMDC。 - 打开
TrollInstallerMDC并授权。 - 等待其出现
Successfully replaced Tips binary的日志出现,这说明提示应用已经被替换了。 - 打开
提示。 - 点击
Install TrollStore并等待完成。 - 卸载重装
提示应用。 - 桌面上找到
TrollStore并打开。 - 点击
Settings并选择Install Persistence Helper。 - 寻找你想替换为工具的系统应用,可任意选择,这里还是选择
Tips。 - 打开
提示应用发现是TrollStore Helper,证明安装成功了。
至此iOS 16.1.2上的TrollStore 2就安装完成了。如果想要更新到iOS 17.0,那么继续做以下步骤。
避免TrollStore被删除
- 下载Filza文件管理器并通过
TrollStore安卓,后面用于获取并赋权工具应用为了保险更新后能够找回。 - 打开
Filza,选择底栏的星形按钮,选择App管理器。 - 找到
提示应用,点击其右侧的信息图标按钮。 - 点击
主程序,找到Tips.app,再次点击信息按钮。 - 将路径复制出来,类似
/var/containers/Bundle/Application/6797F3A7-0BE1-4C6B-A2E8-42BDE9F975BD。 - 拼接命令为
chflags -R schg,schange,simmutable /var/containers/Bundle/Application/6797F3A7-0BE1-4C6B-A2E8-42BDE9F975BD。 - 再次点击下方的星形按钮,选择
[Root]。 - 找到
/usr/bin/vm_stat并点击运行。 - 粘贴进命令并执行。
- 再次回到第4步中
Tips.app的位置,尝试左滑删除,如果提示没有权限导致删除失败,那就成功了。如果被删掉了就重新下载回提示应用并重复上面的操作。
Delayed OTA更新至 iOS 17.0
Windows电脑使用Updating (Blobless) (Advanced)中提到的Cowabunga Lite实现(其实16.1.2可以直接在手机上用Cowabunga进入监管模式)。- 关闭设备中的
查找功能。 - 下载并打开Avangelista/CowabungaLiteWindows (github.com)。
- 连接设备到电脑。
- 找到
Setup Options点击Enable Supervision并打勾。 - 点击
Apply,Apply Changes,手机会重启进入监管模式。 - 设备中在
Safari浏览器打开Delayed OTAs - ramblings (dhinakg.github.io)并下载iOS 17 (21A329)的描述文件。 - 设置中安装下载的描述文件。
- 点开设置->通用->软件更新->升级到iOS17。确保显示的版本是
iOS 17。 - 上滑,清掉所有应用。
- 打开
TrollStore及提示(其实打开显示替换后的TrollStore Helper)。 - 进到设置开始更新系统,确保
TrollStore和提示在后台运行。 - 更新完成后从后台切出
提示(TrollStore Helper),点击Refresh App Registrations。 - 参考上面步骤,换条命令执行
chflags -R noschg,noschange,nosimmutable /var/containers/Bundle/Application/6797F3A7-0BE1-4C6B-A2E8-42BDE9F975BD,还原文件夹权限。 - 卸载
提示,并重新下载安装。 - 打开
TrollStore,点击Settings并选择Install Persistence Helper进行重装。
0x2 结尾
至此安装及升级就完成了,但我更新到iOS 17.0的中途还是后悔放弃了。新版本iOS并没有什么重大更新,而且更新后会同时失去MacDirtyCow和KFD,可玩性大大降低。目前也没听说有什么漏洞可供利用。