Übersicht

Android-Geräte umfassen mehrere Partitionen, die im um den Bootvorgang zu starten.

Standardpartitionen

  • boot-Partition. Diese Partition enthält ein Kernel-Image und wurde erstellt mit mkbootimg. Sie können eine virtuelle Partition verwenden, um beide Images zu flashen. ohne eine neue Bootpartition zu flashen. Diese Partition enthält auch die generische ramdisk auf Geräten, die vor dem Android 13

    • kernel. Die virtuelle Partition kernel überschreibt den Kernel (zImage, zImage-dtb, Image.gz-dtb), indem Sie das neue Kernel-Image über das alte Kernel-Image. Wenn der bereitgestellte Entwicklungs-Kernel nicht kompatibel ist, müssen Sie die Partition vendor, system oder dtb (falls vorhanden) mit zugehöriger Kernelmodule.

    • ramdisk. Die virtuelle Partition ramdisk überschreibt die Ramdisk durch Ich schreibe das neue Ramdisk-Image über das alte.

    Beim Überschreiben wird die Startposition des vorhandenen Images bestimmt. in eMMC und kopiert das neue Bild an diesen Speicherort. Das neue Image (Kernel oder ramdisk) größer sein als die vorhandene Datei. um Platz zu schaffen, Bootloader kann Daten nach dem Image verschieben oder den Vorgang mit Fehler.

  • init_boot-Partition. Diese Partition enthält die generische ramdisk für die mit Android 13 und höher auf den Markt kommen.

  • system-Partition. Diese Partition enthält das Android-Framework.

  • odm-Partition. Diese Partition enthält den Originaldesignhersteller (ODM) Anpassungen an SoC-Anbieter (System-on-Chip) Board-Support-Pakete (BSPs). Durch solche Anpassungen können ODMs SoC-Komponenten ersetzen oder anpassen. Kernelmodule für boardspezifische Komponenten, Daemons und ODM-spezifische Funktionen auf Hardwareabstraktionsebenen (HALs) Diese Partition ist optional; in der Regel enthält sie Anpassungen, damit Geräte ein einzelnes Anbieter-Image für mehrere Hardware-SKUs verwenden. Weitere Informationen finden Sie unter ODM Partitionen.

  • odm_dlkm-Partition. Diese Partition dient zum Speichern des ODM-Kernels Module. Speichern von ODM-Kernelmodulen in der Partition odm_dlkm (im Gegensatz zu in die Partition odm) ermöglicht das Aktualisieren von ODM-Kernelmodulen ohne die Partition odm zu aktualisieren.

  • recovery-Partition. Diese Partition speichert das Wiederherstellungs-Image, während des OTA-Prozesses gestartet werden. Geräte, die nahtlos Updates können die Wiederherstellungs-Images als im boot- oder init_boot-Image enthaltene Ramdisk (anstatt in einem separaten Bild).

  • cache-Partition. Diese Partition ist optional und speichert temporäre Daten ob ein Gerät unterbrechungsfreie Updates verwendet. Die Cache-Partition muss nicht beschreibbar, muss aber löschbar sein. Die Partition Die Größe hängt vom Gerätetyp und der Verfügbarkeit von Speicherplatz unter userdata ab. normalerweise sind 50 MB bis 100 MB ausreichend.

  • misc-Partition. Diese Partition wird von der Wiederherstellungspartition verwendet und ist 4 KB oder größer

  • userdata-Partition. Diese Partition enthält von Nutzern installierte Apps und einschließlich Anpassungsdaten.

  • metadata-Partition. Diese Partition wird zum Speichern der Metadaten verwendet Verschlüsselungsschlüssel, wenn das Gerät Metadaten verwendet Verschlüsselung. Die Größe ist 16 MB oder größer. Er ist nicht verschlüsselt und es gibt keinen Snapshot der Daten. Die Daten werden beim Zurücksetzen des Geräts auf die Werkseinstellungen gelöscht. Die Nutzung dieser Partition ist streng eingeschränkt.

  • vendor-Partition. Diese Partition enthält Binärdateien, an AOSP verteilbar ist. Enthält das Gerät keine proprietären Informationen, können Sie diese Partition weglassen.

  • vendor_dlkm-Partition. Diese Partition ist für die Speicherung des Anbieters vorgesehen Kernelmodule. Kernelmodule des Anbieters in der Partition vendor_dlkm speichern (im Gegensatz zur Partition vendor) ermöglicht das Aktualisieren des Kernels ohne die Partition vendor zu aktualisieren.

  • radio-Partition. Diese Partition enthält das Radio-Image und wird benötigt nur für Geräte mit einem Funkgerät mit radiospezifischer Software in einem dedizierte Partition an.

  • tos-Partition. Diese Partition speichert das Binär-Image des Trusty-Betriebssystems und wird nur verwendet, wenn das Gerät Trusty enthält. Weitere Informationen finden Sie in den Nutzungsbedingungen Partitionen.

  • pvmfw-Partition. Diese Partition speichert die geschützte virtuelle Maschine Firmware (pvmfw), also der erste Code, der in geschützten VMs ausgeführt wird. Weitere Informationen finden Sie unter Firmware geschützter virtueller Maschinen .

