Skip to content

SysPulse v0.1.8

Choose a tag to compare

@Rabbit-Spec Rabbit-Spec released this 10 Nov 10:39
· 8 commits to main since this release

新增功能

1. 开机自启动与系统权限管理扩展

  • 基于 ServiceManagement (SMAppService.mainApp) 接入开机自启动管理,首次启动默认注册登录启动项,并通过持久化开关 (SP_LaunchAtLogin_Preferred) 记录用户的开启或关闭设置。
  • 在「系统设置 → 系统权限与授权状态检查」中新增「开机自启动授权 (Login Items)」开关行,当系统需要人工确认时提供「前往登录项允许」快捷入口并轮询同步授权状态。
  • 在「系统权限与授权状态检查」中新增「风扇控制特权授权 (SMC Helper)」检测与一键授权入口,用于检测 Helper 安装状态与版本并触发管理员授权。

修复与改进

2. 支持 PROLED MacBook Pro SMC 传感器读取与风扇控制

  • 修正 SMC 通讯结构体对齐:将 AppleSMCReader 的请求与响应缓冲修改为标准 80 字节 C ABI 内存布局,解决此前 76 字节对齐偏差导致 IOConnectCallStructMethod 返回 kIOReturnBadArgument (-536870206) 的问题。
  • 补充 M5 系列温度传感器键:在 AppleSMCReader 中新增 Tp00、Tp04、Tp08、Tp0C、Tp0G、Tp0a(CPU)与 Tg08、Tg0C、Tg0O、Tg0R、Tg0a(GPU)传感器键读取支持。
  • 修正风扇识别与转速展示:
    • 移除 SMC 读取失败时对笔记本电脑的被动散热误判分支,在硬件监测与 Doctor 诊断报告中依据真实 FNum 与 F0Ac/F1Ac 输出风扇数量和转速;对于支持停转策略的机型,在 0 RPM 时显示为 standby 状态而非 passive cooling。
    • 多风扇存在单侧停转时,按运转风扇计算均值转速;风扇处于 0 RPM 时停止图标旋转,主界面与菜单栏转速百分比约束在 0%–100%,并支持模式切换后强制即时采样刷新。
  • 修复 Apple Silicon 风扇控制写入与 Helper 版本机制:
    • 更新 SysPulseUPSHelper:写入风扇模式及上下限时同时探测小写(F%dmd / F%dmn / F%dmx)与大写(F%dMd / F%dMn / F%dMx)SMC 键;仅在存在 Ftst 时执行解锁;针对 thermalmonitord 增加最多 5 次的写入回读确认重试机制,并在未受控任何风扇时返回非零退出码。
    • 在 SysPulseUPSHelper 新增 --version 协议输出,由 SystemPermissionManager 与 FanController 统一校验所有者、setuid 权限位及协议版本,兼容旧版自动升级且跨后续兼容版本免重复授权。
    • FanController 在「降温 / 强冷」模式下启用 10 秒周期后台保活续写,并在应用退出时自动恢复系统 Auto 模式。

3. 外置磁盘安全推出权限(Apple Events)

  • 在 Info.plist 中补充 NSAppleEventsUsageDescription 描述字符串,使首次请求自动化权限时正常弹出 macOS 系统允许提示框。
  • 修正 SystemPermissionManager 中 AEDeterminePermissionToAutomateTarget 的返回码分类,并在打开系统设置「隐私与安全性 → 自动化」后启动轮询同步授权状态。

4. 应用包分层代码签名与校验流程

  • 修改 scripts/build_app.sh 签名顺序:先分别为嵌套二进制 SysPulseUPSHelper 与 portal_engine 独立签名,再对 SysPulse.app 主包执行不带 --deep 的签名并保留 com.rabbit.syspulse 指定需求,解决 --deep 覆写子二进制导致外部下载后提示“已损坏,无法打开”的问题。
  • 在打包脚本末尾加入 codesign --verify --deep --strict 校验步骤,确保输出的 .app 与 .dmg 通过签名完整性验证。

5. PS Portal 串流画质增强模块(v1.0.1)

  • 修复设备处于休眠或未点击连接 PS5(修改启动包数为 0)时仍打印成功报告的问题:严格依据报告中的 unique_mutated_sequences 与 high_target_confirmed 字段区分「生效」「未确认」「未生效」,并在失败或未确认时写入界面警告横幅。
  • 将握手连接等待窗口由 35 秒延长至 120 秒(总采样窗口 125 秒),并在状态徽章、遥测控制台标题栏与当前准备提示行同步实时倒计时。
  • 移除 Swift 侧重复的 [提示] 日志追加逻辑,避免与 Python 输出的 [准备] 行重复。