Apple Music 앱이 실행되는 것을 막기

1 hour ago 2
  • Music Decoy는 실행 중인 프로세스로 존재해, 실수로 ▶ Play를 눌렀을 때 시스템 Music 앱이 열리지 않게 하는 앱
  • 백그라운드에서 전혀 작업하지 않고, Music 앱과 같은 번들 식별자를 사용해 시스템이 Music 앱을 이미 실행 중으로 인식하게 만드는 방식
  • v1.1부터 mediaAppPath 설정으로 ▶ Play 입력 시 Spotify 같은 다른 앱을 실행하도록 구성 가능
  • Music 앱 자동 실행은 키보드 ▶ Play 입력, 블루투스 헤드셋 연결 후 재생 명령, 통화 종료 뒤 헤드셋이 통화 모드에서 음악 모드로 전환될 때 발생
  • rcd는 재생 이벤트 때 현재 오디오 재생 앱이 있으면 해당 앱에 명령을 보내고, 없으면 시스템 Music 앱을 실행하며, 데몬 비활성화는 키보드 미디어 재생 제어까지 끄는 결과

Music Decoy

  • 다운로드, 소스 보기, $brew install music-decoy 설치 명령 제공

  • Music 앱 실행 막기

    • Music Decoy가 실행 중인 동안, 실수로 ▶ Play를 눌러도 시스템 Music 앱이 실행되지 않음
    • 앱은 백그라운드에서 전혀 작업하지 않으며, Music 앱과 같은 번들 식별자를 가진 실행 중 프로세스로 존재하는 방식
  • 작동 방식

    • 번들 식별자 com.apple.Music을 사용해 시스템이 Music 앱이 이미 실행 중이라고 판단하게 만드는 구조
  • 설정

    • v1.1부터 ▶ Play 버튼을 눌렀을 때 다른 앱을 실행하도록 Music Decoy 설정 가능
    • Spotify 예시 설정 명령: defaults write com.lowtechguys.MusicDecoy mediaAppPath /Applications/Spotify.app
    • 설정 초기화 명령: defaults delete com.lowtechguys.MusicDecoy mediaAppPath
  • 종료 방법

    • Dock 아이콘과 메뉴 막대 아이콘이 없으므로 다음 중 하나로 종료 필요
      • Activity Monitor를 열고 Music Decoy를 찾은 뒤 상단 ❌ 버튼 선택
      • Terminal에서 killall 'Music Decoy' 실행

자동 실행 조건, 원인, 대안

  • 언제 Music이 스스로 실행되는가?

    • 키보드의 ▶ Play 키를 눌렀고 다른 앱이 오디오를 재생 중이지 않을 때 발생
    • 블루투스 헤드셋이 연결되고 재생 명령을 보낼 때 발생
    • 통화 종료로 블루투스 헤드셋이 통화 모드에서 음악 모드로 전환될 때 발생
  • 왜 이런 일이 발생하는가?

    • rcd는 Remote Control Daemon의 줄임말이며, 미디어 키 처리를 담당하는 데몬
    • 재생 이벤트가 발생하면 rcd는 현재 오디오를 재생하는 앱이 있는지 확인
    • 오디오 재생 앱이 있으면 그 앱에 재생 명령을 보내고, 없으면 시스템 Music 앱 실행
    • 해당 데몬을 비활성화하는 방법은 있지만, 키보드로 미디어 재생을 제어하는 기능도 함께 비활성화
  • 대안

    • StackExchange 답변 기준으로 같은 효과를 얻는 몇 가지 방법 존재
    • launchctl unload -w /System/Library/LaunchAgents/com.apple.rcd.plist
      • 문제점: Play 버튼을 완전히 비활성화
    • noTunes는 실행된 앱을 감지하고 Music이 실행되는 즉시 종료하는 방식
      • 문제점: 백그라운드에서 아주 작은 CPU를 사용하지만, 실행 앱 감지는 매우 적은 작업
Read Entire Article