Back

iOS 27 越狱实录:利用 usbliter8 为 iPhone 11 Pro 刷入自定义固件

iOS 27 越狱实录:利用 usbliter8 为 iPhone 11 Pro 刷入自定义固件

2026-07-25全能玩机22 Views

高风险警告

本文内容仅面向安全研究人员和有经验的开发者,用于个人设备研究。

刷入本文所述的自定义固件会彻底清除设备数据,并破坏 SEP、锁屏密码、Wi-Fi、基带、部分蓝牙功能以及 Apple 在线服务。

**请勿在主力设备上尝试。**目前仅支持备用的 iPhone 11 Pro。其他型号需要重新寻找内核及系统组件偏移,不能直接照搬本文参数。

操作前请确认设备归自己所有,并自行承担刷机失败、设备变砖及数据丢失等风险。

项目概述

这次实验的目标,是在 iPhone 11 Pro 上运行 iOS 27.0 Beta 2,并通过 usbliter8 将设备送入 PWN DFU 模式,随后恢复经过修改的自定义固件。

整个过程大致分为四个阶段:

  1. 使用 RP2350 开发板触发 SecureROM 漏洞;
  2. 制作并恢复自定义固件;
  3. 启动 SSH Ramdisk,提取设备相关文件;
  4. 完成正常启动、USB 网络共享和越狱环境部署。

目前这套方案只针对 iPhone 11 Pro 完成适配。由于不同设备的内核、DeviceTree 和系统组件偏移并不相同,其他机型需要单独分析。


一、准备硬件

usbliter8 利用了 Paradigm Shift 公开的 SecureROM 漏洞,需要通过搭载 RP2350 芯片的开发板触发。

该方案主要面向 A12、A13 设备,同时也支持使用 S4、S5 芯片的部分 Apple Watch 型号。

本次使用的硬件是:

  • Raspberry Pi Pico 2
  • 一根可以剪开的 Lightning 数据线
  • 一台 Mac
  • 一部备用 iPhone 11 Pro

需要先按照原版 usbliter8 项目的说明,将对应程序写入 Raspberry Pi Pico 2。

Raspberry Pi Pico 2 接线示意 usbliter8 硬件连接

Lightning 数据线接线

剪开 Lightning 数据线后,按照下面的方式连接:

线材颜色信号Pico 2 引脚
红色VBUSVBUS
黑色GNDGND
白色D-G13
绿色D+G12

接线前务必确认数据线内部线序。不同厂商的数据线可能使用不同配色,不能只依赖颜色判断。


二、下载固件并安装工具

本文使用的固件为:

iOS 27.0 Beta 2,适用于 iPhone 11 Pro

固件版本号:24A5370h

IPSW 下载地址:

从 Apple 服务器下载 iOS 27.0 Beta 2 IPSW

在 Mac 上安装所需的 Python 工具:

pip3 install requests pyimg4 pymobiledevice3

后续命令均在 work-27.0b2 目录中执行:

cd work-27.0b2

三、自定义固件包含的主要补丁

原始项目来自 wh1te4ever,其中已经包含大量针对自定义固件和 Ramdisk 的修改。

为了让 iOS 27.0 Beta 2 在目标设备上继续完成恢复和启动,本次又补充了几项修复。

组件偏移修改值作用
kernel isDeviceInRestoreMode文件偏移 0x2894b68,VA 0xFFFFFFF009898B6820 00 80 d2 c0 03 5f d6绕过 USB Restricted Mode
kernel sandbox file_check_mmap0x2f774e000 00 80 d2 c0 03 5f d6允许执行 /var/jb 中的文件
kernel AMFIIsCDHashInTrustCache0x1f1ebe0mov x0,#1; ...调整信任缓存检查
DeviceTree ephemeral-storageu32=1解决恢复进度停在 99% 的问题
coreauthd0x95c0NOP避免 SEP 不可用导致服务崩溃
ctkd0x1b380x1b3cmov x0,#0; ret避免 SEP 相关崩溃
mobileactivationd should_hactivate0x2ebb1420 00 80 52调整激活状态判断
mobileactivationd getActivationState0x327cb00x327d100x327d140x327d18NOP/ADRP/ADD/NOP将状态调整为 Activated

针对沙盒挂载和文件操作,还修改了以下位置:

mount_check_mount    0x2f75640
remount              0x2f75474
umount               0x2f75110
vnode_check_rename   0x2f7019c

这些偏移仅适用于本文指定的固件和设备组合。即使是同一设备,只要系统版本或编译号不同,也不能保证偏移仍然有效。


四、进入 PWN DFU 模式

首先让 iPhone 进入标准 DFU 模式,然后将设备连接到前面准备好的 Pico 2 PWN DFU 工具。

触发过程中,可以通过 Pico 2 的指示灯判断状态:

  • 指示灯闪烁两次:正在尝试利用;
  • 指示灯保持常亮:利用成功;
  • 指示灯熄灭:利用失败,需要重新进入 DFU 后再试。

成功后,将 iPhone 重新连接到 Mac。

在 macOS 中打开:

系统信息 → USB → Apple Mobile Device(DFU Mode)

