Internally, Apple engineers rely on a dedicated app to view, manage, and toggle in-development features and user interface elements within pre-release versions of new operating systems. Here's what the app is called and what it can do.
An essential internal-use application known as Livability lets the company's software engineers keep track of individual operating system features and test devices as a whole. It can be found in InternalUI builds of iOS, a specialized variant of the iPhone's operating system that's used internally for software development.
The application itself is a core component of Apple's pre-release operating systems. With Livability, Apple's software development and engineering teams can enable, disable, and debug upcoming features to make sure they are fully functional before their inevitable release to the general public.
Speaking to people familiar with the matter, AppleInsider has received information about the core functionality of the Livability application, as well as the specific options and settings the app contains.
Settings and features available within the Livability app
Livability provides Apple employees with the following information and settings related to development devices:
- Essential device information (serial number, hardware model, codename)
- Information on fusing — development or production
- Details about VPN and MDM profiles currently installed
- Options for software updates, backups, custom boot arguments, and Carry status adjustment
- Feature Flag viewer — lets users manage and view individual features or groups of features
- Command Center — gives employees a way of making changes to multiple development devices simultaneously
Device information and settings within Livability
The Livability app contains an overview of essential information and options for development devices. Through the app, its users can see the serial numbers, codenames, hardware models, and marketing names of development devices, among other things.
The application also contains information about device fusing — a key hardware characteristic of all Apple devices. The devices Apple sells to its customers are "production-fused," meaning that they have significant hardware-level security measures in place, preventing the device from running certain types of code.
"Development-fused" devices are the exact opposite of this. Pre-PVT type prototype units, such as EVT or DVT devices are in most cases development-fused, meaning it is possible to use the JTAG testing standard through specialized cables.
Apple uses both development-fused and production-fused devices to test different things, which is why Livability has an indicator for this key hardware characteristic.
The application also allows employees to specify whether or not their device is a so-called "carry" device, a daily driver, in other words. According to people familiar with the application, this information is primarily of use to Apple's engineering teams.
In addition to this, Livability features options to set custom boot arguments for the operating system kernel. With this feature, the user can force the device to boot into verbose mode or a special diagnostics menu, among other things.
Livability's feature management system
Livability provides Apple's software development teams with a comprehensive overview of all features available on the operating system currently installed. The application displays and organizes feature flags — which are toggles that can be used to disable or enable software features.
Feature flags are organized primarily by date. In speaking to people familiar with the development of Apple's latest operating systems, we have learned that feature flags are sorted into the following categories for each year:
- Spring
- WWDC
- Fall
- Winter
These categories indicate the intended release date for new operating system features. Apple generally releases updates for its latest operating systems throughout the year, and such updates often introduce new features that were announced or previewed at an earlier point in time.
Apple's internal-use operating systems can have features, or early code for features, that are scheduled for release years into the future. The same operating system could have feature flags meant for release during WWDC 2024 and WWDC 2026, for instance.
Within these time-based categories, feature flags are further divided according to the app or aspect of the operating system they affect. This means that within WWDC 2024, for instance, employees would see categories such as Notes, Music, Spotlight Search, and so on.
Individual operating system features, or features part of a larger initiative, are often developed under codenames known only to select Apple employees. While some codenames can present a vague indication of the feature's overall goal, the exact purpose of codenamed features cannot be discerned without people who have direct knowledge of the matter.
Greymatter, a reference to a type of tissue within the human brain, was the codename for Apple Intelligence. Apple's new universal calculator app was codenamed GreyParrot — a nod to the African Gray species of parrot, known for its high intelligence compared to other bird species.
Features are also classified according to their current development status, which changes as time moves on. There are four categories that indicate the degree of completion:
- Under Development
- Code Complete
- Preview Ready
- Feature Complete
Within Livability, it's possible to activate all features with a specific development status through a dedicated subscription setting. We were told that Apple employees could use this to, for example, activate all features marked "Under Development."
The application will display different warnings depending on the category selected. These warnings serve to inform the users of the potential effects a new feature may have on their machine.
Generally, features other than those marked "Feature Complete" have not been fully tested and may be incomplete in some way. Features labeled "Under Development" could cause devices or specific applications to behave in unexpected ways.
Practically, this means that in-development features may prevent system applications or UI elements from working properly, causing them to crash upon launch. Alternatively, visual glitches such as misplaced text, images, or toggles can also sometimes occur.
What is Livability used for?
Livabillty's feature flag viewer is of use in situations where debugging is necessary. If a new feature causes major issues, Apple's engineers can disable it until it has been fixed, then activate it later on to confirm its functionality.
With the app, Apple's employees can disable so-called sensitive UI elements so that they are not accidentally exposed to unauthorized individuals. An example of this use case was seen in a pop-up message uncovered by users of social media platform X in June of 2024.
At WWDC 2024, Apple previewed a new user interface for Apple Intelligence and Siri but kept the UI disabled in the initial developer beta of iOS 18 released on June 10. Users quickly found a way to activate it, however, which is how the pop-up message was accidentally discovered.
The message warned employees that sensitive UI and sounds were enabled and that they were not to be used within 50 feet of undisclosed individuals. Instructions on how to disable the sensitive UI elements were also included in the message.
As mentioned earlier, the application also lets users install software updates and create backups, manage VPN settings, and much more. This makes Livability an all-around device management application for Apple's software teams.
The information we acquired about the Livability app provides useful insights into Apple's development process, how software teams manage and organize new features, and how they keep track of development units.
2 Comments
Now take a deep dive in the folder /System/Library/FeatureFlags and do a follow-up report. There is a file here called "Livability" as well as a bunch of project code names with tags like "DevelopmentPhase" and "DisclosureRequired."
If you want to mess around in this folder, it's protected by SIP and it's also in the "sealed volume" area of the system, so at minimum you'll need to disable SIP and break the seal in order to make changes.
Interesting article! Thanks :)