partycje dysku RAM;

.

W Androidzie 10 i 11 dysk Ramdisk pierwszego etapu zawiera plik binarny init pierwszego etapu (wykonuje wczesne podłączanie zgodnie z wymaganiami według wpisów fstab) i plików fstab dostawcy. (Tak jak w Androidzie 9 i starszych system.img zawiera zawartość $TARGET_ROOT_OUT.)

  • W przypadku urządzeń z boot-ramdisk (nie A/B) pierwszy etap inicjalizacji to statyczny plik wykonywalny znajdujący się w folderze /init. Te urządzenia podłączają system.img jako /system. a następnie wykonaj operację przełącznika poziomu głównego, by przesunąć uchwyt w miejscu /system do /. Treści z pamieci RAM są zwalniane po zakończeniu montowania.

  • W przypadku urządzeń używających odzyskiwania jako dysku RAM, inicjowanie pierwszego etapu znajduje się /init w dysku pamięci RAM przywracania. Na tych urządzeniach najpierw przełączamy root na /first_stage_ramdisk, aby usunąć komponenty odzyskiwania z otoczenia, a potem postępujemy tak samo jak w przypadku urządzeń z boot-ramdisk (czyli montujemy system.img jako /system, przełączamy root, aby przenieść ten mount do /, i zwalniamy zawartość ramdisk po zamontowaniu). Jeśli androidboot.force_normal_boot=1 jest obecny na linii poleceń jądra (lub w bootconfig od Androida 12), urządzenia uruchamiają się normalnie (w Androidzie), a nie w trybie odzyskiwania.

Po zakończeniu pierwszego etapu inicjalizacji uruchamia się /system/bin/init z argumentem selinux_setup, aby skompilować i wczytać SELinux do systemu. I na koniec, init wykonuje ponownie funkcję /system/bin/init z argumentem second_stage. W tym momencie uruchamia się główna faza inicjalizacji i kontynuuje proces uruchamiania za pomocą skryptów init.rc.

W poniższych sekcjach opisaliśmy różnice w układach partycji innych niż A/B na urządzeniach z Androidem 10 i nowszych.

Układy partycji (urządzenia inne niż A/B)

W poniższych sekcjach opisaliśmy różnice w układach partycji innych niż A/B na urządzeniach z Androidem 10 i nowszych.

boot.img

Ramdisk
(Android 8.x i starsze)
System jako root
(Android 9)
Ramdisk
(Android 10 i 11)

Zawiera jądro i ramdisk.img.

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.

ramdisk.img
  -/
    - init
    - vendor fstab files
    - system/ (mount point)
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
    

odzyskiwania.obraz

Zawiera jądro przywracania i system przywracania ramdisk.img

system.img

Ramdisk
(Android 8.x lub starszy)
System jako root
(Android 9)
Ramdisk
(Android 10 i 11)

Zawiera system.img.

system.img
  -/
    - bin/
    - etc
    - vendor -> /vendor
    - ...
   

Zawiera scaloną zawartość elementów $TARGET_SYSTEM_OUT i $TARGET_ROOT_OUT

system.img
  -/
    - init.rc
    - init
    - etc -> /system/etc
    - system/
      - bin/
      - etc/
      - vendor -> /vendor
      - ...
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
    

Zawiera scalone treści z plików $TARGET_SYSTEM_OUT$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)
    ...
    

Układy partycji (urządzenia A/B)

W następnych sekcjach opisaliśmy szczegółowo różnice w rozmieszczeniu partycji na urządzeniach A/B przed i po Androidzie 10.

obraz rozruchowy

System jako root
(Android 9)
Ramdisk
(Android 10 i 11)
Zawiera normalne jądro rozruchowe i dysk pamięci masowej przywracania (BOARD_USES_RECOVERY_AS_BOOT := true).

dysk pamięci RAM służy wyłącznie do uruchamiania systemu przywracania.
Zawiera zwykłe jądro rozruchowe i recovery-ramdisk (BOARD_USES_RECOVERY_AS_BOOT := true).

Recovery-ramdisk służy do uruchamiania zarówno trybu odzyskiwania, 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 scaloną zawartość pól $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)
    ...