如果设备信息中出现下面的标记,说明已经进入 PWN DFU 模式:

PWND:[usbliter8]

五、恢复自定义固件

确认设备处于 PWN DFU 模式后,进入工作目录:

cd work-27.0b2

生成自定义固件:

./make_cfw.py

这个过程需要管理员权限。根据终端提示输入 Mac 的登录密码即可。

制作完成后,启动 TSS 代理并执行恢复:

python3 tss_proxy_server.py

保留这个终端窗口,再打开一个新的终端窗口运行:

cd work-27.0b2
./restore_cfw.sh

恢复开始后,iPhone 屏幕上会出现进度条。等待脚本执行完毕,不要中途拔出数据线或关闭终端。

完成后,设备通常会重新进入恢复模式。


六、启动 SSH Ramdisk

设备回到恢复模式后,需要再次执行以下操作:

  1. 重新进入 DFU 模式;
  2. 再次连接 Pico 2;
  3. 确认进入 PWN DFU 模式;
  4. 将设备接回 Mac。

生成并启动 Ramdisk:

./get_rd.py
./boot_rd.sh

随后建立 USB 端口转发:

iproxy 2222 22

保留该窗口,再打开一个终端,通过 SSH 连接设备:

../tools/sshpass -p alpine ssh \
  -o StrictHostKeyChecking=no \
  -o UserKnownHostsFile=/dev/null \
  -p 2222 root@localhost

默认信息如下:

用户名:root
密码:alpine
端口:2222

进入设备后,以只读方式挂载对应的 APFS 分区:

/sbin/mount_apfs -o rdonly /dev/disk1s6 /mnt6

查找 SEP 固件文件:

find /mnt6 -name sep-firmware.img4

找到文件后,通过 scpcat 将其传回 Mac,并命名为:

dev_sep.img4

回到 Mac,提取与设备相关的数据:

../tools/img4tool -e -m t8030_apticket.der dev_sep.img4

如果终端持续输出 SSHRD 启动日志,通常说明 Ramdisk 已经正常运行。


七、正常启动系统

Ramdisk 阶段完成后,准备正常启动所需文件:

./get_boot.py

然后执行:

./boot.py

如果补丁和设备数据匹配,iPhone 将开始正常启动。

进入系统后,可以使用 Dropbear 配合 iproxy 建立 SSH 连接。默认密码仍然是:

alpine

建议在环境稳定后立即修改默认密码。

接下来可以通过 SSH 安装 bootstrap 和 Sileo,也可以在 SSHRD 环境中提前完成相关文件部署。


八、通过 USB 恢复网络

由于 Wi-Fi 和基带功能已经损坏,设备无法像普通 iPhone 一样连接网络。

如果需要安装软件包,可以通过 USB 共享 Mac 的网络:

./net_up.sh

该脚本会自动配置 Mac 与 iPhone 之间的 USB 网络转发。

网络连通后,即可继续部署 bootstrap。正常情况下,完成部署并刷新应用注册信息后,Sileo 会出现在主屏幕上。


九、Sileo 没有显示怎么办

如果 bootstrap 已经安装,但主屏幕上没有出现 Sileo,可以重新进入 SSHRD 模式。

找到:

/var/jb/Applications/Sileo.app

然后将其移动到系统分区中的:

/Applications/

实际系统分区可能挂载在 /mnt1/mnt2,请根据当前 APFS 挂载情况判断。

重新正常启动后,执行:

uicache

系统完成应用注册后,Sileo 应该会出现在主屏幕。

bootstrap 中的符号链接也需要正确修复,具体文件结构可以参考:

bootstrap_1900.tar.zst

十、主屏幕只剩三个应用的处理方法

如果启动后只能看到“设置”“电话”和“反馈”等少量应用,通常是系统应用仍停留在暂存目录中。

重新进入 SSHRD,并确认系统分区挂载位置后执行:

for a in /mnt2/staged_system_apps/*.app; do
  b=${a##*/}
  [ -e "/mnt1/Applications/$b" ] || cp -R "$a" /mnt1/Applications/
done

这段命令会检查暂存的系统应用,并将缺失的应用复制到系统的 /Applications 目录。

不同设备状态下,/mnt1/mnt2 对应的分区可能不同。执行前应先确认挂载点,避免把文件复制到错误的卷。

完成后重新启动设备,并再次执行:

uicache

最终效果

完成自定义固件恢复、正常启动、bootstrap 部署和应用注册后,iPhone 11 Pro 即可运行修改后的 iOS 27.0 Beta 2 环境。

运行 iOS 27.0 的越狱 iPhone 11 Pro

需要再次强调的是,这并不是一套适合日常使用的越狱方案。

在当前状态下,设备会失去多项核心功能,包括:

  • 锁屏密码和部分 SEP 相关能力;
  • Wi-Fi;
  • 蜂窝网络和基带;
  • 部分蓝牙功能;
  • Apple 激活及在线服务;
  • 正常系统更新和恢复能力。

它更适合作为一套 iOS 底层研究环境,用于分析启动链、自定义固件、内核补丁、Ramdisk 和系统安全机制。

不要在主力设备上尝试,也不要在没有完整备份的情况下操作。