news 2026/8/24 22:51:29

BlackHole 音频驱动构建与签名分发全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
BlackHole 音频驱动构建与签名分发全解析

BlackHole 音频驱动构建与签名分发全解析

【免费下载链接】BlackHoleBlackHole is a modern macOS audio loopback driver that allows applications to pass audio to other applications with zero additional latency.项目地址: https://gitcode.com/gh_mirrors/bl/BlackHole

BlackHole 是一个专为 macOS 打造的虚拟音频驱动,让任意应用把声音零延迟地"透传"给另一个应用。这个项目还有一层看点:编译、代码签名、公证、PKG 打包被串成了一条完整的 macOS 驱动构建流水线。读下来你会明白,它是怎么被造出来、签好名,再经 Homebrew 送到你桌面的。

一分钟上手:一条命令装好 BlackHole 音频驱动

最短路径不需要手动下载,也不需要改任何系统设置:

  1. 确认系统是 macOS 10.10 以上,先关掉正在运行的音频应用。
  2. 在终端执行brew install --cask blackhole-2ch,Homebrew 会自动下载已签名、已公证的安装包并完成安装。
  3. 打开"音频 MIDI 设置",左侧设备列表里看到 BlackHole 2ch 即表示驱动就位。
  4. 把发送端应用的输出、接收端应用的输入都选成 BlackHole,音频就开始互传 🎧
  5. 日后升级只需brew upgrade --cask blackhole-2ch一条命令。

你该选哪个版本?Homebrew 上常见三档:

版本安装命令适合场景
2chbrew install --cask blackhole-2ch日常录音、会议软件互传,多数人首选
16chbrew install --cask blackhole-16ch多轨道录音、DAW 多轨工作流
64chbrew install --cask blackhole-64ch专业音频制作、复杂路由

它是怎么跑起来的:macOS 驱动核心原理

先说它解决的问题:macOS 上的应用默认各说各话,A 应用放的音乐,B 应用根本"听"不到。BlackHole 相当于在系统里装了一副虚拟音箱加虚拟麦克风:A 应用把声音输出到 BlackHole,B 应用再从 BlackHole 输入,声音就传过去了。数据走的是系统音频栈内部的环形缓冲,所以几乎没有额外延迟。

实现上它很克制:驱动本体 BlackHole/BlackHole.c 是单个 C 文件,基于 CoreAudio 的 AudioServerPlugIn 接口,输入流写入环形缓冲、输出流读出。它不是内核扩展,装进 /Library/Audio/Plug-Ins/HAL 后由 CoreAudio 自动加载,Intel 与 Apple Silicon 通用。

通道版本则是"一鱼多吃":同一份源码在编译期注入不同参数,生成 2、16、64、128、256 通道共五个驱动,每个都有独立的 Bundle ID 和 UUID,因此能同时装在一台 Mac 上互不冲突。

安装完成后,驱动会以音频设备的形式出现在系统里,大致是这样:

关键配置与签名流程:代码签名公证实操

这部分写给想自己跑构建脚本的人。全部逻辑集中在 Installer/create_installer.sh,安装前后的系统动作放在 Installer/Scripts/ 里的脚本中。

签名参数怎么配?

驱动属于系统级组件,签名比普通 App 更严格。核心命令是codesign,几个关键参数:

参数作用为什么需要
--force强制覆盖旧签名保证每次构建都是新签名
--deep递归签名内部组件驱动 bundle 内含可执行体等子项
--options runtime启用强化运行时Catalina 起的安全硬性要求
--sign 团队ID指定签名身份系统据此验证发布者

少掉--options runtime会怎样?没有强化运行时,公证会直接失败,用户机器上的 Gatekeeper 也会拦下这个驱动。

多通道版本怎么互不冲突?

macOS 靠 Bundle ID 和 Info.plist 里的插件工厂 UUID 区分不同驱动。脚本每构建一个通道版本,就用uuidgen生成新 UUID 替换模板中的旧值,再配上独立的 Bundle ID(形如 audio.existential.BlackHole16ch)。两套标识各管一面,2ch 和 16ch 自然能和平共处。

公证卡住了怎么办?

公证分两步:把 PKG 提交给 Apple 扫描,再把返回的票据钉回包上。

xcrun notarytool submit BlackHole2ch.pkg --wait --keychain-profile notarize xcrun stapler staple BlackHole2ch.pkg

