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 mitmkbootimg
. 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 13kernel. 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 Partitionvendor
,system
oderdtb
(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 Partitionodm_dlkm
(im Gegensatz zu in die Partitionodm
) ermöglicht das Aktualisieren von ODM-Kernelmodulen ohne die Partitionodm
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 imboot
- oderinit_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 unteruserdata
ab. normalerweise sind 50 MB bis 100 MB ausreichend.misc
-Partition. Diese Partition wird von der Wiederherstellungspartition verwendet und ist 4 KB oder größeruserdata
-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 Partitionvendor_dlkm
speichern (im Gegensatz zur Partitionvendor
) ermöglicht das Aktualisieren des Kernels ohne die Partitionvendor
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.
Abbildung 1: Partitionslayout in Android 11
Einzelnes System-Image (SSI): Ein neues, konzeptionelles Bild, das die
system
undsystem_ext
Bilder. Wenn diese Partitionen für einen Satz können diese Geräte den SSI gemeinsam nutzen und müssen keinensystem
undsystem_ext
Bilder.system_ext
-Partition. Eine neue Partition, diesystem
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 imsystem
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
odervendor
installiert werden.
system
-Partition. Allgemeines Systembild, das für OEM-Produkte verwendet wird. Mi. empfehlen, proprietäre Module aus der Partitionsystem
zu verschieben, entweder durch per Upstreaming auf AOSP oder durch Verschieben in die Partitionsystem_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 Partitionsystem
, kann aber keine Verknüpfung zu anderen Bibliotheken imsystem
herstellen. -Partition an. Native Module in der Partitionproduct
können mit jeder Bibliothek verknüpft werden in der Partitionsystem
.Unter Android 11 und höher werden die
product
undvendor
können Partitionen mit VNDK-Bibliotheken in der Partitionsystem
verknüpft werden, Link zu anderen Bibliotheken in der Partitionsystem
.
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 seinerAndroid.bp
Dateien; Dadurch können Anbietermodule mit Systemmodulen verknüpft werden. VNDK-Bibliotheken, bei denen es sich um Anbietervarianten vonsystem
-Bibliotheken handelt, können Anbietervarianten für Anbietermodule durch Definieren vonvendor_available: true
erstellen in seinenAndroid.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ürproduct_available: true
Folgendes sein: definiert. Einige VNDK-Bibliotheken ohneproduct_available: true
sind nicht die für Produktmodule zur Verfügung stehen.