Music Decoy: 防止 Apple Music 在 macOS 上自动启动

Music Decoy 解决了 macOS 用户的一个常见烦恼:当按下键盘上的播放键或通过蓝牙耳机触发时,Apple Music 应用会自动启动。这种行为是硬编码在系统中的,无法通过标准设置禁用。

Music Decoy 的工作原理

Music Decoy 通过充当“占位”进程来防止 Apple Music 应用启动。它使用与官方 Apple Music 应用相同的 bundle identifier,从而欺骗系统,让系统认为 Music 应用已经在运行。由于它是一个具有该 identifier 的运行中进程,macOS 不会尝试启动实际的 Music 应用。

正如一位社区成员所指出的,这是一种低代码工程解决方案,需要对 macOS 如何处理 bundle identifiers 和 media events 有深入的理解:

The app does absolutely no work in the background. It works by simply existing as a running process, thanks to having the same bundle identifier as the Music app.

Apple Music 的触发事件

Apple Music 通常在以下条件下自动启动:

  • Keyboard Input: 当没有其他音频应用处于活动状态时,按下 Play 键。
  • Bluetooth Connectivity: 当蓝牙耳机连接并发送播放命令时。
  • Call Transitions: 在结束电话通话后,蓝牙耳机从通话模式切换到音乐模式时。

配置与使用

重定向播放键

自版本 1.1 起,Music Decoy 允许用户配置在按下播放键时启动不同的应用程序。例如,要将播放键重定向到启动 Spotify,请在 Terminal 中运行以下命令:

defaults write com.lowtechguys.MusicDecoy mediaAppPath /Applications/Spotify.app

要将此配置重置为默认值,请使用:

defaults delete com.lowtechguys.MusicDecoy mediaAppPath

管理应用

由于 Music Decoy 没有 Dock 图标或菜单栏图标,必须通过系统工具进行管理:

  • Activity Monitor: 找到 "Music Decoy" 并使用停止按钮退出应用。
  • Terminal: 运行 killall 'Music Decoy' 来终止进程。

防止自动启动的其他替代方案

对于不想使用第三方工具的用户,存在几种替代方案:

  • noTunes: 一个类似的应用程序,它会监控 Music 应用的启动并立即终止该进程。虽然有效,但它会在后台占用少量 CPU。
  • Disabling the Remote Control Daemon (rcd): 用户可以运行 launchctl unload -w /System/Library/LaunchAgents/com.apple.rcd.plist。但是,这会完全禁用整个系统的播放键功能。
  • Permissions Modification: 一些用户建议使用 sudo chmod -x /Applications/Music.app 来移除应用包中的执行权限。
  • Library Locking: 锁定 ~/Music/Music 文件夹以防止应用启动。

社区对 macOS 媒体控制的看法

用户对被“强行拉入” Apple Music 生态系统的行为表示了极大不满。一位用户强调了这种行为在专业环境中的风险:

I use my MacBook to run my (musical) keyboard rig for live performances... if I were to accidentally hit the button in the middle of a set, and it decides to default to whatever interface is connected to the P.A. system, then now I've just started blasting some random song at full volume to everyone in the venue.

其他用户将这种行为比作早期的 Microsoft 反垄断案,称其为侵入式操作系统厂商行为的典型,这种行为破坏了用户的首选工作流,特别是对于那些维护本地数字音乐库而非使用流媒体服务的用户。

Sources