Birth:把 macOS 藏起来的启动项全部摊开给你看

lxiol

系统设置里看不到的启动项

每次电脑重启总有一大堆启动项,系统设置里却看不到——macOS 把启动项散落在至少四种机制里:

来源 里面有什么 系统设置显示?
~/Library/LaunchAgents 当前用户的后台项 只有模糊的「后台项目」
/Library/LaunchAgents 所有用户的后台项 同上
/Library/LaunchDaemons Root 守护进程 同上
BTM 登录项 「登录时打开」的 App 显示但不给路径/详情

系统设置不会告诉你 plist 在哪、指向哪个可执行文件、谁签的名——而第三方更新器、辅助进程、卸载残留恰好就靠这种不透明存活。小邱Corey 干脆 vibe 了一个开源工具 Birth(github.com/iAmCorey/birth,Swift 编写,154⭐,MIT),把所有启动项摊到一个窗口里,每一项标出开发者签名,冒充系统项的直接标红

日常:Login Apps 零权限管理

  • 零权限查看「登录时打开」列表——打开 App 就能看,无任何弹窗
  • 添加/移除登录 App(首次更改才请求一次性 Automation 权限);直接把 App 拖进窗口即可
  • 每个 App 显示开发者签名身份,以及它悄悄装在自己身边的那些后台组件(”+N items” 徽章,一键展开)
  • Recently Removed:移除的 App 留在专门页面,一键恢复

审计:四层启动项 + 冒充检测

Advanced 视图把四层放在一个界面:用户后台项 / 全局后台项 / 守护进程 / 登录项,默认只看第三方,一键包含全部。

最有价值的是签名验证 + 冒充检测:签名身份对照证书链锚点验证(Apple / App Store / Identified Developer / Untrusted / Ad-hoc / Unsigned / Invalid),声称 com.apple.* 但签名对不上的项直接挂红色 “Masquerading” 徽章——这正是恶意软件最常用的持久化伪装手段。

还有:实时运行状态(PID)+ 一键启停(用户级免密、守护进程走管理员提示);搜索定位(按名字/开发者/路径,输入 PID 反查「是哪个启动项拉起了这个进程」);过滤排序;安全移除(先停任务 → plist 进废纸篓 → 备份到 ~/Library/Application Support/Birth/Backups);二进制 plist 渲染成可读 XML 的查看器。

权限哲学:按需询问,只问一次

操作 权限 时机
查看登录 App 列表
浏览用户/全局后台项
启停用户/全局后台项
添加/移除登录 App Automation (System Events) 首次更改时一次
查看登录项类别 完全磁盘访问 设置里授权一次
启停守护进程/移除全局项 管理员密码 每次(macOS 安全模型)

权限缺失优雅降级:应用内一次性引导、从系统设置回来自动刷新,之后保持安静。

工程与局限

SwiftUI + Swift Package Manager,没有 Xcode 工程文件、零第三方依赖;三个 target(BirthCore 扫描/控制/签名无 UI、BirthUI 整个应用、Birth 三行 main);release-check.sh 发布门禁不过就不发版。

诚实标注的局限:签名徽章只显示身份不验证完整性(那是 Gatekeeper 的职责);登录项类别只读(macOS 不给第三方 API,只提供一键跳转系统设置);ad-hoc 签名每次构建变化,升级后要重新授权完全磁盘访问和 Automation。

项目:https://github.com/iAmCorey/birth(macOS 14+,DMG 直装或源码构建)

  • 标题: Birth:把 macOS 藏起来的启动项全部摊开给你看
  • 作者: lxiol
  • 创建于 : 2026-07-31 00:00:00
  • 更新于 : 2026-07-31 15:00:10
  • 链接: https://blog.lxiol.cn/2026/07/31/birth-macos-startup-manager/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。