Welcome to Tahoe’s Launch Angels
Browsing through the /System/Library folder in macOS Tahoe you’ll no doubt be surprised to see a new folder, between LaunchAgents and LaunchDaemons, named LaunchAngels. This article takes a preliminary look at what’s in there, and what these new additions to Apple’s bestiary do.
Launch Agents and Launch Daemons
These have been used in macOS for a great many years, probably since the introduction of launchd
in Mac OS X 10.4 Tiger in 2005. These folders contain property lists for:
- Launch Daemons are standalone background processes managed by
launchd
, running as root before the user logs in, and communicating indirectly with user processes, normally by XPC. They’re not allowed to connect to WindowServer. - Launch Agents are also managed by
launchd
, but normally run on the user’s behalf, communicating with other processes and daemons. Although they can have GUI interfaces, they’re normally minimal.
Before you have logged in, launchd
runs services and other components specified in property list files in the LaunchAgents and LaunchDaemons folders in /System/Library, and in /Library. Those in /System/Library are all part of macOS, owned by Apple, and locked away on the SSV, but those in /Library can include those installed by third party products, although these days more are being enclosed in app bundles. As they’re run before the user logs in, those work for all users, so are global services.
These property list files contain keyed settings to determine what launchd
does with what. Although they can contain many other key-value pairs, two most important ones are ProgramArguments (or Program), which tells launchd
what to run, and RunAtLoad, which determines whether launchd
should run the service or app whenever your Mac starts up and it loads those agents and services. Other keys determine whether the agent/service should be kept running at all times; if that is set, if it crashes or is otherwise terminated, launchd
will automatically start it up again. That’s important for background services that apps rely on to function.
Launch Angels
As of macOS 26.0.1 there are three Launch Angels, each with a property list in /System/Library/LaunchAngels. Those relate to three apps now in /System/Library/CoreServices,
- AccessibilityUIServer,
- GameOverlayUI,
- PosterBoard.
AccessibilityUIServer is an addition to the Accessibility process group, and is listed in the processes in Activity Monitor as Accessibility. It thus runs in the background, supporting Accessibility features in Tahoe. These might perhaps extend the Accessibility enhancements for UIKit provided in UIAccessibility to macOS.
The other two apps aren’t run at load, so must be run on demand. GameOverlayUI appears to be responsible for providing the new Game Overlay features, and I suspect that PosterBoard is responsible for Lock Screen customisation. A key set for each of these in their property list is _ExperimentalNonLaunching, suggesting that these are still in test.
Apple describes Game Overlay as allowing “players to stay in the game when it matters most. Players can easily adjust settings, connect with friends, and check out the latest In-App Events and supported Game Center features, all without leaving their game.”
RunningBoard
What’s most unusual, and may be new with Tahoe, is that all three property lists include settings for RunningBoard and its life cycle management. These are the keys
- Managed, to require life cycle management by RunningBoard, set to true for all three;
- Reported, presumably to set RunningBoard to report its use of system resources, again set to true for all three.
I’m not aware of any similar RunningBoard settings for property lists in the LaunchAgents or LaunchDaemons folders, though.
Conclusions
- Launch Angels are currently three new services for macOS 26 Tahoe, run through
launchd
using property lists in /System/Library/LaunchAngels. - Those extend Accessibility, provide Game Overlay, and probably support Lock Screen customisation.
- They are unusual in having RunningBoard settings in their property lists.
- At least for the moment, Apple doesn’t intend anyone else trying to use Launch Angels of their own.
- As the LaunchAngels folder is on the SSV, it isn’t exploitable. Whether a LaunchAngels folder might work in the main Library folder is a different question, though.