Бесплатное Mac-приложение останавливает запуск Apple Music, буквально ничего не делая

Задели AirPod не так, нажали Play случайно, завершили звонок — и Apple Music запускается сама. MusicDecoy исправляет это почти без кода: оно присваивает себе тот же bundle identifier, что и Music, — и системный демон удалённого управления думает, что Music уже запущена, и отступает.

Вкратце

MusicDecoy — бесплатное приложение с открытым кодом от команды lowtechguys. Оно решает многолетнее раздражение: Apple Music открывается сама при любом медиасобытии — кнопке, Bluetooth-гарнитуре или завершении звонка.

Механизм — и есть вся история: приложение регистрируется под com.apple.Music, поэтому демон rcd находит «Music» уже запущенной и не стартует настоящую. Один инженер в треде назвал это «красивым»; другие сразу вспомнили антимонопольное дело против Microsoft и Internet Explorer.

Приложение, побеждающее тем, что притворяется тем, что блокирует

MusicDecoy — бесплатное приложение с открытым кодом для macOS, решающее одну конкретную, повсеместно знакомую проблему: Apple Music запускается без спроса. Нажмите медиакнопку случайно, неловко тапните Bluetooth-гарнитуру, завершите телефонный звонок — и приложение Music открывается, нередко захватывая вывод звука по умолчанию и начиная воспроизведение на любом попавшемся устройстве.

Скриншот MusicDecoy
Скриншот MusicDecoy

Решение — почти фокус. MusicDecoy регистрируется с тем же bundle identifier, что и Music (com.apple.Music). Когда macOS-демон rcd (remote control daemon — демон удалённого управления) проверяет перед запуском Music, запущена ли она уже, он находит MusicDecoy в личине Music — и отступает. Описание автора, процитированное в треде: «Приложение абсолютно ничего не делает в фоне. Оно работает, просто существуя как запущенный процесс». Начиная с v1.1 оно умеет также перенаправлять клавишу Play в другое приложение — например, Spotify.

Почему инженеры в треде влюбились в этот трюк

Подход восхитил аудиторию HN именно потому, что он — антипод брутфорса:

«Я обожаю умные, малокодные или бескодные инженерные решения… результат — приложение почти без кода, просто коллизия — это красиво. (Кстати, кодовые агенты ужасны в подобных вещах; подозреваю, Codex… написал бы чудовищное приложение, которое в цикле опрашивает систему на предмет запуска Music и убивает её.)» — разработчик, восхищённый элегантностью

Тред также поднял более грубые, скриптуемые альтернативы. Один процитировал однострочник со StackExchange, полностью отключающий демон:

«launchctl unload -w /System/Library/LaunchAgents/com.apple.rcd.plist завершит процесс, виновный в безумии (rcd — демон удалённого управления)… Возможно, проще запустить это приложение — тогда есть иконка… и приложение, которое можно просто закрыть, чтобы вернуть настройки по умолчанию.» — комментатор, взвешивающий ручное решение

Из предшественников все вспомнили noTunes — более старое приложение, блокирующее Music тяжеловесным способом; исходники MusicDecoy лежат на GitHub под FuzzyIdeas.

Настоящая тема: дефолт, которого никто не просил

Под изящным хаком — 242 комментария раздражения на само поведение. Повторяющееся слово: «антимонополия».

«Грустно видеть, как Apple использует эти низкопробные тактики Microsoft. Принудительный запуск своего другого продукта — это каннибализация бренда.» — комментатор о принудительном запуске

«запуск Apple Music по Play очень похож на ранее антимонопольное дело Microsoft и Internet Explorer» — комментатор, апеллирующий к прецеденту IE

Потеря, которую оплакивают все, — iTunes. Один из сооснователей WebAssembly в треде выступил от лица поколения рипперов компакт-дисков:

«До сих пор не верю, что они убили iTunes… Когда они полностью отказались от iTunes и удалили его из Mac OS в пользу… чего бы там ни было Apple Music, я понял, что больше никогда им не доверюсь.» — titzer, сооснователь WebAssembly

Оговорка, которую стоит учесть

Один комментатор указал на очевидную хрупкость:

«Слегка беспокоит: а вдруг Apple залатает это, запретив использовать тот же bundle identifier, что у официальных приложений?» — комментатор о жизнеспособности трюка

Вот честное резюме. MusicDecoy — восхитительный почти-нулевой обходной путь, и одновременно — щелчок по носу намеренного дефолта Apple. Он работает сегодня, потому что Apple ещё не закрыла дыру с bundle identifier. То, что сотни людей готовы установить приложение, чья единственная задача — ничего не делать, — самый чёткий сигнал: дефолт и есть баг.

Получайте такие разборы каждый день

Главные истории Hacker News — на email, в Telegram или RSS.

Следующая новость · 20 из 31 Читать дальше
🌍Other

Apple в первую минуту WWDC отказалась от Liquid Glass и пообещала новую Siri «позже в этом году»

Первым конкретным анонсом keynote стал не новый iPhone — Apple тихо смягчила редизайн Liquid Glass, на который все жаловались целый год. Затем появилась «абсолютно новая Siri»... которая выйдет на английском «позже в этом году», то есть уже после релиза iOS 27.

★ 242 · 💬 477 · apple.com · 4 мин