Birth:把 macOS 藏起来的启动项全部摊开给你看
系统设置里看不到的启动项
每次电脑重启总有一大堆启动项,系统设置里却看不到——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 进行许可。