iPhoneX Jailbreak Knowledge

环境准备

  • Mac OS 13.0.1 (22A400) (其他系统一般没有问题)
  • Mac 安装 Homebrew , 以及 brew install libimobiledevice libirecovery 也需要安装 Python , 比如我 brew install python@3.9 ,已安装的忽略
  • iPhoneX 系统 15.4.1 (笔者手机系统, 注意本教程仅适用于 iOS 15.0-15.7.1 , iPhoneX 以及之前的设备!!!! )
  • 建议使用 USB-A to Lightning 的数据线, 不要用 Type C , 否则无法进入 DFU 模式
  • 手机提前安装 提示(Tips) 应用 (脚本会替换掉这个应用)
  • 手机提前去掉 密码
  • 越狱工具 palera1n 适用于 iOS 15.0-15.7.1 , iPhoneX 以及之前的设备 , 注意是不完全越狱

上面的准备好了, 再进行真正的越狱操作

插件

DFU

DFU(Device Firmware Update)是一种特殊的状态,可用于在设备上进行固件更新。当设备处于DFU模式时,可以使用计算机连接到设备并安装新的固件,而无需使用设备上的操作系统。

iPhone 越狱首先需要进入 DFU 模式, 而不同设备的操作不同
进入 DFU 模式的方式 (除了 IPhoneX)
各型号iPhone手机进入DFU模式方法教程
How to put your iPhone or iPad in DFU mode to fix it as a last resort

而 iPhoneX 的操作步骤比较特殊 (错误的 DFU 模式只会保持 60s, 之后会自动重启), 下面是正常的方式
参考YouTube 教程
注意: 多读两遍再操作, 且最好旁边有秒表 ⏱ , 且电脑安装爱思助手 方便查看 DFU 状态
步骤如下

  • 分别快速 按下并松开 音量+ 和 音量 - (屏幕左侧侧边栏)
  • 长按 side button (屏幕右侧侧边栏的息屏键)
  • 即便屏幕变黑, 一直到 苹果 logo 出现, 又消失 , (消失之前不要有其他操作) 注意, 消失后 立刻按 音量 - , 且不要松开 side button
  • 3s 之后 松开 side button , 长按保持音量
  • 几秒后 检测到 DFU (比如 File 或者爱思助手会有状态提示)

palera1n 越狱

palera1n 官方

注意: 适用于 iOS 15.0-15.7.1 , iPhoneX 以及之前的设备 因为是基于 checkm8
越狱的, 至于更高系统, 在 ios16 分支 正在测试, 不过不建议尝试其他系统
注意目前的越狱基本都是不完全越狱, 重启后需要再次重复以下步骤, 越狱, 所以记得充电, 不要轻易关机或者重启

  1. palera1n 安装
git clone --recursive https://github.com/palera1n/palera1n && cd palera1n
  1. DFU 模式

按照上面的指南或者相关链接

  1. 执行越狱命令
// 我的系统是 15.4.1 , 所以按照自己的系统替换即可  不建议携带 --semi-tethered 参数 
./palera1n.sh --tweaks 15.4.1
  1. 越狱过程…

😢 越狱的时候 没有截图, 省流
可参考 palera1n简体中文版 iOS 15.0 ~ 15.7.1最好用的越狱 这篇文章, 文章封装的源码并不是最新的, 可能会有兼容问题, 推荐官网最新代码

按照脚本的 提示确认, 进入真正的越狱步骤
脚本执行时间会很长,

安装完系统后, 会重新要求, 进入 DFU 模式, (iPhoneX 可以忽略脚本的 DFU 操作提示, 脚本提示的 DFU 步骤是错误的, 所以建议按照我上面iPhoneX 步骤)
用户手动操作,进入DFU 后, 按任意键, 确认进入 DFU 后面的脚本操作,

最终会提示 已经越狱成功, 首次越狱需要 , 打开手机上的 提示(Tips) 应用, 点击 Install 按钮, 安装必要软件,
安装完成后, 就可以看到 Sileo 这个插件商店应用了

插件安装

iOS 15 后, 插件开发常用的依赖库 APPList 已经不支持了, 所以大部分以前的插件都会失效
可用的插件源 ios15-tweaks
而 我自己常用的插件 Flex , Woodpecker , Reveal , Lookin 不幸不支持 iOS 15 了,
所以自己就建了一个私有源 todayios-cydia
更新了我常用的几款插件

ps: 补充一个 tiktok-god 看名字就知道

动态库插件开发

省流 可参考我项目里的 LookinLoader 代码

插件按照聚合方式打包,
LookinLoaderPrefs 是插件的主体功能, 包含必要的 framework 和 资源

外部是通用文件

  • control 插件的配置文件, 包含依赖和说明
  • LookinLoader.plist 插件注入的时机
  • Tweak.xm 注入的功能代码
  • Makefile 编译配置, 包含了上面的聚合插件
  • build_dylib.sh 是用于一些 动态库 生成的脚本, 并对动态库进行签名 可根据实际情况处理