Perangkat Android menyertakan beberapa partisi yang menjalankan fungsi yang berbeda dalam proses booting.
Partisi standar
Partisi
boot
. Partisi ini berisi image kernel dan dibuat menggunakanmkbootimg
. Anda dapat menggunakan partisi virtual untuk mem-flash image secara langsung tanpa mem-flash partisi booting baru. Partisi ini juga berisi ramdisk generik di perangkat yang diluncurkan sebelum Android 13.kernel. Partisi
kernel
virtual menimpa kernel (zImage
,zImage-dtb
,Image.gz-dtb
) dengan menulis image kernel baru di atas image kernel lama. Jika kernel pengembangan yang disediakan tidak kompatibel, Anda mungkin perlu mengupdate partisivendor
,system
, ataudtb
(jika ada) dengan modul kernel terkait.ramdisk. Partisi
ramdisk
virtual menimpa ramdisk dengan menulis image ramdisk baru di atas image ramdisk lama.
Operasi penggantian menentukan lokasi awal image yang ada di eMMC dan menyalin image baru ke lokasi tersebut. Image baru (kernel atau ramdisk) mungkin lebih besar dari yang sudah ada. Untuk memberi ruang, bootloader dapat memindahkan data mengikuti gambar atau mengabaikan operasi dengan error.
Partisi
init_boot
. Partisi ini berisi ramdisk generik untuk perangkat yang diluncurkan dengan Android 13 dan yang lebih baru.Partisi
system
. Partisi ini berisi framework Android.Partisi
odm
. Partisi ini berisi penyesuaian produsen desain asli (ODM) ke paket dukungan papan (BSP) vendor sistem-di-chip (SoC). Penyesuaian tersebut memungkinkan ODM mengganti atau menyesuaikan komponen SoC, dan menerapkan modul kernel untuk komponen khusus board, daemon, dan fitur khusus ODM di hardware abstraction layer (HAL). Partisi ini opsional; biasanya, partisi ini digunakan untuk memuat penyesuaian sehingga perangkat dapat menggunakan satu image vendor untuk beberapa SKU hardware. Untuk mengetahui detailnya, lihat Partisi ODM.Partisi
odm_dlkm
. Partisi ini didedikasikan untuk menyimpan modul kernel ODM. Menyimpan modul kernel ODM di partisiodm_dlkm
(bukan partisiodm
) memungkinkan update modul kernel ODM tanpa mengupdate partisiodm
.Partisi
recovery
. Partisi ini menyimpan image pemulihan, yang di-booting selama proses OTA. Perangkat yang mendukung update lancar dapat menyimpan image pemulihan sebagai ramdisk yang terdapat dalam imageboot
atauinit_boot
(bukan image terpisah).Partisi
cache
. Partisi ini menyimpan data sementara dan bersifat opsional jika perangkat menggunakan update yang lancar. Partisi cache tidak perlu dapat ditulis dari bootloader, tetapi harus dapat dihapus. Ukuran partisi bergantung pada jenis perangkat dan ketersediaan ruang diuserdata
; biasanya, 50 MB–100 MB sudah cukup.Partisi
misc
. Partisi ini digunakan oleh partisi pemulihan dan berukuran 4 KB atau lebih besar.Partisi
userdata
. Partisi ini berisi aplikasi dan data yang diinstal pengguna, termasuk data penyesuaian.Partisi
metadata
. Partisi ini digunakan untuk menyimpan kunci enkripsi metadata ketika perangkat menggunakan enkripsi metadata. Ukurannya 16 MB atau lebih besar. Data ini tidak dienkripsi dan tidak diambil snapshot-nya. Data ini akan dihapus saat perangkat direset ke setelan pabrik. Penggunaan partisi ini sangat dibatasi.Partisi
vendor
. Partisi ini berisi biner yang tidak dapat didistribusikan ke AOSP. Jika perangkat tidak berisi informasi eksklusif, Anda dapat menghapus partisi ini.Partisi
vendor_dlkm
. Partisi ini didedikasikan untuk menyimpan modul kernel vendor. Menyimpan modul kernel vendor di partisivendor_dlkm
(bukan partisivendor
) memungkinkan update modul kernel tanpa mengupdate partisivendor
.Partisi
radio
. Partisi ini berisi image radio dan hanya diperlukan untuk perangkat yang menyertakan radio dengan software khusus radio di partisi khusus.Partisi
tos
. Partisi ini menyimpan image biner Trusty OS dan hanya digunakan jika perangkat menyertakan Trusty. Untuk mengetahui detailnya, lihat Partisi TOS.Partisi
pvmfw
. Partisi ini menyimpan Firmware Virtual Machine Protected (pvmfw) yang merupakan kode pertama yang berjalan di VM yang dilindungi. Lihat Firmware Virtual Machine yang Dilindungi untuk mengetahui detail selengkapnya.
Partisi dinamis
Perangkat yang menjalankan Android 11 dan yang lebih tinggi dapat mendukung partisi dinamis, yang merupakan sistem partisi ruang pengguna untuk Android yang memungkinkan pembuatan, pengubahan ukuran, atau penghapusan partisi selama update over-the-air (OTA). Untuk mengetahui detailnya, lihat Partisi dinamis.
Menentukan partisi penting
Jika perangkat memerlukan partisi atau data tertentu untuk dijalankan, Anda harus menetapkan
partisi atau data tersebut sebagai terlindungi sepenuhnya atau dapat di-flash ulang, artinya
partisi atau data tersebut dapat dibangun ulang, disediakan, atau dapat diekstrak menggunakan perintah fastboot oem
.
Data ini mencakup data seperti setelan khusus pabrik per perangkat, nomor seri,
data kalibrasi, dan lainnya.
Perubahan di Android 11
Android 11 menyertakan berbagai perubahan pada partisi, termasuk pembatasan penautan ke library dan varian image Soong baru.
Gambar 1. Tata letak partisi di Android 11
Single System Image (SSI). Gambar konseptual baru yang berisi gambar
system
dansystem_ext
. Jika partisi ini umum untuk kumpulan perangkat target, perangkat tersebut dapat berbagi SSI dan melewati pembuatan gambarsystem
dansystem_ext
.Partisi
system_ext
. Partisi baru yang dapat menggunakan resourcesystem
dan dapat menyertakan modul sistem yang:Memperluas modul sistem AOSP di partisi
system
. Sebaiknya upstream modul tersebut ke AOSP agar dapat diinstal ke partisisystem
nanti.Memaketkan modul khusus OEM atau SoC. Sebaiknya pisahkan modul tersebut agar dapat diinstal ke partisi
product
atauvendor
.
Partisi
system
. Image sistem umum yang digunakan untuk produk OEM. Sebaiknya pindahkan modul eksklusif dari partisisystem
, baik dengan mengirimnya ke AOSP atau dengan memindahkannya ke partisisystem_ext
.Partisi
product
. Partisi ini kini dapat menggunakan antarmuka yang diizinkan untuk menginstal modul khusus produk yang tidak dipaketkan dengan partisi lainnya.
Perubahan VNDK
Vendor Native Development Kit (VNDK)
adalah kumpulan library yang diinstal di partisi system
dan dirancang
secara eksklusif bagi vendor untuk menerapkan HAL mereka.
Di Android 10 dan yang lebih lama, partisi
vendor
dapat ditautkan ke library VNDK di partisisystem
, tetapi tidak dapat ditautkan ke library lain di partisisystem
. Modul native di partisiproduct
dapat ditautkan ke library apa pun di partisisystem
.Di Android 11 dan yang lebih tinggi, partisi
product
danvendor
dapat ditautkan ke library VNDK di partisisystem
, tetapi tidak dapat menautkan ke library lain di partisisystem
.
Varian produk Soong
Sistem build Soong menggunakan varian image untuk memisahkan
dependensi build. Modul native (/build/soong/cc
) dapat mengubah modul
proses sistem ke varian inti dan modul proses vendor ke
varian vendor; modul dalam satu varian gambar tidak dapat menautkan ke modul lain dalam
varian gambar yang berbeda.
Di Android 10 atau yang lebih lama, modul sistem akan otomatis membuat varian inti. Alat ini juga dapat membuat varian vendor dengan menentukan
vendor_available: true
dalam fileAndroid.bp
-nya; hal ini memungkinkan modul vendor ditautkan ke modul sistem. Library VNDK, yang merupakan varian vendor dari librarysystem
, juga dapat membuat varian vendor untuk modul vendor dengan menentukanvendor_available: true
dalam fileAndroid.bp
-nya (lihat contoh).Di Android 11, modul sistem juga dapat membuat varian produk (selain varian inti dan vendor) dengan menentukan
vendor_available: true
.Di Android 12 atau yang lebih tinggi, modul sistem dengan
vendor_available: true
membuat varian vendor selain varian inti. Untuk membuat varian produk,product_available: true
harus ditentukan. Beberapa library VNDK tanpaproduct_available: true
tidak tersedia untuk modul produk.