若输出出现 status: Invalid,用xcrun notarytool log加提交 ID 拉取日志,常见原因是签名证书与团队 ID 不匹配,或打包时脚本文件权限不对。

接入 Homebrew 与 CI 分发:生态整合指南

对使用者意味着什么

你平时感受到的只有一条命令:brew install --cask blackhole-2ch。背后 Cask 帮你做完了四件事:从官方源下载对应通道的 PKG、校验签名、把驱动放进系统音频插件目录、升级时以新代旧。相比手动下载 PKG,版本始终可控,装与卸都有据可查 📦

CI 怎么跑完全流程

仓库里的构建脚本本身就是一条完整流水线,对五个通道版本循环执行:xcodebuild 按 Release 编译 → 生成唯一 UUID → codesign 签名 → pkgbuild 打组件包 → productbuild 合成带向导界面的 PKG → notarytool 公证并装订。版本号统一从 VERSION 文件读取,保证五个包版本一致。

装完不确定是否生效?执行ls /Library/Audio/Plug-Ins/HAL/,看到 BlackHole2ch.driver 这类目录就说明驱动已经就位。

常见问题速查:安装、公证与架构问题

Q:双击 PKG 报错装不上?某些 macOS 版本在特定目录解析安装包会失败。把 .pkg 从"下载"挪到桌面(或反过来)再打开试试。

Q:装好了却找不到 BlackHole?它不是普通应用,不会出现在"应用程序"文件夹里。打开"音频 MIDI 设置"看设备列表;若没有,执行sudo killall coreaudiod重启音频服务。

Q:公证报 status: Invalid?xcrun notarytool log加提交 ID 看 Apple 返回的日志,多半是签名证书与团队 ID 不一致,或脚本权限不对。

Q:Intel 和 Apple Silicon 要装不同的包吗?不需要。安装包声明同时支持 x86_64 与 arm64,两种芯片装同一个包即可。

Q:怎么升级到新版本?Homebrew 用户执行brew upgrade --cask blackhole-2ch;手动安装的用户下载新 PKG 覆盖安装,装完重启更稳妥。

回到开头那三样东西——虚拟音频驱动、代码签名公证、Homebrew 分发:BlackHole 用一条脚本把三者串成了可重复的生产线。它证明了一个小而美的 macOS 驱动,也能拥有企业级的交付能力。下一步不妨打开仓库的构建脚本,把五个通道的安装包亲手做一遍。

【免费下载链接】BlackHoleBlackHole is a modern macOS audio loopback driver that allows applications to pass audio to other applications with zero additional latency.项目地址: https://gitcode.com/gh_mirrors/bl/BlackHole

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 22:45:53

Java面试核心考点与系统设计实战指南

1. 面试题准备的必要性作为有2-5年经验的Java后端开发者,面试准备是职业发展的重要环节。这个阶段的开发者已经掌握了基础语法和框架使用,但往往缺乏系统性的知识梳理。面试题整理不仅能帮助应对技术考察,更能查漏补缺,建立完整的…

作者头像 李华
网站建设 2026/8/24 22:44:04

三天点亮一台 Reachy Mini:开源桌面机器人 DIY 搭建指南

三天点亮一台 Reachy Mini:开源桌面机器人 DIY 搭建指南 【免费下载链接】reachy_mini Reachy Minis SDK 项目地址: https://gitcode.com/GitHub_Trending/re/reachy_mini 周三晚上,我把一段六行的 Python 丢给同事,桌上那台机器人头像…

作者头像 李华
网站建设 2026/8/24 22:42:29

NCM解密完整指南:3步把网易云音乐NCM文件转成MP3

NCM解密完整指南:3步把网易云音乐NCM文件转成MP3 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你花钱下载的歌,为什么换个播放器就放不了?ncmdump 是一款 NCM 解密工具,把单个 .ncm …

作者头像 李华
网站建设 2026/8/24 22:42:20

ESD静电试验全解析:从标准到实战的电子产品防护指南

1. 从一次产线停摆说起:为什么ESD是电子产品的“隐形杀手”那天产线突然停了,QC拿着一块刚下线的电路板来找我,说功能测试通不过。板子看起来完好无损,没有烧焦的痕迹,也没有虚焊。用万用表量了量供电,正常…

作者头像 李华