Partitionen – Übersicht

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:

Layout der Kernpartitionen.

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 und init_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 und odm 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 Partition boot.

  • 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 Partition system 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 im boot- oder init_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 der vendor-Partition speichern, können Sie Kernelmodule aktualisieren, ohne die vendor-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 der odm-Partition speichern, können Sie ODM-Kernelmodule aktualisieren, ohne die odm-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 auf userdata 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 und system_dlkm
  • die Partitionen init_boot, system, system_ext und product

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.