Ringkasan

Perangkat Android menyertakan beberapa partisi yang memiliki fungsi berbeda dalam proses booting.

Partisi standar

  • partisi boot . Partisi ini berisi image kernel dan dibuat menggunakan mkbootimg . Anda dapat menggunakan partisi virtual untuk mem-flash salah satu image secara langsung tanpa mem-flash partisi boot baru. Partisi ini juga berisi ramdisk generik di perangkat yang diluncurkan sebelum Android 13.

    • inti. 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 memperbarui partisi vendor , system , atau dtb (jika ada) dengan modul kernel terkait.

    • ramdisk. Partisi ramdisk virtual menimpa ramdisk dengan menulis image ramdisk baru di atas image ramdisk lama.

    Operasi penimpaan menentukan lokasi awal gambar yang ada di eMMC dan menyalin gambar baru ke lokasi tersebut. Image baru (kernel atau ramdisk) mungkin lebih besar dari image yang sudah ada; untuk memberi ruang, bootloader dapat memindahkan data mengikuti gambar atau meninggalkan operasi dengan kesalahan.

  • partisi init_boot . Partisi ini berisi ramdisk generik untuk perangkat yang diluncurkan dengan Android 13 dan versi lebih baru.

  • partisi system . Partisi ini berisi kerangka Android.

  • partisi odm . Partisi ini berisi kustomisasi pabrikan desain asli (ODM) untuk paket dukungan vendor board-support (BSP) system-on-chip (SoC). Penyesuaian tersebut memungkinkan ODM untuk mengganti atau menyesuaikan komponen SoC, dan mengimplementasikan modul kernel untuk komponen khusus board, daemon, dan fitur khusus ODM pada lapisan abstraksi perangkat keras (HAL). Partisi ini bersifat 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 partisi odm_dlkm (berlawanan dengan partisi odm ) memungkinkan untuk memperbarui modul kernel ODM tanpa memperbarui partisi odm .

  • partisi recovery . Partisi ini menyimpan image pemulihan, yang di-boot selama proses OTA. Perangkat yang mendukung pembaruan tanpa batas dapat menyimpan image pemulihan sebagai ramdisk yang terdapat dalam image boot atau init_boot (bukan image terpisah).

  • partisi cache . Partisi ini menyimpan data sementara dan bersifat opsional jika perangkat menggunakan pembaruan yang lancar. Partisi cache tidak perlu dapat ditulis dari bootloader, namun harus dapat dihapus. Ukuran partisi bergantung pada jenis perangkat dan ketersediaan ruang pada userdata ; 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. Itu tidak dienkripsi dan datanya tidak diambil gambarnya. 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 partisi vendor_dlkm (berlawanan dengan partisi vendor ) memungkinkan untuk memperbarui modul kernel tanpa memperbarui partisi vendor .

  • partisi radio . Partisi ini berisi gambar radio dan hanya diperlukan untuk perangkat yang menyertakan radio dengan perangkat lunak khusus radio dalam partisi khusus.

  • partisi tos . Partisi ini menyimpan gambar biner dari Trusty OS dan hanya digunakan jika perangkat menyertakan Trusty. Untuk detailnya, lihat TOS Partisi .

  • partisi pvmfw . Partisi ini menyimpan Firmware Mesin Virtual Terlindungi (pvmfw) yang merupakan kode pertama yang berjalan di VM yang dilindungi. Lihat Firmware Mesin Virtual yang Dilindungi untuk detail selengkapnya.

Partisi dinamis

Perangkat yang menjalankan Android 11 dan 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 .

Menunjuk partisi penting

Jika perangkat memerlukan partisi atau data tertentu untuk dijalankan, Anda harus menetapkan partisi/data tersebut sebagai partisi/data yang dilindungi sepenuhnya atau dapat di-flash ulang, artinya partisi/data tersebut dapat dibuat ulang, disediakan, atau diekstraksi menggunakan perintah fastboot oem . Ini mencakup 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.

Tata Letak Partisi Android

Gambar 1. Tata letak partisi di Android 11

  • Gambar Sistem Tunggal (SSI). Gambar konseptual baru yang berisi gambar system dan system_ext . Jika partisi ini umum untuk sekumpulan perangkat target, perangkat tersebut dapat berbagi SSI dan melewati pembuatan image system dan system_ext .

  • partisi system_ext . Partisi baru yang dapat menggunakan sumber daya system dan dapat mencakup modul sistem yang:

    • Perluas modul sistem AOSP di partisi system . Kami merekomendasikan untuk melakukan upstreaming modul tersebut ke AOSP sehingga modul tersebut dapat diinstal ke partisi system nanti.

    • Bundel modul khusus OEM atau SoC. Kami merekomendasikan untuk memisahkan modul-modul tersebut sehingga dapat diinstal ke partisi product atau vendor .

  • partisi system . Gambar sistem umum yang digunakan untuk produk OEM. Kami merekomendasikan untuk memindahkan modul kepemilikan dari partisi system , baik dengan melakukan upstreaming ke AOSP atau dengan memindahkannya ke partisi system_ext .

  • partisi product . Partisi ini sekarang dapat menggunakan antarmuka yang diizinkan untuk menginstal modul khusus produk yang tidak digabungkan dengan partisi lain.

Perubahan VNDK

Vendor Native Development Kit (VNDK) adalah sekumpulan perpustakaan yang dipasang di partisi system dan dirancang khusus bagi vendor untuk mengimplementasikan HAL mereka.

  • Di Android 10 dan yang lebih rendah, partisi vendor dapat ditautkan ke pustaka VNDK di partisi system , namun tidak bisa ditautkan ke pustaka lain di partisi system . Modul asli di partisi product dapat ditautkan ke perpustakaan mana pun di partisi system .

  • Di Android 11 dan yang lebih tinggi, partisi product dan vendor dapat ditautkan ke pustaka VNDK di partisi system , namun tidak bisa ditautkan ke pustaka lain di partisi system .

Varian produk Soon

Sistem build Soong menggunakan varian gambar untuk membagi dependensi build. Modul asli ( /build/soong/cc ) dapat mengubah modul proses sistem menjadi varian inti dan modul proses vendor menjadi varian vendor; modul dalam satu varian gambar tidak dapat ditautkan ke modul lain dalam varian gambar berbeda.

  • Di Android 10 atau lebih rendah, modul sistem secara otomatis membuat varian inti. Ia juga dapat membuat varian vendor dengan mendefinisikan vendor_available: true dalam file Android.bp -nya; ini memungkinkan modul vendor untuk terhubung ke modul sistem. Pustaka VNDK, yang merupakan varian vendor dari pustaka system , juga dapat membuat varian vendor untuk modul vendor dengan mendefinisikan vendor_available: true dalam file Android.bp nya (lihat contoh ).

  • Di Android 11, modul sistem juga dapat membuat varian produk (selain varian inti dan vendor) dengan mendefinisikan vendor_available: true .

  • Di Android 12 atau lebih tinggi, modul sistem dengan vendor_available: true membuat varian vendor selain varian inti. Untuk membuat varian produk, product_available: true harus ditentukan. Beberapa pustaka VNDK tanpa product_available: true tidak tersedia untuk modul produk.