Repository navigation
1.3.0 - 彻底移除 IOHID 监听(未生效且引发启动黑屏)
1.3.0:彻底移除 IOHID 监听(它从未生效,并且 1.2.9 的探测把启动黑屏带回来了)
先说结论
1.2.9 的 IOHID 相关新增是这次黑屏的嫌疑源头,因此 1.3.0 把整个 IOHID 观察器从发布构建里彻底删除。
理由很直接:它从来没有真正生效过 —— 1.2.8 第一次给它加计数后,实测是"零事件"。一个从未生效的功能,不值得拿设备启动去冒险。
1.2.9 相对 1.2.8 只多了这些(都在 imagent 里、启动后 10 秒执行):
IOHIDEventSystemClientCopyServices探测"能看见多少 HID 服务";- 同时创建 3 个 客户端(主 run loop / dispatch queue / 独立线程 run loop);
- 新增一个独立线程跑
CFRunLoopRun()。
而 1.2.7(1 个客户端 + 主 run loop)与 1.2.8(1 个客户端 + dispatch queue)都能正常启动。所以增量里最可疑的是对 HID 服务做查询与多客户端/新线程:HID 事件系统同时驱动着显示唤醒链路,与它"较劲"在这个环境下显然不安全。
1.3.0 的内容
- 发布构建里不再包含任何 IOHID 代码(产物已核验:
IOHIDEventSystemClientCreate/CopyServices/IOHIDEventGetType等符号全部不存在); - 提醒的停止方式回到只依据锁定状态(1.2.7 已验证可正常启动的形态):
- 解锁(密码 / Face ID)→ 停止;
- 锁定(用手机时按电源键,或自动锁定)→ 停止;
- 通知点亮屏幕、点击屏幕、抬手唤醒、自动熄屏 —— 都不会停止提醒;
- 保留 boot-quiet(启动窗口内零活动)、铃声通道提醒、关键词检测、设置面板。
请这样恢复设备
- 强制重启:按一下「音量 +」→ 按一下「音量 −」→ 长按侧边电源键,直到出现 Apple 标志;
- 重启后系统是未越狱状态,Sileo 可正常使用;
- 在 Sileo 里安装本版本(或先卸载 KeywordSMSAlert 再决定);
- 需要时再用 Dopamine 越狱。
抱歉又让你经历一次黑屏 —— 这次我不再在 HID 这条路上继续试探了:证据是它从未生效,继续迭代只会重复拿启动安全冒险。
核验
- host 单测 48 passed / 0 failed
- 发布 detector:零 IOHID 符号、零 Hook、未链接 AVFoundation、无 SpringBoard 组件与 LaunchDaemon
- 包内仍只有 detector dylib + 设置面板 +
ksactl