Perangkat Android berisi beberapa partisi atau bagian tertentu dari ruang penyimpanan yang digunakan untuk menyimpan bagian tertentu dari software perangkat. Setiap partisi berisi image partisi (file IMG) atau snapshot dari semua software untuk partisi. Gambar 1 menunjukkan tata letak partisi inti di perangkat:
Gambar 1. Tata letak partisi inti.
Partisi diklasifikasikan dalam tiga kategori:
Partisi sistem adalah partisi yang diupdate saat mengupdate OS dan fitur lainnya.
system,boot, daninit_bootadalah partisi sistem inti.Partisi vendor berisi kode khusus perangkat dan hardware yang mungkin tidak pernah diupdate setelah rilis awal. Partisi
vendor,vendor_boot, danodmadalah partisi vendor inti.Partisi yang tidak dapat diupdate adalah partisi yang kontennya tidak diupdate atau diupdate dengan data pengguna.
Kode dalam partisi sistem dan vendor dapat berinteraksi menggunakan antarmuka stabil yang disebut antarmuka vendor (VINTF).
Partisi sistem
Berikut adalah daftar semua partisi sistem dan penggunaannya:
Partisi
bootPartisi ini berisi Generic Kernel Image (GKI). Partisi ini juga berisi ramdisk generik di perangkat yang diluncurkan di Android 12 dan yang lebih lama. Untuk mengetahui informasi selengkapnya tentang ramdisk generik, lihat Konten image ramdisk generik.Partisi
init_boot(Android 13 dan yang lebih baru). Partisi ini berisi ramdisk generik. Di Android 11 dan 12, ramdisk generik berada di partisiboot.Partisi
systemPartisi ini berisi image sistem yang digunakan untuk produk OEM.Partisi
system_extPartisi ini berisi resource sistem dan modul sistem eksklusif yang memperluas image sistem umum di partisisystem.Partisi
system_dlkmPartisi ini berisi modul GKI. Untuk mengetahui informasi selengkapnya tentang partisi ini, lihat Mengimplementasikan partisi modul GKI.Partisi
productPartisi ini dapat berisi modul khusus produk yang tidak digabungkan dengan partisi lain.Partisi
pvmfwPartisi ini menyimpan Firmware Mesin Virtual Terlindungi (pvmfw) yang merupakan kode pertama yang berjalan di VM terlindungi. Untuk mengetahui informasi selengkapnya, lihat Firmware Mesin Virtual Terlindungi.Partisi
generic_bootloaderPartisi ini berisi bootloader generik.
Partisi vendor
Berikut adalah daftar semua partisi vendor dan penggunaannya:
Partisi
vendor_bootPartisi ini berisi kode booting khusus vendor. Untuk mengetahui informasi selengkapnya, lihat Partisi booting vendor.Partisi
recoveryPartisi ini menyimpan image pemulihan, yang di-boot selama proses update over-the-air (OTA). Perangkat yang mendukung update lancar dapat menyimpan image pemulihan sebagai ramdisk yang terdapat dalam imagebootatauinit_boot. Untuk mengetahui informasi selengkapnya tentang update lancar, lihat Update A/B (lancar).Partisi
miscPartisi ini digunakan oleh partisi pemulihan dan berukuran 4 KB atau lebih besar.Partisi
vbmetaPartisi ini berisi informasi Booting Terverifikasi untuk semua partisi. Informasi ini memverifikasi bahwa image yang diinstal di setiap partisi dapat dipercaya. Untuk mengetahui informasi selengkapnya tentang Booting Terverifikasi, lihat Booting Terverifikasi.Partisi
vendorPartisi ini berisi biner apa pun yang khusus vendor dan tidak cukup generik untuk didistribusikan ke AOSP.Partisi
vendor_dlkmPartisi ini berisi modul kernel vendor. Dengan menyimpan modul kernel vendor di partisi ini, bukan di partisivendor, Anda dapat mengupdate modul kernel tanpa mengupdate partisivendor. Untuk mengetahui informasi selengkapnya, lihat Partisi DKLM vendor dan ODM.Partisi
odmPartisi ini berisi penyesuaian produsen desain asli (ODM) untuk paket dukungan papan (BSP) vendor system-on-chip (SoC). Penyesuaian tersebut memungkinkan ODM mengganti atau menyesuaikan komponen SoC, dan mengimplementasikan modul kernel untuk komponen khusus papan, daemon, dan fitur khusus ODM pada lapisan abstraksi hardware (HAL). Partisi ini bersifat opsional. Biasanya, partisi ini digunakan untuk berisi penyesuaian sehingga perangkat dapat menggunakan satu image vendor untuk beberapa SKU hardware. Untuk mengetahui informasi selengkapnya, lihat Partisi ODM.Partisi
odm_dlkmPartisi ini khusus untuk menyimpan modul kernel ODM. Dengan menyimpan modul kernel ODM di partisi ini, bukan di partisiodm, Anda dapat mengupdate modul kernel ODM tanpa mengupdate partisiodm. Untuk mengetahui informasi selengkapnya, lihat Partisi DKLM vendor dan ODM.Partisi
radioPartisi ini berisi image radio dan hanya diperlukan untuk perangkat yang menyertakan radio dengan software khusus radio di partisi khusus.
Partisi yang tidak dapat diupdate
Berikut adalah daftar semua partisi yang tidak dapat diupdate dan penggunaannya:
Partisi
cachePartisi ini berisi data sementara dan bersifat opsional jika perangkat Anda menggunakan update lancar. Partisi ini tidak perlu dapat ditulis dari bootloader, tetapi harus dapat dihapus. Ukuran partisi bergantung pada jenis perangkat dan ketersediaan ruang diuserdata; biasanya, 50 hingga 100 MB sudah cukup.Partisi
userdataPartisi ini berisi aplikasi dan data yang diinstal pengguna, termasuk data penyesuaian.Partisi
metadataJika perangkat Anda menggunakan enkripsi metadata, partisi ini berisi kunci enkripsi metadata. Ukuran partisi ini adalah 16 MB atau lebih besar, tidak dienkripsi, dan datanya tidak di-snapshot. Partisi ini dihapus saat perangkat direset ke setelan pabrik.
Aturan dan rekomendasi update partisi
Sebaiknya update semua partisi sistem secara keseluruhan dan semua partisi vendor secara keseluruhan. Dengan mengupdate kumpulan partisi secara keseluruhan, Anda dapat melakukan pengujian untuk memverifikasi bahwa antarmuka antara image di setiap partisi tetap stabil.
Terlepas dari cara Anda mengupdate partisi, partisi berikut harus diupdate karena dependensi yang sangat terkait dan kurangnya API stabil:
- Partisi
bootdansystem_dlkm - partisi
init_boot,system,system_ext, danproduct
Partisi dinamis
Perangkat yang menjalankan Android 11 dan yang lebih baru dapat mendukung partisi dinamis, yang merupakan sistem partisi ruang pengguna untuk Android yang memungkinkan Anda membuat, mengubah ukuran, atau menghancurkan partisi selama update over-the-air (OTA). Untuk mengetahui informasi selengkapnya, lihat Partisi dinamis.
Varian produk Soong
Sistem build Soong menggunakan varian image untuk membagi
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 image tidak dapat ditautkan ke modul lain dalam varian image yang berbeda.
Di Android 12 atau yang lebih baru, modul sistem dengan vendor_available: true membuat varian vendor selain varian inti. Untuk membuat varian produk, product_available: true harus
ditentukan. Beberapa library VNDK tanpa product_available: true tidak
tersedia untuk modul produk.