Skip to content

v1.0.2

Choose a tag to compare

@github-actions github-actions released this 11 Sep 03:54
· 66 commits to main since this release

乐府 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