
注意:仅限Apple开发者!!!
目前仅支持 iPhone 11 Pro 型号
如果你是终端用户,这不是为你准备的!!
我已经分享了我基于 @wh1te4ever 的 usbliter8 作品,在 iPhone 11 Pro 上实现的 iOS 27 越狱。你可以自己测试它。完整教程
https://github.com/34306/usbliter8-fun
警告!
运行此程序(恢复自定义固件)会删除您设备上的所有数据并导致所有功能失效:SEP、密码、Wi-Fi、基带、蓝牙(部分功能失效)以及所有 Apple 服务,因此请勿在您的主力设备上运行此程序,仅可在备用iPhone 11 Pro上运行。本教程仅面向喜欢破坏设备的开发者!
目前仅支持iPhone 11 Pro 。其他设备需要找到正确的偏移量才能正常工作。
SecureROM 存在一个漏洞(由 Paradigm Shift 发布),需要使用RP2350芯片才能将设备进入 PWN DFU 模式。该漏洞仅支持 A12 和 A13(Apple Watch 系列的 S4 和 S5 也受支持)。
你需要将原始源文件放到usbliter8开发板上,才能运行漏洞利用程序。

我使用的是树莓派 Pico 2(搭载 RP2350 芯片)和一根剪断的 Lightning 数据线:
安装要求:
pip3 install requests pyimg4 pymobiledevice3我们在文件夹里工作work-27.0b2!
wh1te4ever 的原始源代码包含了很多补丁,你可以在代码中看到。
我做了一些修改,使它能够正常运行:
| 成分 | 抵消 | 价值 | 笔记 |
|---|---|---|---|
核心isDeviceInRestoreMode | 文件0x2894b68(VA 0xFFFFFFF009898B68) | 20 00 80 d2 c0 03 5f d6 | USB 限制模式绕过 |
内核沙箱file_check_mmap | 0x2f774e0 | 00 00 80 d2 c0 03 5f d6 | 允许/var/jb执行(+ mount_check_mount 0x2f75640,,,)remount 0x2f75474umount 0x2f75110vnode_check_rename 0x2f7019c |
核心AMFIIsCDHashInTrustCache | 0x1f1ebe0 | mov x0,#1;... | 相信一切 |
设备树ephemeral-storage | — | u32=1 | 进度条达到 99% |
coreauthd | 0x95c0 | NOP | 反SEP碰撞 |
ctkd | 0x1b38/1b3c | mov x0,#0; ret | 反SEP碰撞 |
mobileactivationdshould_hactivate | 0x2ebb14 | 20 00 80 52(mov w0,#1) | 黑客激励 |
mobileactivationdgetActivationState | 0x327cb0/d10/d14/d18 | NOP/ADRP/ADD/NOP→ “已激活” | 双保险 |
launchddisabled.plist | — | 5 个标签 →true | 跳过设置(ScreenTimeAgent 死锁) |
用户空间字节补丁以脚本形式编写patches/userland_patches.py(coreauthd,,ctkd)mobileactivationd。launchd 覆盖是 plist 编辑,而不是字节补丁——参见patches/disable_screentime.py。
偏移量是针对24A5370h / iPhone12,3特定版本的。对于任何其他版本,请在 IDA 中重新验证它们。
将设备置于 DFU 模式,然后将其插入 PWM DFU 设备(上面提到的 Raspberry Pi Pico 2)。
在 Pico 2 上,漏洞利用过程中指示灯会闪烁两次,成功后指示灯会常亮。如果指示灯熄灭,则表示漏洞利用失败,请重新进入 DFU 模式并重试。
您可以通过打开系统配置→USB选项卡→Apple移动设备(DFU模式)来验证PWN模式;如果看到PWND:[usbliter8]该选项,则表示已成功。
完成 PWM DFU 模式后,将设备重新连接到 Mac,然后:
cd work-27.0b2 ./make_cfw.py # requires sudo, enter your passwordpython3 tss_proxy_server.py && ./restore_cfw.sh
屏幕上会显示恢复进度条。请等待脚本运行完毕,设备返回恢复模式。
重新进入 DFU 模式和 PWM 模式,将其重新插入 Mac,然后:
./get_rd.py ./boot_rd.sh iproxy 2222 22 && ../tools/sshpass -p alpine ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 2222 root@localhost
在通过 SSH 连接的设备上,运行:
/sbin/mount_apfs -o rdonly /dev/disk1s6 /mnt6 find /mnt6 -name sep-firmware.img4scp将cat文件传回 Mac 并命名dev_sep.img4。回到 Mac 上:
../tools/img4tool -e -m t8030_apticket.der dev_sep.img4SSHRD 日志将打印在屏幕上,这意味着 SSHRD 操作成功。
./get_boot.py ./boot.py这就是启动过程。您可以使用 Dropbear 上的 SSH 客户端iproxy(默认密码alpine)安装 Sileo 的引导程序。或者,您也可以通过 SSHRD 客户端进行安装。
首次正常启动时,设备进入设置界面后便无法继续。有两个不同的原因导致这种情况发生。
a) 激活。
./patches/userland_patches.py mobileactivationd mobileactivationd ./patches/userland_patches.py coreauthd coreauthd ./patches/userland_patches.py ctkd ctkd# re-sign each one, keeping its original entitlements (keep a .orig backup first):ldid -e mobileactivationd.orig > ents.plist ldid -S ents.plist -Cadhoc mobileactivationd
b) ScreenTime 死锁。安装程序仍然卡在加载指示器上。
ScreenTimeAgent这是一个按需任务(MachServices 有.setup)。解决方法是让 launchd 拒绝启动,这样 Setup 的 XPC 就会快速失败,而不是挂起:
scp root@10.7.0.2:/var/db/com.apple.xpc.launchd/disabled.plist ../patches/disable_screentime.py disabled.plist scp disabled.plist root@10.7.0.2:/var/db/com.apple.xpc.launchd/disabled.plist
WiFi 和基带都已损坏,所以如果您需要互联网来安装软件:
./net_up.sh这样会自动将 Mac 的网络连接通过 USB 共享给该设备。之后,执行引导程序,Sileo 就会出现。
如果 Sileo 没有显示,请重新进入 SSHRD 模式,并切换/var/jb/Applications/Sileo.app到相应的/Applications/文件夹mnt1(或mnt2取决于您的 APFS 挂载点)。重启后,uicache设备应该会显示 Sileo。该钩子已适用于整个系统。
您还需要修复引导程序的符号链接,请检查bootstrap_1900.tar.zst。
如果屏幕上只显示 3 个应用(设置、电话和反馈),请将所有暂存应用移动到/Applications/系统文件夹(位于 SSHRD 中):
forain /mnt2/staged_system_apps/*.app;do b=${a##*/}; [ -e /mnt1/Applications/$b ] || cp -R "$a" /mnt1/Applications/done
享受!

我需要感谢并引用一些我创作这部作品所借鉴的优秀项目。

