Partycje ramdysku

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ą plik system.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 .

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)
    ...
    

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 .

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

Zawiera połączoną zawartość $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 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)
    ...
    

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)
    ...