v1.0.2
乐府 v1.0.2 — 安装链路加固与健壮性
这一版不动界面、不动录制逻辑,只做底层加固:安装第三方组件前先核验真伪、诊断日志加上容量上限、打包签名去掉废弃用法并纳入强制校验,另把 Homebrew cask 的同步做成自动化。
安全
- 安装包双重校验(#9)
一键安装 BlackHole 时,下载完成先比对字节级 SHA256,再经pkgutil --check-signature核验签名链为Developer ID Installer: Existential Audio Inc. (Q5C99V536K)且已被 Apple 公证。任一不过即中止,不再进入提权安装。此前只有「HTTP 200 + 体积 > 100KB」两道形同虚设的门,一个被投毒的同名文件即可长驱直入。
修复
-
诊断日志无上限(#10)
单文件超过 2MB 即归档为lefu-diag.log.1,归档采用覆盖式不堆叠。挂机常驻场景不再会一路写大;顺带把每次调用都新建的DateFormatter提为静态复用。 -
签名流程规范化(#11)
去掉已废弃的codesign --deep,改为显式签Contents/Frameworks内的动态库,再签主 bundle;签名失败不再被|| true静默吞掉,codesign --verify --strict不过就中止打包,避免产出「以为签了、其实没签」的包。关于 hardened runtime:本版刻意不启用
--options runtime。实测 ad-hoc 签名(无 Team ID)下启用它会触发 library validation,拒绝dlopen内置的 libmp3lame,导致 MP3 编码静默回落到 M4A。此项须随 #2 的真实开发者证书一起启用。
构建
- 仓库卫生(#12):
design/下 6 个图标生成过程中的临时中间产物(约 4MB)移出版本控制并补上.gitignore规则。 - Homebrew tap 自动同步:新增
scripts/bump_cask.sh,按发布版本同步boxter007/homebrew-lefu的版本号与 sha256;发布流程增加Bump Homebrew cask一步。此前 cask 曾落后一个版本,根因已消除。
安装
# Homebrew(推荐)
brew install --cask boxter007/lefu/lefu
# 或手动下载
# 下载下方 Lefu-v1.0.2.zip,解压后把「乐府.app」拖入「应用程序」首次启动会被 Gatekeeper 拦下(当前为 ad-hoc 签名)。放行方式任选其一:
- 在「访达 → 应用程序」中右键点乐府,选「打开」并确认;
- 或终端执行
xattr -cr "/Applications/乐府.app"。
通用二进制(arm64 + Intel)。已知问题:包内置的 libmp3lame 目前仅 arm64,Intel 机器上 MP3 编码不可用(见 #13,计划 v1.0.3 修复)。
完整变更日志:https://github.com/boxter007/lefu/blob/main/CHANGELOG.md
对比:v1.0.1...v1.0.2