Urządzenia z Androidem zawierają kilka partycji, które pełnią różne funkcje podczas uruchamiania.
Partycje standardowe
partycja
boot
. Ta partycja zawiera obraz jądra i została utworzona za pomocą funkcjimkbootimg
. Do Flasha dowolnego obrazu możesz użyć partycji wirtualnej. bezpośrednio bez dodawania nowej partycji rozruchowej. Ta partycja zawiera też ogólny dysk RAM w urządzeniach uruchomionych przed Android 13.jądro. Partycja wirtualna
kernel
zastępuje jądro (zImage
,zImage-dtb
,Image.gz-dtb
), zapisując nowy obraz jądra nad starym obrazu jądra. Jeśli dostarczone jądro programistyczne jest niezgodne, musisz zaktualizować partycjęvendor
,system
lubdtb
(jeśli istnieje) za pomocą i modułach jądra systemu.„ramdisk”. Partycja wirtualna
ramdisk
zastępuje dysk RAM przez przez wpisanie nowego obrazu ramdysku na stary.
Operacja zastąpienia określa lokalizację początkową istniejącego obrazu w eMMC i skopiuje nowe zdjęcie do tej lokalizacji. Nowy obraz (jądro lub ramdisk) może być większy niż istniejący; tworzyć przestrzeń, program rozruchowy może przenieść dane następujące po obrazie lub przerwać operację za pomocą błąd.
partycja
init_boot
. Ta partycja zawiera ogólny ramdisk dla na urządzeniach z Androidem 13 i nowszym.partycja
system
. Ta partycja zawiera platformę Androida.partycja
odm
. Ta partycja zawiera nazwę producenta (ODM) dostosowywanie w pakietach BSP (system-on-chip, SoC). Takie dostosowania umożliwiają zastępowanie lub dostosowywanie komponentów SoC przez ODM. modułów jądra służących do obsługi komponentów i demonów powiązanych z płytkami. Funkcje specyficzne dla ODM dotyczące warstw abstrakcji sprzętowej (HAL). Ta partycja jest opcjonalnie; zwykle zawiera on dostosowania, dzięki którym urządzenia Użyć jednego obrazu dostawcy dla wielu kodów SKU sprzętu. Szczegółowe informacje znajdziesz w artykule ODM. Partycje.partycja
odm_dlkm
. Ta partycja jest przeznaczona do przechowywania jądra ODM modułów. przechowywanie modułów jądra ODM na partycjiodm_dlkm
(w przeciwieństwie do do partycjiodm
) umożliwia aktualizowanie modułów jądra ODM. bez aktualizowania partycjiodm
.partycja
recovery
. Na tej partycji znajduje się obraz odzyskiwania, który jest uruchamiał się podczas aktualizacji OTA. Urządzenia, które obsługują płynną obsługę aktualizacje mogą przechowywać obrazy odzyskiwania jako dysk RAM znajdujący się w obrazieboot
lubinit_boot
(a nie w osobnym ).partycja
cache
. Ta partycja zawiera dane tymczasowe i jest opcjonalna jeśli urządzenie korzysta z płynnych aktualizacji. Partycja pamięci podręcznej nie musi być które można zapisać w programie rozruchowym, ale trzeba skasować. Partycja rozmiar zależy od typu urządzenia i dostępności miejsca na urządzeniuuserdata
; zwykle wystarczy 50–100 MB.partycja
misc
. Ta partycja jest używana przez partycję przywracania i jest co najmniej 4 KB.partycja
userdata
. Ta partycja zawiera aplikacje zainstalowane przez użytkowników oraz w tym dane dotyczące dostosowywania.partycja
metadata
. Ta partycja służy do przechowywania metadanych klucz szyfrowania, gdy urządzenie korzysta z metadanych. szyfrowaniem. Rozmiar to co najmniej 16 MB. Nie jest zaszyfrowany, a jego dane nie mają zrzutów. Jest on usuwany podczas przywracania ustawień fabrycznych na urządzeniu. Wykorzystanie tej partycji jest ściśle ograniczony.partycja
vendor
. Ta partycja zawiera wszystkie pliki binarne, które nie są dostępne dla AOSP. Jeśli urządzenie nie zawiera zastrzeżonych informacji, możesz pominąć tę partycję.partycja
vendor_dlkm
. Ta partycja jest przeznaczona do przechowywania danych dostawcy i modułach jądra systemu. Przechowywanie modułów jądra dostawcy w partycjivendor_dlkm
(w przeciwieństwie do partycjivendor
) umożliwia aktualizację jądra systemu bez aktualizowania partycjivendor
.partycja
radio
. Ta partycja zawiera obraz radiowy i jest wymagana wyłącznie w przypadku urządzeń, które zawierają radio z oprogramowaniem radiowym dedykowanej partycji.partycja
tos
. Ta partycja zawiera obraz binarny systemu Trusty OS i jest używane tylko wtedy, gdy urządzenie ma zainstalowane Trusty. Aby dowiedzieć się więcej, zobacz Warunki korzystania z usługi Partycje.partycja
pvmfw
. Ta partycja przechowuje chronioną maszynę wirtualną Oprogramowanie układowe (pvmfw) to pierwszy kod, który działa w chronionych maszynach wirtualnych. Zobacz Oprogramowanie chronionej maszyny wirtualnej .
Partycje dynamiczne
Urządzenia z Androidem 11 lub nowszym obsługują dynamiczne partycje, czyli system partycjonowania przestrzeni użytkownika dla Androida, umożliwia tworzenie, zmianę rozmiaru i niszczenie partycji podczas transmisji danych bezprzewodowych (OTA) aktualizacje. Szczegółowe informacje znajdziesz w sekcji Dynamiczne partycje.
Wyznaczanie partycji krytycznych
Jeśli urządzenie wymaga do działania określonych partycji lub danych, musisz wyznaczyć
te partycje lub dane jako w pełni chronione lub jako takie, które można odtworzyć,
można je ponownie skompilować, udostępnić lub wyodrębnić za pomocą polecenia fastboot oem
.
Obejmuje to dane, takie jak ustawienia fabryczne urządzenia, numery seryjne,
dane kalibracji itp.
Zmiany w Androidzie 11
Android 11 zawiera wiele zmian dotyczących partycji, w tym ograniczenia dotyczące linków do bibliotek i nowych wariantów obrazów Soong.
Rysunek 1. Układ partycji w Androidzie 11
Jeden obraz systemu (SSI). Nowy, koncepcyjny obraz, który zawiera Obrazy:
system
isystem_ext
. Gdy te partycje są wspólne dla zestawu urządzeń docelowych, mogą one współdzielić SSI i pominąć tworzenie Obrazy:system
isystem_ext
.partycja
system_ext
. Nowa partycja, która może używać zasobówsystem
i może zawierać moduły systemowe, które:Rozszerz moduły systemu AOSP na partycji
system
. Zalecamy przesyłając takie moduły do AOSP, aby można je było zainstalować wsystem
partycjonowanie później.Połącz moduły OEM lub typowe dla SOC. Zalecamy rozłożenie takich modułów w grupę. więc można je zainstalować na partycji
product
lubvendor
.
partycja
system
. Typowy obraz systemu używany w przypadku produktów OEM. Śr zalecamy przeniesienie modułów zastrzeżonych z partycjisystem
przez i przekazać je do AOSP lub przez przeniesienie na partycjęsystem_ext
.partycja
product
. Ta partycja może teraz używać dozwolonych interfejsów do instalowanie modułów dotyczących określonego produktu, które nie są dołączone do żadnego innego produktu. partycji.
Zmiany w VNDK
Vendor Native Development Kit (VNDK)
to zbiór bibliotek zainstalowanych w partycji system
i stworzony
wyłącznie dla dostawców na wdrożenie ich HAL.
W Androidzie 10 i starszych wersjach partycja
vendor
może łączyć się z bibliotekami VNDK w partycjisystem
, ale nie możesz połączyć jej z innymi bibliotekami wsystem
partycji danych. Moduły natywne na partycjiproduct
mogą łączyć się z dowolną biblioteką w partycjisystem
.W Androidzie 11 i nowszych wersje
product
ivendor
partycje mogą łączyć się z bibliotekami VNDK w partycjisystem
, ale nie do innych bibliotek w partycjisystem
.
Wersje produktu Soong
System kompilacji Soong używa wariantów obrazu do podziału
zależności kompilacji. Moduły natywne (/build/soong/cc
) mogą mutować system
modułów przetwarzania do głównych wariantów i modułów przetwarzania danych dostawców w
wariant dostawcy; moduł w jednym wariancie zdjęcia nie może łączyć się z innymi modułami w
inną wersję obrazu.
W Androidzie 10 lub starszym moduł systemowy automatycznie tworzy główne wersje. Może też tworzyć warianty dostawców, definiując
vendor_available: true
wAndroid.bp
plików; umożliwia to modułom dostawcy łączenie się z modułami systemowymi. Biblioteki VNDK, które są wariantami innych dostawców biblioteksystem
, również mogą aby utworzyć warianty dostawców dla modułów dostawców, definiującvendor_available: true
w plikachAndroid.bp
(zobacz przykład).W Androidzie 11 moduł systemowy może też utworzyć wersję produktu (oprócz wersji podstawowej i dostawcy), definiując
vendor_available: true
.W Androidzie 12 lub nowszym moduł systemu z atrybutem Oprócz podstawowej implementacji
vendor_available: true
tworzy wariant dostawcy wersji. Aby można było utworzyć wersję produktu, atrybutproduct_available: true
musi mieć zdefiniowano jego definicję. Niektóre biblioteki VNDK bez identyfikatoraproduct_available: true
nie są dostępne dostępne w modułach usług.