Sur Android 10 et 11,
le premier étage du ramdisk
contient le binaire d'initialisation de la première étape (qui effectue un installation anticipée
par entrées fstab) et les fichiers fstab du fournisseur. (Comme dans Android 9 et versions antérieures,
system.img
inclut le contenu de $TARGET_ROOT_OUT
.)
Pour les appareils équipés d'un disque RAM de démarrage (autre que A/B), l'initialisation de première étape est une configuration Exécutable situé à l'emplacement
/init
. Ces appareils installentsystem.img
en tant que/system
, Ensuite, effectuez une opération racine de commutateur pour déplacer le montage de/system
vers/
. Le contenu du disque RAM est libéré une fois l'installation terminée.Pour les appareils qui utilisent la récupération en tant que ramdisk, le premier niveau d'initialisation
/init
dans le disque ramdisk de récupération. Ces appareils basculent d'abord en racine/first_stage_ramdisk
pour supprimer les composants de récupération de l'environnement ; procédez de la même manière que pour les périphériques disposant d'un disque de démarrage (c'est-à-diresystem.img
en tant que/system
, basculez vers la racine pour déplacer ce montage sur/
, et libérez contenu ramdisk après l'installation). Siandroidboot.force_normal_boot=1
correspond à dans la ligne de commande du noyau (ou dans bootconfig d'Android 12 et versions ultérieures), les appareils démarrent normalement (sous Android) au lieu de démarrer en mode récupération.
Une fois la première étape d'initialisation terminée, /system/bin/init
exécute la commande
L'argument selinux_setup
pour compiler et charger SELinux sur le système Enfin,
init exécute à nouveau /system/bin/init
avec l'argument second_stage
. À cette adresse
la phase principale d'init s'exécute et poursuit le processus de démarrage
init.rc
scripts.
Les sections suivantes détaillent les différences de disposition des partitions pour les disques non-A/B avant et après Android 10.
Dispositions de partitions (appareils non-A/B)
Les sections suivantes détaillent les différences de disposition des partitions pour les disques non-A/B avant et après Android 10.
démarrage.img
Ramdisk (Android 8.x ou version antérieure) |
Système en tant que racine (Android 9) |
Ramdisk (Android 10 et 11). |
---|---|---|
Contient un noyau et un ramdisk.img -/ - init.rc - init - etc -> /system/etc - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... |
Ne contient qu'un noyau de démarrage normal. | Contient un noyau et ramdisk.img -/ - init - vendor fstab files - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... |
récupération.img
Contient un noyau de récupération et un ramdisk.img
de récupération
système.img
Ramdisk (Android 8.x ou version antérieure) |
Système en tant que racine (Android 9) |
Ramdisk (Android 10 et 11). |
---|---|---|
Contient un system.img -/ - bin/ - etc - vendor -> /vendor - ... |
Contient le contenu fusionné de system.img -/ - init.rc - init - etc -> /system/etc - system/ - bin/ - etc/ - vendor -> /vendor - ... - vendor/ (mount point) - odm/ (mount point) ... |
Contient le contenu fusionné de system.img -/ - init.rc - init -> /system/bin/init - etc -> /system/etc - system/ - bin/ - etc/ - vendor -> /vendor - ... - vendor/ (mount point) - odm/ (mount point) ... |
Dispositions de partitions (périphériques A/B)
Les sections suivantes détaillent les différences de disposition des partitions pour les appareils A/B versions antérieures et ultérieures à Android 10.
démarrage.img
Système en tant que racine (Android 9) |
Ramdisk (Android 10 et 11). |
---|---|
Contient un noyau de démarrage normal et un disque de récupération ramdisk
(BOARD_USES_RECOVERY_AS_BOOT := true ).Recovery-ramdisk est utilisé uniquement pour démarrer lors de la récupération. |
Contient un noyau de démarrage normal et un disque de récupération ramdisk
(BOARD_USES_RECOVERY_AS_BOOT := true ). Recovery-ramdisk est utilisé pour démarrer à la fois dans la récupération et sur Android. ramdisk.img -/ - init -> /system/bin/init - first_stage_ramdisk - vendor fstab files - etc -> /system/etc - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... |
système.img
Contient le contenu fusionné de $TARGET_SYSTEM_OUT
et $TARGET_ROOT_OUT
.
system.img
-/
- init.rc
- init -> /system/bin/init
- etc -> /system/etc
- system/
- bin/
- etc/
- vendor -> /vendor
- ...
- vendor/ (mount point)
- odm/ (mount point)
...