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.img
jako/system
, a następnie wykonują operację zmiany katalogu głównego, aby przenieść punkt montowania z/system
do/
. 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
/init
na 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.img
jako/system
, przełączają katalog główny, aby przenieść ten montaż do/
, i zwalniają zawartość ramdisku po zamontowaniu). Jeśliandroidboot.force_normal_boot=1
znajduje 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)
...