Ringkasan

Perangkat Android menyertakan beberapa partisi yang menyediakan fungsi berbeda dalam proses {i>booting<i}.

Partisi standar

  • Partisi boot. Partisi ini berisi image {i>kernel<i} dan dibuat menggunakan mkbootimg. Anda dapat menggunakan partisi virtual untuk mem-flash image secara langsung tanpa perlu mem-flash partisi {i>boot<i} 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 kernel lama {i>kernel<i}. Jika {i>kernel<i} pengembangan yang disediakan tidak kompatibel, Anda mungkin perlu mengupdate partisi vendor, system, atau dtb (jika ada) dengan modul {i>kernel<i} yang terkait.

    • . Partisi ramdisk virtual menimpa ramdisk dengan menulis {i>image<i} ramdisk baru melalui {i>image <i}ramdisk lama.

    Operasi penimpaan menentukan lokasi awal gambar yang ada di eMMC dan menyalin gambar baru ke lokasi tersebut. Image baru ({i>kernel<i} atau ramdisk) mungkin lebih besar dari yang ada; untuk menyediakan ruang, dapat memindahkan data mengikuti gambar atau meninggalkan operasi dengan mengalami {i>error.<i}

  • Partisi init_boot. Partisi ini berisi {i> ramdisk<i} generik untuk perangkat yang diluncurkan dengan Android 13 dan yang lebih baru.

  • Partisi system. Partisi ini berisi framework Android.

  • Partisi odm. Partisi ini berisi produsen desain asli (ODM) penyesuaian untuk paket dukungan papan vendor (BSP) sistem di chip (SoC). Penyesuaian tersebut memungkinkan ODM mengganti atau menyesuaikan komponen SoC, dan mengimplementasikan modul {i>kernel<i} untuk komponen khusus Board, {i>daemon<i}, dan Fitur khusus ODM pada lapisan abstraksi hardware (HAL). Partisi ini opsional; biasanya, data itu digunakan untuk melakukan penyesuaian sehingga perangkat bisa menggunakan satu image vendor untuk beberapa SKU hardware. Untuk mengetahui detailnya, lihat ODM Partisi.

  • Partisi odm_dlkm. Partisi ini dikhususkan untuk menyimpan {i>kernel<i} ODM modul. Menyimpan modul kernel ODM di partisi odm_dlkm (sebagai pengganti ke partisi odm) memungkinkan update modul kernel ODM tanpa memperbarui partisi odm.

  • Partisi recovery. Partisi ini menyimpan {i>image<i} pemulihan, yang di-{i>booting<i} selama proses OTA. Perangkat yang mendukung mulus dapat menyimpan image pemulihan sebagai ramdisk yang ada dalam image boot atau init_boot (bukan gambar).

  • Partisi cache. Partisi ini menyimpan data sementara dan bersifat opsional jika perangkat menggunakan update tanpa hambatan. Partisi {i>cache<i} tidak perlu dapat ditulis dari {i>bootloader<i}, tetapi perlu dapat dihapus. Partisi ukuran bergantung pada jenis perangkat dan ketersediaan ruang di userdata; biasanya, 50 MB–100 MB sudah cukup.

  • Partisi misc. Partisi ini digunakan oleh partisi pemulihan dan 4 KB atau lebih.

  • Partisi userdata. Partisi ini berisi aplikasi yang diinstal oleh pengguna dan data, termasuk data penyesuaian.

  • Partisi metadata. Partisi ini digunakan untuk menyimpan metadata kunci enkripsi jika perangkat menggunakan metadata enkripsi. Ukurannya adalah 16 MB atau lebih. Class ini tidak dienkripsi dan datanya tidak di-snapshot. Data ini akan dihapus saat perangkat direset ke setelan pabrik. Penggunaan partisi ini sangat terbatas.

  • Partisi vendor. Partisi ini berisi biner yang tidak dapat didistribusikan ke AOSP. Jika perangkat tidak memiliki informasi kepemilikan, Anda dapat menghilangkan partisi ini.

  • Partisi vendor_dlkm. Partisi ini didedikasikan untuk menyimpan vendor modul {i>kernel<i}. Menyimpan modul kernel vendor di partisi vendor_dlkm (bukan partisi vendor) memungkinkan update kernel modul tanpa mengupdate partisi vendor.

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

  • Partisi tos. Partisi ini menyimpan {i>image<i} biner dari Trusty OS dan hanya digunakan jika perangkat menyertakan Trusty. Untuk mengetahui detailnya, lihat TOS Partisi.

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

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 pembuatan, pengubahan ukuran, atau penghancuran partisi selama over the air (OTA) pembaruan. Untuk mengetahui detailnya, lihat Dinamis partisi.

