Skip to content

1.3.1 - 最小稳定版(仅保留已实机验证内容)

Choose a tag to compare

@CangWeiohh CangWeiohh released this 10 Oct 02:25
· 3 commits to main since this release

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 秒震动)。这是唯一一个"只保留已验证内容"后仍能让功能成立的做法。

建议的验证顺序(先确认责任方)

  1. 强制重启:音量 + → 音量 − → 长按侧边键,直到出现 Apple 标志;
  2. 在 Sileo 里卸载 KeywordSMSAlert → 重启用户空间:
    • 仍然持续黑屏 → 与本插件无关(几乎可以确定是电话助手的 jbroot 路径失效/设备状态)→ 若如此,在 Sileo 里把电话助手也重装一次(让它按当前 jbroot 重写守护进程路径)再重启;
    • 恢复正常 → 责任在本插件,那就装 1.3.1(已是最小集合)。
  3. 装 1.3.1 后再重启一次,确认启动正常。

核验

  • host 单测 48 passed / 0 failed
  • 包内容:detector dylib + filter plist + 设置面板 bundle + ksactl(无其它二进制、无 LaunchDaemon)
  • detector 依赖:Foundation / CoreFoundation / AudioToolbox / sqlite3 / libroothide(无 AVFoundation)