Perangkat Android menyertakan beberapa partisi yang melayani fungsi berbeda dalam proses boot.
Partisi standar
partisi
boot
. Partisi ini berisi image kernel dan image ramdisk yang digabungkan menggunakanmkbootimg
. Anda dapat menggunakan partisi virtual untuk mem-flash salah satu gambar secara langsung tanpa mem-flash partisi boot baru.inti. Partisi
kernel
virtual menimpa kernel (zImage
,zImage-dtb
,Image.gz-dtb
) dengan menulis citra kernel baru di atas citra kernel lama. Jika kernel pengembangan yang disediakan tidak kompatibel, Anda mungkin perlu memperbaruivendor
,system
, atau partisidtb
(jika ada) dengan modul kernel terkait.ramdisk. Partisi
ramdisk
virtual menimpa ramdisk dengan menulis gambar ramdisk baru di atas gambar ramdisk lama.
Operasi penimpaan menentukan lokasi awal gambar yang ada di eMMC dan menyalin gambar baru ke lokasi tersebut. Gambar baru (kernel atau ramdisk) mungkin lebih besar dari yang sudah ada; untuk membuat ruang, bootloader dapat memindahkan data mengikuti gambar atau meninggalkan operasi dengan kesalahan.
partisi
system
. Partisi ini berisi kerangka kerja Android.partisi
odm
. Partisi ini berisi kustomisasi produsen desain asli (ODM) ke paket dukungan papan vendor (BSP) sistem-on-chip (SoC). Penyesuaian tersebut memungkinkan ODM untuk mengganti atau menyesuaikan komponen SoC, dan mengimplementasikan modul kernel untuk komponen khusus papan, daemon, dan fitur khusus ODM pada lapisan abstraksi perangkat keras (HAL). Partisi ini opsional; biasanya, ini digunakan untuk memuat penyesuaian sehingga perangkat dapat menggunakan satu gambar vendor untuk beberapa SKU perangkat keras. Untuk detailnya, lihat Partisi ODM .partisi
odm_dlkm
. Partisi ini didedikasikan untuk menyimpan modul kernel ODM. Menyimpan modul kernel ODM di partisiodm_dlkm
(sebagai lawan dari partisiodm
) memungkinkan untuk memperbarui modul kernel ODM tanpa memperbarui partisiodm
.partisi
recovery
. Partisi ini menyimpan gambar pemulihan, yang di-boot selama proses OTA. Perangkat yang mendukung pembaruan tanpa batas dapat menyimpan gambar pemulihan sebagai ramdisk yang terdapat dalam gambar boot (bukan gambar terpisah).partisi
cache
. Partisi ini menyimpan data sementara dan bersifat opsional jika perangkat menggunakan pembaruan tanpa batas. Partisi cache tidak perlu dapat ditulisi dari bootloader, tetapi harus dapat dihapus. Ukuran partisi tergantung pada jenis perangkat dan ketersediaan ruang padauserdata
; biasanya, 50 MB–100 MB sudah cukup.partisi
misc
. Partisi ini digunakan oleh partisi pemulihan dan berukuran 4 KB atau lebih besar.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. Itu tidak dienkripsi dan datanya tidak di-snapshot. Itu terhapus saat perangkat direset ke setelan pabrik. Penggunaan partisi ini sangat dibatasi.partisi
vendor
. Partisi ini berisi biner apa pun yang tidak dapat didistribusikan ke AOSP. Jika perangkat tidak berisi informasi kepemilikan, Anda dapat menghilangkan partisi ini.partisi
vendor_dlkm
. Partisi ini didedikasikan untuk menyimpan modul kernel vendor. Menyimpan modul kernel vendor di partisivendor_dlkm
(sebagai lawan dari partisivendor
) memungkinkan untuk memperbarui modul kernel tanpa memperbarui partisivendor
.partisi
radio
. Partisi ini berisi citra radio dan hanya diperlukan untuk perangkat yang menyertakan radio dengan perangkat lunak khusus radio di partisi khusus.partisi
tos
. Partisi ini menyimpan citra biner dari Trusty OS dan hanya digunakan jika perangkat menyertakan Trusty. Untuk detailnya, lihat Partisi TOS .
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 penghancuran partisi selama pembaruan over-the-air (OTA). Untuk detailnya, lihat Partisi Dinamis .
Menentukan partisi kritis
Jika perangkat memerlukan partisi atau data tertentu untuk dijalankan, Anda harus menetapkan partisi/data tersebut sebagai terlindungi sepenuhnya atau sebagai dapat di-flash ulang, yang berarti dapat dibangun kembali, disediakan, atau dapat diekstraksi menggunakan perintah fastboot oem
. Ini termasuk data seperti pengaturan khusus pabrik per perangkat, nomor seri, data kalibrasi, dan banyak lagi.
Perubahan di Android 11
Android 11 menyertakan banyak perubahan pada partisi, termasuk pembatasan penautan ke perpustakaan dan varian gambar Soong baru.
Gambar 1. Tata letak partisi di Android 11
Gambar Sistem Tunggal (SSI). Gambar konseptual baru yang berisi gambar
system
dansystem_ext
. Ketika partisi ini umum untuk satu set perangkat target, perangkat tersebut dapat berbagi SSI dan melewati pembuatan gambarsystem
dansystem_ext
.partisi
system_ext
. Partisi baru yang dapat menggunakan sumber dayasystem
dan dapat menyertakan modul sistem yang:Perluas modul sistem AOSP di partisi
system
. Kami merekomendasikan upstreaming modul tersebut ke AOSP sehingga mereka dapat diinstal ke partisisystem
nanti.Bundel modul khusus OEM atau SoC. Kami merekomendasikan unbundling modul tersebut sehingga mereka dapat diinstal ke
product
atau partisivendor
.
partisi
system
. Gambar sistem umum yang digunakan untuk produk OEM. Kami merekomendasikan untuk memindahkan modul berpemilik keluar dari partisisystem
, baik dengan melakukan upstreaming ke AOSP atau dengan memindahkannya ke partisisystem_ext
.partisi
product
. Partisi ini sekarang dapat menggunakan antarmuka yang diizinkan untuk menginstal modul khusus produk yang tidak dibundel dengan partisi lain.
Perubahan VNDK
Vendor Native Development Kit (VNDK) adalah satu set library yang diinstal di partisi system
dan dirancang khusus untuk vendor untuk mengimplementasikan HAL mereka.
Di Android 10 dan yang lebih rendah, partisi
vendor
dapat menautkan ke pustaka VNDK di partisisystem
, tetapi tidak dapat menautkan ke pustaka lain di partisisystem
. Modul asli di partisiproduct
dapat ditautkan ke perpustakaan mana pun di partisisystem
.Di Android 11 dan yang lebih tinggi, partisi
product
danvendor
dapat menautkan ke pustaka VNDK di partisisystem
, tetapi tidak dapat menautkan ke pustaka lain di partisisystem
.
Varian produk segera
Sistem build Soong menggunakan varian image untuk membagi dependensi build. Modul asli ( /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 ditautkan ke modul lain dalam varian gambar yang berbeda.
Di Android 10 dan yang lebih rendah, modul sistem secara otomatis membuat varian inti. Itu juga dapat membuat varian vendor dengan mendefinisikan
vendor_available: true
dalam fileAndroid.bp
; ini memungkinkan modul vendor untuk menautkan ke modul sistem. Pustaka VNDK, yang merupakan varian vendor dari pustakasystem
, juga dapat membuat varian vendor untuk modul vendor dengan mendefinisikanvendor_available: true
dalam fileAndroid.bp
-nya (lihat contoh ).Di Android 11 dan yang lebih tinggi, modul sistem juga dapat membuat varian produk (selain varian inti dan vendor) dengan mendefinisikan
vendor_available: true
.