I think I solved this – for myself, at very least.
Full disclosure: I am not an Apple developer. However, I am a software engineer with > 20 years experience working on UNIX and UNIX-Like systems (mainly Linux variants), similar to MacOS.
OK! All that being said, here's what I did:
- Reboot in Safe Mode
- Remove unwanted items from /Library/LaunchDaemons/
- Remove unwanted items from /Library/LaunchAgents/
- Remove unwanted items from /Users/username/Library/LaunchAgents/ (aka "~/Library/LaunchAgents")
- Reset background task management database
- Reboot and login normally
Before I did this, I was getting dozens and dozens of "Background Items Added" warnings. (Ventura 13.1 on a 2020 Intel MacBook Pro.) My logic for this was as follows:
- When the Mac fully boots up and the user logs in normally, the state of running apps is held in memory, and may be written out to disk at any time.
- Making changes in this state, therefore, may not have a permanent effect
- When booted in "Safe Mode" no background applications are started. (Or, at least, only the very essential ones.)
- Therefore, changes can be made which will survive a restart, from Safe Mode
Furthermore: Startup tasks may be run at system boot, at login of ANY user, and at login of a particular user account. As I understand it:
- /Library/LaunchDaemons : Run at system boot
- /Library/LaunchAgents : Run when any user logs in
- ~/Library/LaunchAgents: Run when that particular user logs in
TL;DR: JUST TELL ME WHAT TO DO!
Ok, I feel you. Here is the step-by-step. Like I said, this worked for ME. YMMV. ¯\_(ツ)_/¯
Reboot in Safe Mode
Apple Menu -> Restart. Hold down the SHIFT key (Intel Macs) until you see the login screen.
Start up your Mac in safe mode - Apple Support
Remove unwanted startup items, reset BTM database, restart
- Open up Terminal.app (link).
- Make a directory into which you can move (rather than delete) the unwanted files by typing:
- mkdir -pv /tmp/DISABLED/LaunchDaemons
- mkdir -pv /tmp/DISABLED/LaunchAgents
- mkdir -pv /tmp/DISABLED/User-LaunchAgents
- Go to your user LaunchAgents directory by typing: "cd ~/Library/LaunchAgents"
- List all files by typing: "ls -la"
- Move each file you want to disable by typing: "mv -v file.to.disable /tmp/DISABLED/User-LaunchAgents/"
- Switch to the root (aka "admin") account by typing: "sudo su -" and then entering your admin password.
- Go to the system LaunchDaemons directory by typing: "cd /Library/LaunchDaemons"
- List all files by typing: "ls -la"
- Move each file you want to disable by typing: "mv -v file.to.disable /tmp/DISABLED/LaunchDaemons/"
- Go to the system LaunchAgents directory by typing: "cd /Library/LaunchAgents"
- List all files by typing: "ls -la"
- Move each file you want to disable by typing: "mv -v file.to.disable /tmp/DISABLED/LaunchAgents/"
- Reset background task management database: "sfltool resetbtm"
- Exit terminal and reboot normally
I know this looks like a lot. If anything goes sideways, /tmp/DISABLED contains the files you removed. Just move them back and restart.
Good luck!