W systemach Android 10 i 11 ramdysk pierwszego stopnia zawiera plik binarny inicjujący pierwszy etap (który wykonuje wczesne montowanie zgodnie z wpisami fstab) i pliki fstab dostawcy. (Podobnie jak w Androidzie 9 i starszych, system.img
zawiera zawartość $TARGET_ROOT_OUT
.)
W przypadku urządzeń z dyskiem startowym (innym niż A/B) init pierwszego etapu jest statycznym plikiem wykonywalnym znajdującym się w
/init
. Urządzenia te montująsystem.img
jako/system
, a następnie wykonują operację rootowania przełącznika, aby przenieść montowanie z/system
do/
. Zawartość ramdysku jest zwalniana po zakończeniu montowania.W przypadku urządzeń korzystających z odzyskiwania jako ramdysku, pierwszy etap init znajduje się w katalogu
/init
w ramdysku odzyskiwania. Urządzenia te najpierw przełączają katalog główny na/first_stage_ramdisk
, aby usunąć komponenty odzyskiwania ze środowiska, a następnie wykonują te same czynności, co urządzenia z rozruchowym dyskiem RAM (tzn. montują pliksystem.img
jako/system
, przełączają katalog główny, aby przenieść ten montaż do/
i wolna zawartość ramdysku po zamontowaniu). Jeśli w wierszu poleceń jądra znajduje sięandroidboot.force_normal_boot=1
(lub konfiguracja bootconfig od wersji Androida 12 i nowszych), urządzenia uruchamiają się normalnie (w systemie Android) zamiast w trybie odzyskiwania.
Po zakończeniu pierwszego etapu init wykonuje /system/bin/init
z argumentem selinux_setup
w celu skompilowania i załadowania SELinux do systemu. Na koniec init ponownie wykonuje /system/bin/init
z argumentem second_stage
. W tym momencie rozpoczyna się główna faza init i kontynuuje proces rozruchu przy użyciu skryptów init.rc
W poniższych sekcjach szczegółowo opisano różnice w układach partycji dla urządzeń innych niż A/B przed i po systemie Android 10.
Układy partycji (urządzenia inne niż A/B)
W poniższych sekcjach szczegółowo opisano różnice w układach partycji dla urządzeń innych niż A/B przed i po systemie Android 10.
boot.img
Ramdysk (Android 8.x i starsze) | System jako root (Android 9) | Ramdysk (Android 10 i 11) |
---|---|---|
Zawiera jądro i plik ramdisk.img -/ - init.rc - init - etc -> /system/etc - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... | Zawiera tylko normalne jądro rozruchowe. | Zawiera jądro i ramdisk.img -/ - init - vendor fstab files - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... |
recovery.img
Zawiera jądro odzyskiwania i plik ramdisk.img
odzyskiwania
system.img
Ramdysk (Android 8.x i starsze) | System jako root (Android 9) | Ramdysk (Android 10 i 11) |
---|---|---|
Zawiera plik system.img -/ - bin/ - etc - vendor -> /vendor - ... | Zawiera połączoną zawartość system.img -/ - init.rc - init - etc -> /system/etc - system/ - bin/ - etc/ - vendor -> /vendor - ... - vendor/ (mount point) - odm/ (mount point) ... | Zawiera połączoną zawartość system.img -/ - init.rc - init -> /system/bin/init - etc -> /system/etc - system/ - bin/ - etc/ - vendor -> /vendor - ... - vendor/ (mount point) - odm/ (mount point) ... |
Układy partycji (urządzenia A/B)
W poniższych sekcjach szczegółowo opisano różnice w układach partycji dla urządzeń A/B przed i po systemie Android 10.
boot.img
System jako root (Android 9) | Ramdysk (Android 10 i 11) |
---|---|
Zawiera normalne jądro rozruchowe i ramdysk odzyskiwania ( BOARD_USES_RECOVERY_AS_BOOT := true ).Recovery-ramdisk służy tylko do uruchamiania systemu odzyskiwania. | Zawiera normalne jądro rozruchowe i ramdysk odzyskiwania ( BOARD_USES_RECOVERY_AS_BOOT := true ).Recovery-ramdisk służy do uruchamiania zarówno odzyskiwania, jak i systemu 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) ... |
system.img
Zawiera połączoną zawartość $TARGET_SYSTEM_OUT
i $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)
...