W Androidzie 10 i 11
pierwszy etap ramdysku
zawiera binarny plik init pierwszego etapu (który wykonuje wczesne montowanie zgodnie z wpisami fstab) i pliki fstab dostawcy. (Podobnie jak w przypadku Androida 9 i starszych wersji, system.img zawiera zawartość $TARGET_ROOT_OUT).
W przypadku urządzeń z boot-ramdiskiem (bez partycji A/B) pierwszy etap inicjowania to statyczny plik wykonywalny znajdujący się w
/init. Urządzenia te montująsystem.imgjako/system, a następnie wykonują operację zmiany katalogu głównego, aby przenieść punkt montowania z/systemdo/. Po zakończeniu montowania zawartość dysku RAM jest zwalniana.W przypadku urządzeń, które używają odzyskiwania jako dysku RAM, pierwszy etap inicjowania znajduje się w
/initna dysku RAM odzyskiwania. Najpierw przełączają one katalog główny na/first_stage_ramdisk, aby usunąć z otoczenia komponenty przywracania, a potem postępują tak samo jak urządzenia z boot-ramdiskiem (czyli montująsystem.imgjako/system, przełączają katalog główny, aby przenieść ten montaż do/, i zwalniają zawartość ramdisku po zamontowaniu). Jeśliandroidboot.force_normal_boot=1znajduje się w wierszu poleceń jądra (lub w konfiguracji rozruchu od Androida 12), urządzenia uruchamiają się normalnie (w Androidzie), a nie w trybie odzyskiwania.
Po zakończeniu inicjowania pierwszego etapu wykonuje polecenie /system/bin/init z argumentem selinux_setup, aby skompilować i wczytać SELinux do systemu. Na koniec funkcja init wykonuje /system/bin/init ponownie z argumentem second_stage. W tym momencie uruchamia się główna faza procesu inicjowania, która kontynuuje proces rozruchu za pomocą skryptów init.rc.
W kolejnych sekcjach opisujemy różnice w układach partycji na urządzeniach innych niż A/B przed Androidem 10 i po nim.
Układy partycji (urządzenia inne niż A/B)
W kolejnych sekcjach opisujemy różnice w układach partycji na urządzeniach innych niż A/B przed Androidem 10 i po nim.
boot.img
| Ramdisk (Android 8.x i starszy) |
System jako root (Android 9) |
Ramdisk (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 środowisko odzyskiwania ramdisk.img
system.img
| Ramdisk (Android 8.x i starszy) |
System jako root (Android 9) |
Ramdisk (Android 10 i 11) |
|---|---|---|
Zawiera
system.img
-/
- bin/
- etc
- vendor -> /vendor
- ...
|
Zawiera połączone treści z plików
system.img
-/
- init.rc
- init
- etc -> /system/etc
- system/
- bin/
- etc/
- vendor -> /vendor
- ...
- vendor/ (mount point)
- odm/ (mount point)
...
|
Zawiera połączone treści z plików
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 sekcjach poniżej znajdziesz szczegółowe informacje o różnicach w układach partycji na urządzeniach A/B przed Androidem 10 i po nim.
boot.img
| System jako root (Android 9) |
Ramdisk (Android 10 i 11) |
|---|---|
Zawiera jądro normalnego rozruchu i dysk RAM odzyskiwania (BOARD_USES_RECOVERY_AS_BOOT := true).Dysk RAM odzyskiwania jest używany tylko do rozruchu w trybie odzyskiwania. |
Zawiera normalne jądro rozruchowe i dysk RAM do przywracania (BOARD_USES_RECOVERY_AS_BOOT := true). Dysk RAM do przywracania jest używany do uruchamiania zarówno trybu przywracania, jak i Androida.
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łączone treści z $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)
...