Repository navigation
1.3.1 - 最小稳定版(仅保留已实机验证内容)
1.3.1 稳定版:只保留"已实机验证过"的内容
先说一个反常事实
1.2.8 能正常启动,而 1.3.0 持续黑屏 —— 但 1.2.8 的代码比 1.3.0 多。
我对比了两个版本的发布产物:
| 版本 | detector 里的 IOHID 代码 | 启动 |
|---|---|---|
| 1.2.8 | 有 IOHIDEventSystemClientCreate |
正常(你读到了设置里的状态行) |
| 1.3.0 | 没有(已全部删除) | 持续黑屏 |
三个版本的包内容完全一致(detector dylib + filter plist + 设置面板 + ksactl;无 LaunchDaemon、无 SpringBoard 组件)。也就是说 1.3.0 是 1.2.8 的真子集,反而黑屏了。
这说明黑屏很可能不是(至少不只是)本插件代码造成的,而是设备状态相关。最可疑的是电话助手:它的 root LaunchDaemon 里写着硬编码的 jbroot 路径(.jbroot-2ED827453A76B860)。每次"强制重启 + 重新越狱"都会生成新的随机 jbroot,于是它的守护进程再也起不来,而它的 SpringBoard 组件还在跑 —— 这正好会表现为"系统活着、屏幕不亮"。这也解释了最早的现象:只装电话助手时它自己就有约 1 秒黑屏。
1.3.1:最小稳定版(安不安全,一测便知)
已移除:IOHID 观察器、显示/锁定状态观察器(notify_register_dispatch)、所有 Hook、SpringBoard 相关代码、独立进程/守护进程。
产物核验(逐项确认不存在):
IOHIDEventSystemClientCreate -> False
com.apple.springboard.lockstate -> False
com.apple.iokit.hid.displayStatus -> False
notify_register_dispatch -> False
SBLockScreenManager -> False
MSHookMessageEx -> False
保留(都已实机验证过):
- 只读轮询
sms.db+ 关键词匹配(1.1.x 起长期验证); - 提醒引擎:震动 + 铃声/提醒通道声音(1.2.0 验证可正常响);
- 设置面板、
ksactl、boot-quiet(启动后 10 秒才开始工作)。
功能变化(明确告知):提醒不再响应电源键,而是到设定时长自动结束(SoundDuration / VibrationDuration,默认 10 秒声音、5 秒震动)。这是唯一一个"只保留已验证内容"后仍能让功能成立的做法。
建议的验证顺序(先确认责任方)
- 强制重启:音量 + → 音量 − → 长按侧边键,直到出现 Apple 标志;
- 在 Sileo 里卸载 KeywordSMSAlert → 重启用户空间:
- 仍然持续黑屏 → 与本插件无关(几乎可以确定是电话助手的 jbroot 路径失效/设备状态)→ 若如此,在 Sileo 里把电话助手也重装一次(让它按当前 jbroot 重写守护进程路径)再重启;
- 恢复正常 → 责任在本插件,那就装 1.3.1(已是最小集合)。
- 装 1.3.1 后再重启一次,确认启动正常。
核验
- host 单测 48 passed / 0 failed
- 包内容:detector dylib + filter plist + 设置面板 bundle +
ksactl(无其它二进制、无 LaunchDaemon) - detector 依赖:Foundation / CoreFoundation / AudioToolbox / sqlite3 / libroothide(无 AVFoundation)