Urządzenia z Androidem zawierają kilka partycji lub określonych sekcji miejsca na dane, które są używane do przechowywania określonych części oprogramowania urządzenia. Każda partycja zawiera obraz partycji (plik IMG) lub migawkę całego oprogramowania partycji. Rysunek 1 przedstawia układ podstawowych partycji na urządzeniu:
Rysunek 1. Układ podstawowych partycji.
Partycje są podzielone na 3 kategorie:
Partycje systemowe to partycje, które są aktualizowane podczas aktualizacji systemu operacyjnego i innych funkcji.
system,bootiinit_bootto podstawowe partycje systemowe.Partycje dostawcy zawierają kod specyficzny dla urządzenia i sprzętu, który po początkowym wydaniu może nigdy nie zostać zaktualizowany.
vendor,vendor_bootiodmto podstawowe partycje dostawcy.Partycje nieaktualizowalne to partycje, których zawartość nie jest aktualizowana lub jest aktualizowana za pomocą danych użytkownika.
Kod w partycjach systemowych i dostawcy może wchodzić w interakcje za pomocą stabilnego interfejsu o nazwie interfejs dostawcy (VINTF).
Partycje systemowe
Poniżej znajdziesz listę wszystkich partycji systemowych i ich zastosowań:
Partycja
bootTa partycja zawiera ogólny obraz jądra (GKI). Ta partycja zawiera też ogólny dysk RAM w urządzeniach wprowadzonych na rynek w Androidzie 12 i starszych. Więcej informacji o ogólnym dysku RAM znajdziesz w artykule Zawartość obrazu ogólnego dysku RAM.Partycja
init_boot(Android 13 i nowszy) Ta partycja zawiera ogólny dysk RAM. W Androidzie 11 i 12 ogólny dysk RAM znajduje się w partycjiboot.Partycja
systemTa partycja zawiera obraz systemu używany w produktach OEM.Partycja
system_extTa partycja zawiera zasoby systemowe i zastrzeżone moduły systemowe, które rozszerzają wspólny obraz systemu w partycjisystem.Partycja
system_dlkmTa partycja zawiera moduły GKI. Więcej informacji o tej partycji znajdziesz w artykule Implementowanie partycji modułu GKI.Partycja
productTa partycja może zawierać moduły specyficzne dla produktu, które nie są powiązane z żadną inną partycją.Partycja
pvmfwTa partycja przechowuje oprogramowanie Protected Virtual Machine Firmware (pvmfw), które jest pierwszym kodem uruchamianym na chronionych maszynach wirtualnych. Więcej informacji znajdziesz w artykule Protected Virtual Machine Firmware.Partycja
generic_bootloaderTa partycja zawiera ogólny program rozruchowy.
Partycje dostawcy
Poniżej znajdziesz listę wszystkich partycji dostawcy i ich zastosowań:
Partycja
vendor_bootTa partycja zawiera kod rozruchowy specyficzny dla dostawcy. Więcej informacji znajdziesz w artykule Partycje rozruchowe dostawcy.Partycja
recoveryTa partycja przechowuje obraz przywracania systemu, który jest uruchamiany podczas procesu aktualizacji bezprzewodowej (OTA). Urządzenia obsługujące bezproblemowe aktualizacje mogą przechowywać obrazy odzyskiwania jako dysk RAM zawarty w obraziebootlubinit_boot. Więcej informacji o bezproblemowych aktualizacjach, zobacz Aktualizacje A/B (bezproblemowe).Partycja
miscTa partycja jest używana przez partycję odzyskiwania i ma rozmiar co najmniej 4 KB.Partycja
vbmetaTa partycja zawiera informacje o weryfikacji podczas uruchamiania wszystkich partycji. Te informacje potwierdzają, że obrazy zainstalowane w każdej partycji są zaufane. Więcej informacji o weryfikacji podczas uruchamiania znajdziesz w artykule Weryfikacja podczas uruchamiania.Partycja
vendorTa partycja zawiera wszystkie pliki binarne, które są specyficzne dla dostawcy i nie są wystarczająco ogólne, aby można je było rozpowszechniać w AOSP.Partycja
vendor_dlkmTa partycja zawiera moduły jądra dostawcy. Przechowywanie modułów jądra dostawcy w tej partycji zamiast w partycjivendorumożliwia aktualizowanie modułów jądra bez aktualizowania partycjivendor. Więcej informacji znajdziesz w artykule Partycje DKLM dostawcy i ODM.Partycja
odmTa partycja zawiera dostosowania ODM do pakietów BSP dostawcy SoC. Takie dostosowania umożliwiają ODM zastępowanie lub dostosowywanie komponentów SoC oraz implementowanie modułów jądra dla komponentów specyficznych dla płyty, demonów i funkcji specyficznych dla ODM w warstwach abstrakcji sprzętu (HAL). Ta partycja jest opcjonalna. Zwykle ta partycja jest używana do przechowywania dostosowań, dzięki czemu urządzenia mogą używać jednego obrazu dostawcy w przypadku wielu jednostek SKU sprzętu. Więcej informacji znajdziesz w artykule Partycje ODM.Partycja
odm_dlkmTa partycja jest przeznaczona do przechowywania modułów jądra ODM. Przechowywanie modułów jądra ODM w tej partycji zamiast w partycjiodmumożliwia aktualizowanie modułów jądra ODM bez aktualizowania partycjiodm. Więcej informacji znajdziesz w artykule Partycje DKLM dostawcy i ODM.Partycja
radioTa partycja zawiera obraz radia i jest potrzebna tylko w przypadku urządzeń, które mają radio z oprogramowaniem specyficznym dla radia w osobnej partycji.
Partycje nieaktualizowalne
Poniżej znajdziesz listę wszystkich partycji nieaktualizowalnych i ich zastosowań:
Partycja
cacheTa partycja zawiera dane tymczasowe i jest opcjonalna, jeśli urządzenie korzysta z bezproblemowych aktualizacji. Ta partycja nie musi być zapisywalna z poziomu programu rozruchowego, ale musi być usuwalna. Rozmiar partycji zależy od typu urządzenia i dostępności miejsca na partycjiuserdata. Zwykle wystarczy 50–100 MB.Partycja
userdataTa partycja zawiera aplikacje i dane zainstalowane przez użytkownika, w tym dane dostosowania.Partycja
metadataJeśli urządzenie korzysta z szyfrowania metadanych, ta partycja zawiera klucz szyfrowania metadanych. Rozmiar tej partycji to co najmniej 16 MB. Nie jest ona zaszyfrowana, a jej dane nie są migawkowane. Ta partycja jest usuwana, gdy urządzenie zostanie przywrócone do ustawień fabrycznych.
Zasady i rekomendacje dotyczące aktualizacji partycji
Zalecamy aktualizowanie wszystkich partycji systemowych jako całości i wszystkich partycji dostawcy jako całości. Aktualizując zestaw partycji jako całość, możesz sprawdzić, czy interfejsy między obrazami w każdej partycji pozostają stabilne.
Niezależnie od sposobu aktualizacji partycji, ze względu na ścisłe zależności i brak stabilnych interfejsów API należy zaktualizować te partycje:
- partycje
bootisystem_dlkm; - partycje
init_boot,system,system_extiproduct.
Partycje dynamiczne
Urządzenia z Androidem 11 i nowszym mogą obsługiwać partycje dynamiczne, czyli system partycjonowania w przestrzeni użytkownika w Androidzie, który umożliwia tworzenie, zmienianie rozmiaru i usuwanie partycji podczas aktualizacji bezprzewodowych (OTA). Więcej informacji znajdziesz w artykule Partycje dynamiczne.
Wersje produktu Soong
System kompilacji Soong używa wersji obrazów do dzielenia
zależności kompilacji. Moduły natywne (/build/soong/cc) mogą zmieniać moduły procesu systemowego na wersję podstawową, a moduły procesu dostawcy na wersję dostawcy. Moduł w jednej wersji obrazu nie może łączyć się z innymi modułami w innej wersji obrazu.
W Androidzie 12 lub nowszym moduł systemowy z vendor_available: true tworzy wersję dostawcy oprócz wersji podstawowej. Aby utworzyć wersję produktu, product_available: true musi być
zdefiniowane. Niektóre biblioteki VNDK bez product_available: true nie są
dostępne dla modułów produktu.