Mainline

Android 10 introduced Mainline (formerly called modular system components on this site). Mainline modularizes some Android system components and enables them to be updated outside of the normal Android release cycle. This enables Google and Android partners to distribute updates broadly, quickly, and seamlessly to end-user devices in a nonintrusive manner.

End-user devices can receive Mainline updates from the Android Google Play system update feature (which runs on the Google Play Store infrastructure) or through a partner-provided over-the-air (OTA) mechanism.

Architecture

Mainline converts selected system components into modules. The modular architecture shown in Figure 1 enables system components to be updated with critical bug fixes and other improvements as needed, without affecting lower-level vendor implementations or higher-level apps and services.

Mainline
architecture

Figure 1. Mainline architecture

Module updates don't introduce new APIs. They use only the SDK and System APIs guaranteed by the Compatibility Test Suite (CTS), communicate only with each other, and use only stable C API or stable AIDL interfaces.

Module updates

Some Mainline modules use the APEX container format (introduced in Android 10) and some use the APK format.

Updated Mainline modules can be packaged together and pushed to end-user devices, either by Google, using the Google Play system update feature, or by the Android partner, using a partner-provided OTA mechanism. The module package installs and rolls back atomically; either all modules that need to be updated are updated or none are updated.

Available modules

Module namePackage nameTypeRelease introduced
AdServicescom.google.android.adservicesAPEXAndroid 13
adbdcom.android.adbdAPEXAndroid 11
Android Healthcom.google.android.healthfitnessAPEXAndroid 14
AppSearchcom.android.appsearchAPEXAndroid 13
ARTcom.android.artAPEXAndroid 12
Bluetoothcom.google.android.btservicesAPEXAndroid 13
CellBroadcastcom.android.cellbroadcastAPEXAndroid 11
Config Infrastructurecom.android.configinfrastructureAPEXAndroid 14
Conscryptcom.android.conscryptAPEXAndroid 10
Device Schedulingcom.android.schedulingAPEXAndroid 12
DNS Resolvercom.android.resolvAPEXAndroid 10
DocumentsUIcom.android.documentsuiAPKAndroid 10
ExtServicescom.android.ext.servicesAPK (Android 10)
APEX (Android 11)
Android 10
IPsec/IKEv2 Librarycom.android.ipsecAPEXAndroid 11
MediaMedia: com.android.media

Media Codecs: com.android.media.swcodec
APEXAndroid 10 (extractors, MediaSession API)
Android 11 (MediaParser API)
MediaProvidercom.android.mediaproviderAPEXAndroid 11
ModuleMetadatacom.android.modulemetadataAPKAndroid 10
Network StackNetwork Stack Permission Configuration: com.android.networkstack.permissionconfig

Captive Portal Login: com.android.captiveportallogin

Network Components: com.android.networkstack
APKAndroid 10
NNAPI Runtimecom.android.neuralnetworksAPKAndroid 11
OnDevicePersonalization RuntimeMain functionality for the package: com.google.android.ondevicepersonalization (APEX)

OnDevicePersonalization API functionality: com.google.android.ondevicepersonalization (APK)

FederatedCompute APIs functionality: com.google.android.federatedcompute (APK)
APEX and APKAndroid 13
PermissionControllercom.android.permissioncontrollerAPKAndroid 10
Remote Key Provisioningcom.android.rkpdAPEXAndroid 14
SDK Extensionscom.android.sdkextAPEXAndroid 11
Statsdcom.android.os.statsdAPEXAndroid 11
Tetheringcom.android.tetheringAPEXAndroid 11
Time Zone Datacom.android.tzdataAPEXAndroid 10
UWBcom.android.uwbAPEXAndroid 13
Wi-Ficom.android.wifiAPEXAndroid 11