Menetapkan partisi penting

Jika perangkat memerlukan partisi atau data tertentu untuk dijalankan, Anda harus menetapkan partisi atau data tersebut baik yang sepenuhnya terlindungi atau dapat di-flash ulang, yang berarti file tersebut dapat dibangun ulang, disediakan, atau dapat diekstrak menggunakan perintah fastboot oem. Hal ini mencakup data seperti setelan khusus pabrik per perangkat, nomor seri, data kalibrasi, dan banyak lagi.

Perubahan di Android 11

Android 11 menyertakan banyak perubahan pada partisi, termasuk batasan terkait penautan ke library dan varian gambar Soong baru.

Tata Letak Partisi Android

Gambar 1. Tata letak partisi di Android 11

  • Image Sistem Tunggal (SSI). Sebuah gambar konseptual baru yang berisi system dan system_ext gambar. Ketika partisi ini umum untuk suatu set perangkat target, perangkat tersebut dapat berbagi SSI dan melewati pembuatan system dan system_ext gambar.

  • Partisi system_ext. Partisi baru yang dapat menggunakan resource system dan dapat mencakup modul sistem yang:

    • Memperluas modul sistem AOSP di partisi system. Saran dari kami melakukan upstreaming modul tersebut ke AOSP sehingga dapat diinstal ke system partisi nanti.

    • Memaketkan modul khusus SoC atau OEM. Sebaiknya pisahkan modul tersebut sehingga dapat diinstal ke partisi product atau vendor.

  • Partisi system. Image sistem umum yang digunakan untuk produk OEM. Rab sebaiknya pindahkan modul eksklusif keluar dari partisi system, baik dengan melakukan upgrade 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 dipaketkan dengan partisi.

Perubahan VNDK

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

  • Di Android 10 dan yang lebih rendah, partisi vendor dapat ditautkan ke library VNDK di partisi system, tetapi tidak dapat menautkan ke library lain di system partisi. Modul native di partisi product dapat ditautkan ke library mana pun di partisi system.

  • Di Android 11 dan yang lebih tinggi, product dan vendor partisi dapat terhubung ke library VNDK di partisi system, tetapi tidak dapat tautkan ke library lain di partisi system.

Varian produk Soong

Sistem build Soong menggunakan varian image untuk membagi dependensi build. Modul native (/build/soong/cc) dapat memutasikan sistem modul proses ke varian inti dan modul proses vendor ke varian vendor; modul dalam satu varian gambar tidak dapat ditautkan ke modul lain di varian gambar yang berbeda.

  • Di Android 10 atau yang lebih rendah, modul sistem secara otomatis membuat varian inti. Aplikasi ini juga dapat membuat varian vendor dengan menentukan vendor_available: true di Android.bp file; hal ini memungkinkan modul vendor untuk ditautkan ke modul sistem. Library VNDK, yang merupakan varian vendor library system, juga dapat membuat varian vendor untuk modul vendor dengan menentukan vendor_available: true dalam file Android.bp (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 inti yang berbeda. Untuk membuat varian produk, product_available: true harus didefinisikan. Beberapa library VNDK tanpa product_available: true tidak yang tersedia untuk modul produk.