Dynamische Partitionen

Geräte mit Android 11 und höher unterstützen dynamische Partitionen, ein Partitionierungssystem für den Benutzerbereich für Android, das ermöglicht das Erstellen, Anpassen der Größe oder Zerstören von Partitionen während Over-the-Air (OTA) Aktualisierungen. Weitere Informationen hierzu finden Sie unter Dynamisch Partitionen

Kritische Partitionen festlegen

Wenn auf dem Gerät bestimmte Partitionen oder Daten benötigt werden, müssen Sie festlegen, entweder vollständig geschützt oder reflashbar, das heißt, Sie können mit einem fastboot oem-Befehl neu erstellt, bereitgestellt oder extrahiert werden. Dazu gehören z. B. gerätespezifische Einstellungen, Seriennummern, Kalibrierungsdaten und mehr.

Änderungen bei Android 11

Android 11 umfasst zahlreiche Änderungen an Partitionen, einschließlich Einschränkungen bei der Verknüpfung mit Bibliotheken und neuen Soong-Bildvarianten.

Android-Partitionslayout

Abbildung 1: Partitionslayout in Android 11

  • Einzelnes System-Image (SSI): Ein neues, konzeptionelles Bild, das die system und system_ext Bilder. Wenn diese Partitionen für einen Satz können diese Geräte den SSI gemeinsam nutzen und müssen keinen system und system_ext Bilder.

  • system_ext-Partition. Eine neue Partition, die system Ressourcen verwenden kann und kann Systemmodule enthalten, die:

    • Erweitern Sie AOSP-Systemmodule in der Partition system. Wir empfehlen, diese Module per Upstreaming auf AOSP übertragen, damit sie im system installiert werden können später zu erstellen.

    • Setze OEM- oder SoC-spezifische Module zusammen. Wir empfehlen, solche Module zu entbündeln. Sie können in der Partition product oder vendor installiert werden.

  • system-Partition. Allgemeines Systembild, das für OEM-Produkte verwendet wird. Mi. empfehlen, proprietäre Module aus der Partition system zu verschieben, entweder durch per Upstreaming auf AOSP oder durch Verschieben in die Partition system_ext.

  • product-Partition. Diese Partition kann jetzt zulässige Schnittstellen verwenden, um Sie installieren produktspezifische Module, die nicht mit anderen Partitionen.

VNDK-Änderungen

Das Vendor Native Development Kit (VNDK) eine Reihe von Bibliotheken, die in der Partition system installiert sind und Anbietern exklusiv zur Implementierung ihrer HALs zur Verfügung stehen.

  • In Android 10 und niedriger kann die Partition vendor mit VNDK-Bibliotheken in die Partition system, kann aber keine Verknüpfung zu anderen Bibliotheken im system herstellen. -Partition an. Native Module in der Partition product können mit jeder Bibliothek verknüpft werden in der Partition system.

  • Unter Android 11 und höher werden die product und vendor können Partitionen mit VNDK-Bibliotheken in der Partition system verknüpft werden, Link zu anderen Bibliotheken in der Partition system.

Produktvarianten (Songs)

Das Soong-Build-System nutzt Image-Varianten, um Abhängigkeiten zu erstellen. Native Module (/build/soong/cc) können das System mutieren zu den Kern-Varianten- und Anbieterprozessmodulen Anbietervariante; Ein Modul in einer Bildvariante kann nicht mit anderen Modulen in verknüpft werden. eine andere Bildvariante.

  • In Android 10 oder niedriger erstellt ein Systemmodul automatisch Kernvarianten. Sie können auch Anbietervarianten erstellen, indem Sie vendor_available: true in seiner Android.bp Dateien; Dadurch können Anbietermodule mit Systemmodulen verknüpft werden. VNDK-Bibliotheken, bei denen es sich um Anbietervarianten von system-Bibliotheken handelt, können Anbietervarianten für Anbietermodule durch Definieren von vendor_available: true erstellen in seinen Android.bp-Dateien (siehe Beispiel).

  • In Android 11 kann ein Systemmodul auch eine Produktvariante erstellen (zusätzlich zu den Kern- und Anbietervarianten), indem Sie indem vendor_available: true definiert wird.

  • Unter Android 12 oder höher wird ein Systemmodul vendor_available: true erstellt zusätzlich zum Kern eine Anbietervariante. Variante. Damit Sie eine Produktvariante erstellen können, muss für product_available: true Folgendes sein: definiert. Einige VNDK-Bibliotheken ohne product_available: true sind nicht die für Produktmodule zur Verfügung stehen.