W Androidzie 10 i 11 dysk RAM pierwszego etapu zawiera binarny plik init pierwszego etapu (który wykonuje wczesne montowanie zgodnie z wpisami fstab) oraz pliki fstab dostawcy. (Podobnie jak w Androidzie 9 i starszych wersjach, system.img zawiera zawartość $TARGET_ROOT_OUT.)
W przypadku urządzeń z dyskiem RAM rozruchowym (nie A/B) init pierwszego etapu jest statycznym plikiem wykonywalnym znajdującym się w lokalizacji
/init. Te urządzenia montująsystem.imgjako/system, a następnie wykonują operację przełączenia katalogu głównego, aby przenieść montowanie z/systemdo/. Po zakończeniu montowania zawartość dysku RAM jest zwalniana.W przypadku urządzeń, które używają odzyskiwania jako dysku RAM, init pierwszego etapu znajduje się w lokalizacji
/initna dysku RAM odzyskiwania. Te urządzenia najpierw przełączają katalog główny na/first_stage_ramdiskaby usunąć komponenty odzyskiwania ze środowiska, a następnie postępują tak samo jak urządzenia z dyskiem RAM rozruchowym (czyli montująsystem.imgjako/system, przełączają katalog główny, aby przenieść to montowanie do/, i zwalniają zawartość dysku RAM po montowaniu). Jeśli w wierszu poleceń jądra (lub w konfiguracji rozruchu w Androidzie 12 i nowszych wersjach) znajduje sięandroidboot.force_normal_boot=1, urządzenia uruchamiają się normalnie (w Androidzie), a nie w trybie odzyskiwania.
Po zakończeniu init pierwszego etapu wykonuje on /system/bin/init z argumentem selinux_setup, aby skompilować i załadować SELinux do systemu. Na koniec init ponownie wykonuje /system/bin/init z argumentem second_stage. W tym momencie uruchamia się główna faza init i kontynuuje proces rozruchu za pomocą skryptów init.rc.
W kolejnych sekcjach opisujemy różnice w układach partycji na urządzeniach nie A/B przed Androidem 10 i po nim.
Układy partycji (urządzenia nie A/B)
W kolejnych sekcjach opisujemy różnice w układach partycji na urządzeniach nie A/B przed Androidem 10 i po nim.
boot.img
| Dysk RAM (Android 8.x i starsze wersje) |
System jako katalog główny (Android 9) |
Dysk RAM (Android 10 i 11) |
|---|---|---|
Zawiera jądro i
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 ramdisk.img odzyskiwania.
system.img
| Dysk RAM (Android 8.x i starsze wersje) |
System jako katalog główny (Android 9) |
Dysk RAM (Android 10 i 11) |
|---|---|---|
Zawiera
system.img
-/
- bin/
- etc
- vendor -> /vendor
- ...
|
Zawiera scaloną zawartość
system.img
-/
- init.rc
- init
- etc -> /system/etc
- system/
- bin/
- etc/
- vendor -> /vendor
- ...
- vendor/ (mount point)
- odm/ (mount point)
...
|
Zawiera scaloną 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 kolejnych sekcjach opisujemy różnice w układach partycji na urządzeniach A/B przed Androidem 10 i po nim.
boot.img
| System jako katalog główny (Android 9) |
Dysk RAM (Android 10 i 11) |
|---|---|
Zawiera normalne jądro rozruchowe i dysk RAM odzyskiwania
(BOARD_USES_RECOVERY_AS_BOOT := true).Dysk RAM odzyskiwania służy tylko do uruchamiania w trybie odzyskiwania. |
Zawiera normalne jądro rozruchowe i dysk RAM odzyskiwania
(BOARD_USES_RECOVERY_AS_BOOT := true). Dysk RAM odzyskiwania służy do uruchamiania zarówno w trybie odzyskiwania, jak i w Androidzie.
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 scaloną 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)
...