标识符 com.sytem.pro · 作者 D · 当前版本 0.0.2-7
systemPro 是一套手搓的越狱功能增强插件:功能面参考 SystemX(com.wkk.systembox)的逆向分析 成果(挂钩点均为实测验证过的位置),代码全部自研,设置界面为自绘的高级 UI,并通过 GitHub Actions(macOS 工作流)自动打包。
状态栏
- 状态栏日期时间:时间下方一行日期;时间/日期格式自定义、独立字号、整体上下偏移、英文日期
- 静音小图标:仅当手机处于静音模式时在状态栏显示图标(实时跟踪静音状态;支持自定义 SF Symbol 名)
- VPN 上色:VPN 已连接时,VPN / WiFi / 蜂窝一起上色(默认绿)
- 蜂窝显示 5GA(仅文字,不改网络制式)
- 伪装电量(1–100,0 恢复)
桌面与 Dock
- Dock 五图标(首次开启建议注销)
- 透明 Dock 背景
- 双击桌面锁屏 / 长按桌面锁屏(桌面空白区域触发)
- 隐藏 Home Bar / 翻页点 / 图标名称 / 小组件名称 / 名称阴影
文件夹
- 文件夹 4×4 布局(首次开启建议注销)
禁用与隐藏
- 禁用负一屏 / App 资源库 / 桌面下拉搜索
- 禁用分隔线(设置 / 电话 / 信息 分别控制)
- 通知不亮屏、充电不亮屏
- 注销不锁屏(注销/重启后直接进桌面)
相册
- 跳过删除确认、隐藏年月日缩放控件、允许全选、隐藏「我的相簿」分组
- 视频默认放音(播放视频不再默认静音;用户手动静音不受影响)
系统
- 彻底关闭 WiFi 和蓝牙:控制中心关开关时真正断电射频(非「关到明天」)
- 面容解锁进入主屏幕:Face ID 通过后自动收起锁屏
进入 设置 → systemPro:
- 首页:极简头部(插件标题 + 版本号)+ 分页入口(无副标题、无计数,纯列表)
- 分页:状态栏 / 桌面与 Dock / 文件夹 / 禁用与隐藏 / 相册 / 系统,各子页独立导航
- 卡片式分组:彩色图标块 + 标题/副标题 + 圆角开关;只有点开关本体才切换
- 编辑值子页:自定义格式/字号/符号名;偏移等数字项直接输入数字(-20 ~ 20)
- 提示走原生弹窗;注销按钮在右上角(红色)且只在首页显示:只问「是否注销?」
(确定红 / 取消蓝);改动需注销生效的功能会直接弹这个确认。
sbreload / killall 多路降级(含 roothide
.jbroot-*路径扫描),失败有指引弹窗
systemPro/
├── Makefile # 越狱插件主工程(rootless 默认;CI 可切 roothide)
├── control # 包信息(0.0.1-1)
├── systemPro.plist # 注入过滤:SpringBoard/设置/相册/电话/信息
├── Tweak.x # 主入口:进程判定 + 可选自检门禁 + 初始化
├── Common.h # 开关键名(单一来源)/ 进程判定 / 工具
├── Prefs.h / Prefs.m # 开关读取(plist 直读 + CFPreferences 回退 + 热重载)
├── PrivateHeaders.h # 需要 hook 的私有类声明
├── Features/ # 功能源码(按域分类)
│ ├── StatusBar.x # 状态栏 / 日期时间 / 静音 / 5GA / 电量
│ ├── Desktop.x # 桌面与 Dock
│ ├── Disable.x # 禁用 / 唤醒 / 注销
│ ├── Photos.x # 相册(含视频默认放音)
│ ├── VPN.x # VPN 上色(WiFi/蜂窝联动)
│ ├── Network.x # 彻底关闭 WiFi 和蓝牙
│ └── Lock.x # 面容解锁进入主屏幕
├── prefs/ # 设置面板(自绘 UI)
│ ├── SystemProUI.m # 全部界面代码(首页/卡片/子页/注销)
│ ├── Version.h # 版本号单一来源
│ ├── Info.plist / entry.plist / Makefile
├── Scripts/bump-version.sh # 一键同步版本号
└── .github/workflows/build.yml # GitHub Actions 打包(macOS)
make package FINALPACKAGE=1 # 默认 rootless
make package FINALPACKAGE=1 THEOS_PACKAGE_SCHEME=roothide # roothide 越狱
make install # 装到设备并注销推送到 GitHub 后:
- push / PR → Actions 自动构建,产物在 Artifacts:
systemPro-rootless-deb、systemPro-roothide-deb - 打 tag 发布:
→ 自动创建 GitHub Release,附带两个 scheme 的 deb
sh Scripts/bump-version.sh 0.0.1-2 git add -A && git commit -m "bump 0.0.1-2" git tag v0.0.1-2 && git push origin main --tags
工作流要点:macos-14 runner + brew install ldid xz + Theos(含 theos/sdks),矩阵构建
rootless / roothide 两个包。
- 每次更新(无论大小)只把尾号 +1:0.0.1-1 → 0.0.1-2 → … → 0.0.2-5 → 0.0.2-6 → 0.0.2-7 … 不跳段、不并段(操作方定稿,2026-10-05 起生效)。
- 出包前三处同步(脚本已代劳):
control的 Version、prefs/Info.plist两个 string、prefs/Version.h;设置面板与 Release 页显示的版本均取自这里。
- 手势锁屏:确认系统里有可用的锁屏入口(代码多路降级,失败会静默跳过)
- 静音小图标:不同 iOS 版本的专注/静音 item 显示条件不同,若不显示需要按系统版本微调强制显示
- 伪装电量:改完可等系统刷新或注销;个别版本需补
updateBatteryState:刷新 - 资源库禁用:目前拦回调;若入口仍在,需要补手势层拦截
- 分隔线类名在个别版本为
_UITableViewCellSeparatorView(两个都挂了)
- 面板控制器基类:PreferenceLoader 的 detail 控制器必须挂在
PSViewController/PSListController系上。纯UIViewController会在 Settings 点击入口时崩在PSListController controllerForSpecifier:。 本工程 =PSListController子类 + vendored 私有头(prefs/PBHeaders/)+-Wl,-undefined,dynamic_lookup链接。 - 面板表格必须走框架 specifier 模型:分节 = group specifier、行 = cell specifier,只重写
tableView:cellForRowAtIndexPath:自定义样式。自己接管 numberOfSections/numberOfRows 会在 iOS 16 崩在PSListController _tableView:heightForCustomInSection:(NSRangeException)。 - bundle 的资源文件必须放
prefs/Resources/:theos 只把这个目录装进.bundle; Info.plist 放错位置会导致面板根本无法加载(点了就闪退)。 - ARC 指针:
id */T **强转与出参在 ARC 下会编译失败,用void **+(__bridge id)或显式所有权限定绕开。 - logos 文件完整性:每次批量编辑后跑一遍括号配平 +
%hook/%end计数再推 CI。
- 功能面/挂钩点来自
/var/minis/workspace/sysbox/(RE 分析包:468 个 hook 全表 + 三份域报告)。实现思路参考,代码为本工程自研。 - 想要继续扩功能(Dock 倒影阴影、图标更换、角标体系、液态玻璃 Dock 等),
打开
sysbox_re_full.tar.gz里的hooks_final.tsv与域报告,按「待移植」流程加%hook+ 开关即可。