Mainline

Mit Android 10 wurde Mainline eingeführt (auf dieser Website früher als „modulare Systemkomponenten“ bezeichnet). Mainline modularisiert einige Android-Systemkomponenten und ermöglicht für sie Updates außerhalb des normalen Android-Releasezyklus. So können Google und Android-Partner Updates breit, schnell und nahtlos auf Endnutzergeräte verteilen, ohne die Nutzer zu stören.

Geräte von Endnutzern können Mainline-Updates über die Android-Systemupdatefunktion von Google Play (die auf der Google Play Store-Infrastruktur ausgeführt wird) oder über einen von einem Partner bereitgestellten Over-the-air-Mechanismus (OTA) erhalten.

Architektur

Mit Mainline werden ausgewählte Systemkomponenten in Module konvertiert. Die in Abbildung 1 dargestellte modulare Architektur ermöglicht es, Systemkomponenten bei Bedarf mit wichtigen Fehlerkorrekturen und anderen Verbesserungen zu aktualisieren, ohne dass sich dies auf die Implementierungen von Anbietern auf niedrigerer Ebene oder auf Apps und Dienste auf höherer Ebene auswirkt.

Mainline-Architektur

Abbildung 1: Mainline-Architektur

Durch Modul-Updates werden keine neuen APIs eingeführt. Sie verwenden nur das SDK und die System-APIs, die von der Compatibility Test Suite (CTS) garantiert werden, kommunizieren nur miteinander und verwenden nur stabile C-APIs oder stabile AIDL-Schnittstellen.

Modulaktualisierungen

Einige Mainline-Module verwenden das APEX-Containerformat (eingeführt in Android 10), andere das APK-Format.

Aktualisierte Mainline-Module können zusammengefasst und auf Endnutzergeräte übertragen werden. Dies kann entweder von Google über die Google Play-Systemupdatefunktion oder vom Android-Partner über einen vom Partner bereitgestellten OTA-Mechanismus erfolgen. Das Modulpaket wird atomar installiert und zurückgesetzt. Entweder werden alle Module, die aktualisiert werden müssen, aktualisiert oder keines.

Verfügbare Module

Modulname Paketname Eingeben Release eingeführt
AdServices com.google.android.adservices APEX Android 13
adbd com.android.adbd APEX Android 11
Android Health com.google.android.healthfitness APEX Android 14
AppSearch com.android.appsearch APEX Android 13
ART com.android.art APEX Android 12
Bluetooth com.google.android.btservices APEX Android 13
CellBroadcast com.android.cellbroadcast APEX Android 11
Konfigurationsinfrastruktur com.android.configinfrastructure APEX Android 14
Conscrypt com.android.conscrypt APEX Android 10
Geräteplanung com.android.scheduling APEX Android 12
DNS-Resolver com.android.resolv APEX Android 10
DocumentsUI com.android.documentsui APK Android 10
ExtServices com.android.ext.services APK (Android 10)
APEX (Android 11)
Android 10
IPsec/IKEv2-Bibliothek com.android.ipsec APEX Android 11
Medien Media: com.android.media

Media Codecs: com.android.media.swcodec
APEX Android 10 (Extrahierungstools, MediaSession API)
Android 11 (MediaParser API)
MediaProvider com.android.mediaprovider APEXAndroid 11
ModuleMetadata com.android.modulemetadata APK Android 10
Netzwerk-Stack Konfiguration der Berechtigungen für den Netzwerk-Stack: com.android.networkstack.permissionconfig

Captive-Portal-Anmeldung: com.android.captiveportallogin

Netzwerkkomponenten: com.android.networkstack
APK Android 10
NNAPI-Laufzeit com.android.neuralnetworks APK Android 11
OnDevicePersonalization Runtime Hauptfunktionen für das Paket: com.google.android.ondevicepersonalization (APEX)

Funktionen der OnDevicePersonalization API: com.google.android.ondevicepersonalization (APK)

Funktionen der FederatedCompute APIs: com.google.android.federatedcompute (APK)
APEX und APK Android 13
PermissionController com.android.permissioncontroller APK Android 10
Remote Key Provisioning com.android.rkpd APEX Android 14
SDK-Erweiterungen com.android.sdkext APEX Android 11
Statsd com.android.os.statsd APEX Android 11
Tethering com.android.tethering APEX Android 11
Zeitzonendaten com.android.tzdata APEX Android 10
UWB com.android.uwb APEX Android 13
WLAN com.android.wifi APEX Android 11