Android-Geräte enthalten mehrere Partitionen oder bestimmte Speicherbereiche, die für bestimmte Teile der Gerätesoftware verwendet werden. Jede Partition enthält ein Partitions-Image (eine IMG-Datei) oder einen Snapshot der gesamten Software für die Partition. Abbildung 1 zeigt das Layout der Kernpartitionen auf einem Gerät:
Abbildung 1: Layout der Kernpartitionen.
Partitionen werden in drei Kategorien eingeteilt:
Systempartitionen werden aktualisiert, wenn das Betriebssystem und andere Funktionen aktualisiert werden. Die Partitionen
system
,boot
undinit_boot
sind Partitionen des Kernsystems.Anbieterpartitionen enthalten geräte- und hardwarespezifischen Code, der nach der ersten Veröffentlichung möglicherweise nie aktualisiert wird. Die Partitionen
vendor
,vendor_boot
undodm
sind Kernpartitionen.Nicht aktualisierbare Partitionen sind Partitionen, deren Inhalt entweder nicht aktualisiert wird oder mit Nutzerdaten aktualisiert wird.
Code in System- und Anbieterpartitionen kann über eine stabile Schnittstelle namens Anbieterschnittstelle (VINTF) interagieren.
Systempartitionen
Im Folgenden finden Sie eine Liste aller Systempartitionen und ihrer Verwendung:
boot
Partition Diese Partition enthält ein Generic Kernel Image (GKI). Diese Partition enthält auch die generische Ramdisk auf Geräten, die mit Android 12 oder niedriger eingeführt wurden. Weitere Informationen zur generischen Ramdisk finden Sie unter Inhalte des generischen Ramdisk-Images.init_boot
-Partition (Android 13 und höher): Diese Partition enthält eine generische Ramdisk. In Android 11 und 12 befindet sich die generische Ramdisk in der Partitionboot
.system
Partition Diese Partition enthält das Systemimage, das für OEM-Produkte verwendet wird.system_ext
Partition Diese Partition enthält Systemressourcen und proprietäre Systemmodule, die das gemeinsame System-Image in der Partitionsystem
erweitern.system_dlkm
Partition Diese Partition enthält GKI-Module. Weitere Informationen zu dieser Partition finden Sie unter GKI-Modulpartition implementieren.product
Partition Diese Partition kann produktspezifische Module enthalten, die nicht mit anderen Partitionen gebündelt sind.pvmfw
Partition In dieser Partition wird die Protected Virtual Machine Firmware (pvmfw) gespeichert, der erste Code, der in geschützten VMs ausgeführt wird. Weitere Informationen finden Sie unter Geschützte Firmware für virtuelle Maschinen.generic_bootloader
Partition Diese Partition enthält den generischen Bootloader.
Anbieterpartitionen
Im Folgenden finden Sie eine Liste aller Anbieterpartitionen und ihrer Verwendung:
vendor_boot
Partition Diese Partition enthält anbieterspezifischen Bootcode. Weitere Informationen finden Sie unter Vendor-Boot-Partitionen.recovery
Partition Auf dieser Partition wird das Wiederherstellungs-Image gespeichert, das während des OTA-Updates (Over-the-Air) gebootet wird. Auf Geräten, die nahtlose Updates unterstützen, können die Wiederherstellungsimages als Ramdisk imboot
- oderinit_boot
-Image gespeichert werden. Weitere Informationen zu nahtlosen Updates finden Sie unter A/B-Updates (nahtlos).vbmeta
Partition Diese Partition enthält die Informationen zu Verified Boot für alle Partitionen. Diese Informationen bestätigen, dass die in jeder Partition installierten Images vertrauenswürdig sind. Weitere Informationen zu Verified Boot finden Sie unter Verified Boot.vendor
Partition Diese Partition enthält alle Binärdateien, die anbieterspezifisch und nicht allgemein genug für die Verteilung an AOSP sind.vendor_dlkm
Partition Diese Partition enthält Kernelmodule des Anbieters. Wenn Sie Anbieter-Kernelmodule in dieser Partition anstelle dervendor
-Partition speichern, können Sie Kernelmodule aktualisieren, ohne dievendor
-Partition aktualisieren zu müssen. Weitere Informationen finden Sie unter DKLM-Partitionen für Anbieter und ODMs.odm
Partition Diese Partition enthält Anpassungen des Original Design Manufacturer (ODM) an die Board Support Packages (BSPs) des System-on-Chip-Anbieters (SoC). Durch solche Anpassungen können ODMs SoC-Komponenten ersetzen oder anpassen und Kernelmodule für platinenspezifische Komponenten, Daemons und ODM-spezifische Funktionen auf Hardware-Abstraktionsschichten (HALs) implementieren. Diese Partition ist optional. In der Regel enthält diese Partition Anpassungen, sodass Geräte für mehrere Hardware-SKUs ein einzelnes Anbieterimage verwenden können. Weitere Informationen finden Sie unter ODM-Partitionen.odm_dlkm
Partition Diese Partition ist für die Speicherung von ODM-Kernelmodulen vorgesehen. Wenn Sie ODM-Kernelmodule in dieser Partition anstelle derodm
-Partition speichern, können Sie ODM-Kernelmodule aktualisieren, ohne dieodm
-Partition aktualisieren zu müssen. Weitere Informationen finden Sie unter DKLM-Partitionen für Anbieter und ODMs.radio
Partition Diese Partition enthält das Funkmodul-Image und ist nur für Geräte erforderlich, die ein Funkmodul mit funkmodulspezifischer Software in einer dedizierten Partition enthalten.
Nicht aktualisierbare Partitionen
Im Folgenden finden Sie eine Liste aller nicht aktualisierbaren Partitionen und ihrer Verwendung:
cache
Partition Diese Partition enthält temporäre Daten und ist optional, wenn auf Ihrem Gerät nahtlose Updates verwendet werden. Diese Partition muss nicht vom Bootloader aus beschreibbar, aber löschbar sein. Die Partitionsgröße hängt vom Gerätetyp und vom verfügbaren Speicherplatz aufuserdata
ab. Normalerweise reichen 50 bis 100 MB aus.userdata
Partition Diese Partition enthält vom Nutzer installierte Apps und Daten, einschließlich Anpassungsdaten.metadata
Partition Wenn auf Ihrem Gerät die Metadatenverschlüsselung verwendet wird, enthält diese Partition den Schlüssel für die Metadatenverschlüsselung. Die Größe dieser Partition beträgt mindestens 16 MB, sie ist nicht verschlüsselt und ihre Daten werden nicht per Snapshot gesichert. Diese Partition wird gelöscht, wenn das Gerät auf die Werkseinstellungen zurückgesetzt wird.
Regeln und Empfehlungen für die Aktualisierung von Partitionen
Wir empfehlen, alle Systempartitionen als Ganzes und alle Anbieterpartitionen als Ganzes zu aktualisieren. Wenn Sie die Partitionen als Ganzes aktualisieren, können Sie testen, ob die Schnittstellen zwischen den Bildern in den einzelnen Partitionen stabil bleiben.
Unabhängig davon, wie Sie Ihre Partitionen aktualisieren, müssen die folgenden Partitionen aufgrund eng gekoppelter Abhängigkeiten und fehlender stabiler APIs aktualisiert werden:
- Die Partitionen
boot
undsystem_dlkm
- die Partitionen
init_boot
,system
,system_ext
undproduct
Dynamische Partitionen
Auf Geräten mit Android 11 und höher können dynamische Partitionen unterstützt werden. Das ist ein Partitionierungssystem für den Nutzerbereich von Android, mit dem Sie Partitionen während Over-the-Air-Updates (OTA) erstellen, ihre Größe ändern oder sie löschen können. Weitere Informationen finden Sie unter Dynamische Partitionen.
misc
Partition Diese Partition wird von der Wiederherstellungspartition verwendet und ist mindestens 4 KB groß.tos
Partition Diese Partition enthält das binäre Image des Trusty-Betriebssystems und wird nur verwendet, wenn das Gerät Trusty enthält. Weitere Informationen finden Sie unter Trusty OS-Partitionen (TOS).
Soong-Produktvarianten
Das Soong-Build-System verwendet Bildvarianten, um Build-Abhängigkeiten aufzuteilen. Native Module (/build/soong/cc
) können Systemprozessmodule in die Core-Variante und Vendor-Prozessmodule in die Vendor-Variante ändern. Ein Modul in einer Image-Variante kann nicht mit anderen Modulen in einer anderen Image-Variante verknüpft werden.
In Android 12 oder höher wird durch ein Systemmodul mit vendor_available: true
zusätzlich zur Kernvariante eine Anbietervariante erstellt. Zum Erstellen einer Produktvariante muss product_available: true
definiert werden. Einige VNDK-Bibliotheken ohne product_available: true
sind für Produktmodule nicht verfügbar.