-
-
Save gopsmith/bf4d3a8203cd0792c9f8702cc76c8525 to your computer and use it in GitHub Desktop.
#!/bin/zsh | |
# CREDITS: Original idea and script disable.sh by pwnsdx https://gist.github.com/pwnsdx/d87b034c4c0210b988040ad2f85a68d3 | |
# Big Sur revision by b0gdanw https://gist.github.com/b0gdanw/40d000342dd1ba4d892ad0bdf03ae6ea | |
# TEMPORARILY disabling (e.g. STOPPING via 'bootout') unwanted services on macOS 11 Big Sur and macOS 12 Monterey: | |
# This version is for a special boot that optimizes for real-time music performance and streaming video. | |
# Due to the read-only system volume introduced with macOS Catalina, this script can NOT be run in Recovery mode's Terminal. | |
# For my purposes I leave WiFi enabled, for streaming video to a local router with no internet connection. | |
# SIP must first be disabled, in Recovery mode's Terminal (`csrutil disable`), then run this script after rebooting. | |
# To return to normal boot, simply re-enable SIP in Recovery mode's Terminal (`csrutil enable`), and reboot. | |
# If you want to fully disable the services, uncomment the `launchctl disable` lines, but remember that they will | |
# automatically launch again after you re-enable SIP. | |
# Big Sur GUI Agents to bootout | |
TODISABLE=( \ | |
'com.apple.accessibility.MotionTrackingAgent' \ | |
'com.apple.AMPArtworkAgent' \ | |
'com.apple.AMPDeviceDiscoveryAgent' \ | |
'com.apple.AMPDevicesAgent' \ | |
'com.apple.AMPLibraryAgent' \ | |
'com.apple.AMPSystemPlayerAgent' \ | |
'com.apple.amsaccountsd' \ | |
'com.apple.amsengagementd' \ | |
'com.apple.AOSHeartbeat' \ | |
'com.apple.AOSPushRelay' \ | |
'com.apple.ap.adprivacyd' \ | |
'com.apple.ap.adservicesd' \ | |
'com.apple.ap.promotedcontentd' \ | |
'com.apple.appleseed.seedusaged' \ | |
'com.apple.applespell' \ | |
'com.apple.appsleep' \ | |
'com.apple.appstoreagent' \ | |
'com.apple.appstorecomponentsd' \ | |
'com.apple.assessmentagent' \ | |
'com.apple.assistant_service' \ | |
'com.apple.assistantd' \ | |
'com.apple.AssistiveControl' \ | |
'com.apple.avatarsd' \ | |
'com.apple.bird' \ | |
'com.apple.cache_delete' \ | |
'com.apple.CalendarAgent' \ | |
'com.apple.CallHistoryPluginHelper' \ | |
'com.apple.CallHistorySyncHelper' \ | |
'com.apple.cloudd' \ | |
'com.apple.cloudpaird' \ | |
'com.apple.cloudphotod' \ | |
'com.apple.CommCenter' \ | |
'com.apple.commerce' \ | |
'com.apple.contacts.donation-agent' \ | |
'com.apple.ContactsAgent' \ | |
'com.apple.CoreLocationAgent' \ | |
'com.apple.corespeechd' \ | |
'com.apple.corespotlightd' \ | |
'com.apple.corespotlightservice' \ | |
'com.apple.DiagnosticReportCleanup.plist' \ | |
'com.apple.DictationIM' \ | |
'com.apple.email.maild' \ | |
'com.apple.exchange.exchangesyncd' \ | |
'com.apple.familycircled' \ | |
'com.apple.familycontrols.useragent' \ | |
'com.apple.familynotificationd' \ | |
'com.apple.findmymacmessenger' \ | |
'com.apple.followupd' \ | |
'com.apple.FollowUpUI' \ | |
'com.apple.GameController.gamecontrolleragentd' \ | |
'com.apple.gamed' \ | |
'com.apple.homed' \ | |
'com.apple.icdd' \ | |
'com.apple.icloud.findmydeviced.findmydevice-user-agent' \ | |
'com.apple.icloud.fmfd' \ | |
'com.apple.icloud.searchpartyuseragent' \ | |
'com.apple.iCloudHelper' \ | |
'com.apple.iCloudNotificationAgent' \ | |
'com.apple.iCloudUserNotificationsd' \ | |
'com.apple.imagent' \ | |
'com.apple.imautomatichistorydeletionagent' \ | |
'com.apple.imcore.imtransferagent' \ | |
'com.apple.itunescloudd' \ | |
'com.apple.knowledge-agent' \ | |
'com.apple.ManagedClientAgent.agent' \ | |
'com.apple.ManagedClientAgent.enrollagent' \ | |
'com.apple.Maps.mapspushd' \ | |
'com.apple.mediaanalysisd' \ | |
'com.apple.mediaremoteagent' \ | |
'com.apple.mediastream.mstreamd' \ | |
'com.apple.MobileAccessoryUpdater.fudHelperAgent' \ | |
'com.apple.newsd' \ | |
'com.apple.notificationcenterui.agent' \ | |
'com.apple.parentalcontrols.check' \ | |
'com.apple.parsecd' \ | |
'com.apple.parsec-fbf' \ | |
'com.apple.passd' \ | |
'com.apple.photoanalysisd' \ | |
'com.apple.photolibraryd' \ | |
'com.apple.PhotoLibraryMigrationUtility.XPC' \ | |
'com.apple.protectedcloudstorage.protectedcloudkeysyncing' \ | |
'com.apple.RapportUIAgent' \ | |
'com.apple.remindd' \ | |
'com.apple.RemoteDesktop.agent' \ | |
'com.apple.RemoteManagementAgent' \ | |
'com.apple.routined' \ | |
'com.apple.Safari.PasswordBreachAgent' \ | |
'com.apple.Safari.SafeBrowsing.Service' \ | |
'com.apple.SafariBookmarksSyncAgent' \ | |
'com.apple.SafariCloudHistoryPushAgent' \ | |
'com.apple.SafariHistoryServiceAgent' \ | |
'com.apple.SafariLaunchAgent' \ | |
'com.apple.SafariNotificationAgent' \ | |
'com.apple.screensharing.agent' \ | |
'com.apple.screensharing.menuextra' \ | |
'com.apple.screensharing.MessagesAgent' \ | |
'com.apple.ScreenTimeAgent' \ | |
'com.apple.SecureBackupDaemon' \ | |
'com.apple.security.cloudkeychainproxy3' \ | |
'com.apple.security.keychain-circle-notification' \ | |
'com.apple.shazamd' \ | |
'com.apple.sidecar-relay' \ | |
'com.apple.Siri.agent' \ | |
'com.apple.siriknowledged' \ | |
'com.apple.SoftwareUpdateNotificationManager' \ | |
'com.apple.speech.speechdatainstallerd' \ | |
'com.apple.speech.synthesisserver' \ | |
'com.apple.Spotlight' \ | |
'com.apple.suggestd' \ | |
'com.apple.syncdefaultsd' \ | |
'com.apple.telephonyutilities.callservicesd' \ | |
'com.apple.TMHelperAgent' \ | |
'com.apple.TMHelperAgent.SetupOffer' \ | |
'com.apple.UsageTrackingAgent' \ | |
'com.apple.UserNotificationCenterAgent' \ | |
'com.apple.videoconference.camera' \ | |
'com.apple.videosubscriptionsd' \ | |
'com.Arturia.ArturiaSoftwareCenterAgent' \ | |
'com.avid.CloudClientServices' \ | |
'com.avid.link' \ | |
'com.avid.transport.client' \ | |
'com.citrixonline.GoToMeeting.G2MUpdate' \ | |
'com.dropbox.DropboxMacUpdate.agent' \ | |
'com.github.facebook.watchman' \ | |
'com.google.keystone.system.agent' \ | |
'com.google.keystone.system.xpcservice' \ | |
'com.logmein.GoToMeeting.G2MUpdate' \ | |
'com.microsoft.OneDriveStandaloneUpdater' \ | |
'com.microsoft.update.agent' \ | |
'com.paceap.eden.licensed.agent' \ | |
'com.skype.skype.shareagent' \ | |
'com.techsmith.snagit.capturehelper2020' \ | |
'homebrew.mxcl.chromedriver' \ | |
'homebrew.mxcl.mongodb' \ | |
'homebrew.mxcl.postgresql' \ | |
'org.pqrs.karabiner.agent.karabiner_grabber' \ | |
'org.pqrs.karabiner.agent.karabiner_observer' \ | |
'org.pqrs.karabiner.karabiner_console_user_server' \ | |
'org.pqrs.karabiner.karabiner_session_monitor' \ | |
'org.pqrs.karabiner.NotificationWindow' \ | |
) | |
echo "" | |
echo "*** BIG SUR GUI AGENTS ***" | |
for agent in "${TODISABLE[@]}" | |
do | |
{ | |
echo "Booting out BIG SUR GUI Agent ${agent}" | |
sudo launchctl bootout gui/501/${agent} | |
#sudo launchctl disable gui/501/${agent} | |
} #&> /dev/null | |
done | |
#================================================================================================== | |
# Big Sur System Daemons to bootout | |
TODISABLE=( \ | |
'com.apple.analyticsd' \ | |
'com.apple.appleseed.fbahelperd' \ | |
'com.apple.apsd' \ | |
'com.apple.backupd' \ | |
'com.apple.backupd-helper' \ | |
'com.apple.cloudd' \ | |
'com.apple.CommCenterRootHelper' \ | |
'com.apple.eapolcfg_auth' \ | |
'com.apple.familycontrols' \ | |
'com.apple.findmymacd' \ | |
'com.apple.findmymacmessenger' \ | |
'com.apple.icloud.findmydeviced' \ | |
'com.apple.icloud.searchpartyd' \ | |
'com.apple.locationd' \ | |
'com.apple.ManagedClient' \ | |
'com.apple.ManagedClient.cloudconfigurationd' \ | |
'com.apple.ManagedClient.enroll' \ | |
'com.apple.ManagedClient.mechanism' \ | |
'com.apple.mediaremoted' \ | |
'com.apple.mobileassetd' \ | |
'com.apple.netbiosd' \ | |
'com.apple.preferences.timezone.admintool' \ | |
'com.apple.remoted' \ | |
'com.apple.RemoteDesktop.PrivilegeProxy' \ | |
'com.apple.remotemanagementd' \ | |
'com.apple.RemotePairTool' \ | |
'com.apple.screensharing' \ | |
'com.apple.security.FDERecoveryAgent' \ | |
'com.apple.siri.acousticsignature' \ | |
'com.apple.siri.morphunassetsupdaterd' \ | |
'com.apple.siriinferenced' \ | |
'com.apple.softwareupdate_firstrun_tasks' \ | |
'com.apple.softwareupdated' \ | |
'com.apple.SubmitDiagInfo' \ | |
'com.apple.UserNotificationCenter' \ | |
'com.barebones.authd' \ | |
'com.bombich.ccchelper' \ | |
'com.docker.vmnetd' \ | |
'com.google.keystone.daemon' \ | |
'com.microsoft.autoupdate.helper' \ | |
'com.microsoft.office.licensingV2.helper' \ | |
'com.microsoft.OneDriveStandaloneUpdaterDaemon' \ | |
'com.microsoft.OneDriveUpdaterDaemon' \ | |
'com.paceap.eden.licensed' \ | |
'com.vidyo.DPA.VidyoCamera' \ | |
'org.cups.cupsd' \ | |
'org.pqrs.karabiner.karabiner_grabber' \ | |
'org.pqrs.karabiner.karabiner_observer' \ | |
'org.pqrs.Karabiner-DriverKit-VirtualHIDDeviceClient' \ | |
) | |
echo "" | |
echo "*** BIG SUR SYSTEM DAEMONS ***" | |
for daemon in "${TODISABLE[@]}" | |
do | |
{ | |
echo "Booting out BIG SUR Library Daemon ${daemon}" | |
sudo launchctl bootout system/${daemon} | |
#sudo launchctl disable system/${daemon} | |
} #&> /dev/null | |
done | |
#================================================================================================== | |
# Big Sur User Agents (1) to bootout | |
echo "Disabling geod" | |
sudo launchctl bootout user/205/com.apple.geod | |
#sudo launchctl disable user/205/com.apple.geod |
Recovery mode is only used to disable SIP – you can't stay in recovery mode.
Can u help how to run script?
Thanks!
I was assuming that you did run the script. And if you did, how many errors did you get? Were there any successful bootouts?
Removed com.apple.rapportd from the bootouts – when booted out, screen mirroring (which I need for QLab video streaming to a projector) occasionally asks for a passcode and won't accept any input.
very interesting tip, are you 100% positive that was the issue and ther is no other solution? what kind of passcode was aked?
I am working on a similar project and most of my clients are music producer, i try to keep old macbooks alive :)
Removed com.apple.rapportd from the bootouts – when booted out, screen mirroring (which I need for QLab video streaming to a projector) occasionally asks for a passcode and won't accept any input.
very interesting tip, are you 100% positive that was the issue and ther is no other solution? what kind of passcode was aked?
I am working on a similar project and most of my clients are music producer, i try to keep old macbooks alive :)
Yes, I'm 100% positive. I've had no issues whatsoever since I removed rapportd from the list of bootouts. Rapportd is absolutely necessary for screen mirroring.
(It's not really relevant, but to answer your question, the passcode that was asked for was 4 or 6 digits, I don't remember which. But remember, this was when rapportd was disabled)
I like this idea of this script; unfortunately the moment I run it my macbook becomes unstable and crashes the moment I go to my browser and type in a URL... and there are other issues.
Recovery mode is only used to disable SIP – you can't stay in recovery mode.