Kernel Android didasarkan pada kernel Linux Long Term Supported (LTS) upstream yang ditemukan di . Di Google, kernel LTS digabungkan dengan patch khusus Android untuk membentuk apa yang dikenal sebagai Android Common Kernels (ACKs) .
ACK yang lebih baru (versi 5.4 dan di atasnya) juga dikenal sebagai kernel GKI karena mendukung pemisahan kode Kernel Inti Generik agnostik perangkat keras dan modul GKI agnostik perangkat keras . Kernel GKI berinteraksi dengan modul vendor khusus perangkat keras yang berisi sistem pada chip (SoC) dan kode khusus papan. Interaksi antara kernel GKI dan modul vendor diaktifkan oleh Kernel Module Interface (KMI) yang terdiri dari daftar simbol yang mengidentifikasi fungsi dan data global yang diperlukan oleh modul vendor. Gambar 1 menunjukkan arsitektur kernel GKI dan modul vendor:
Glosarium kernel
Bagian ini berisi istilah-istilah yang digunakan di seluruh dokumentasi kernel.
Jenis kernel
- Kernel Umum Android (ACK)
- Kernel yang merupakan hilir dari kernel LTS dan menyertakan patch yang menarik bagi komunitas Android yang belum digabungkan ke kernel Linux mainline atau Long Term Supported (LTS). ACK yang lebih baru (versi 5.4 dan yang lebih baru) juga dikenal sebagai kernel GKI karena mendukung pemisahan kode Kernel Generik agnostik perangkat keras dan modul GKI agnostik perangkat keras.
- Kernel Proyek Sumber Terbuka Android (AOSP)
- Lihat Kernel Umum Android.
- Fitur Kernel
- Kernel yang fitur rilis platformnya dijamin akan diimplementasikan. Misalnya, di Android 12, dua kernel fitur adalah android12-5.4 dan android12-5.10. Fitur Android 12 tidak dapat di-backport ke kernel 4.19; set fitur akan mirip dengan perangkat yang diluncurkan dengan 4.19 di R dan ditingkatkan ke S).
- kernel inti generik
- Porsi kernel GKI yang umum di semua perangkat.
- Kernel Gambar Kernel Generik (GKI)
- Kernel ACK yang lebih baru (5.4 dan lebih tinggi) (saat ini hanya aarch64). Kernel ini memiliki dua bagian: Kernel GKI inti dengan kode yang umum di semua perangkat dan modul kernel GKI yang dikembangkan oleh Google yang dapat dimuat secara dinamis pada perangkat jika memungkinkan.
- Kernel Modul Antarmuka (KMI) kernel
- Lihat kernel GKI .
- Luncurkan Kernel
- Kernel yang valid untuk meluncurkan perangkat untuk rilis platform Android tertentu. Misalnya, di Android 12, kernel peluncuran yang valid adalah 4.19, 5.4, dan 5.10.
- Kernel yang Didukung Jangka Panjang (LTS)
- Kernel Linux yang didukung selama 2 hingga 6 tahun. Kernel LTS dirilis setahun sekali dan merupakan dasar untuk setiap ACK Google .
Jenis cabang
- Cabang kernel ACK KMI
- Cabang tempat kernel GKI dibangun. Misalnya, android12-5.10 dan android13-5.15.
- Android-mainline
- Cabang pengembangan utama untuk fitur Android. Ketika kernel LTS baru dideklarasikan upstream, kernel GKI baru yang sesuai akan bercabang dari android-mainline.
- Jalur utama Linux
- Cabang pengembangan utama untuk kernel Linux upstream, termasuk kernel LTS.
istilah lain
- Gambar boot bersertifikat
- Kernel dikirim dalam bentuk biner (
boot.img
) dan di-flash ke perangkat. Gambar ini disertifikasi dalam arti berisi sertifikat yang disematkan sehingga Google dapat memverifikasi bahwa perangkat dikirimkan dengan kernel yang disertifikasi oleh Google. - Modul kernel yang dapat dimuat secara dinamis (DLKM)
- Modul yang dapat dimuat secara dinamis selama boot perangkat tergantung pada kebutuhan perangkat. Modul GKI dan vendor keduanya merupakan jenis DLKM. DLKM dirilis dalam bentuk
.ko
dan dapat menjadi driver atau dapat memberikan fungsionalitas kernel lainnya. - proyek GKI
- Proyek Google yang menangani fragmentasi kernel dengan memisahkan fungsionalitas kernel inti umum dari SoC khusus vendor dan dukungan papan ke dalam modul yang dapat dimuat.
- Gambar Kernel Generik (GKI)
- Gambar boot yang disertifikasi oleh Google yang berisi kernel GKI yang dibuat dari pohon sumber ACK dan cocok untuk di-flash ke partisi boot perangkat Android.
- KMI
- Antarmuka antara kernel GKI dan modul vendor yang memungkinkan modul vendor diperbarui secara independen dari kernel GKI. Antarmuka ini terdiri dari fungsi kernel dan data global yang telah diidentifikasi sebagai dependensi vendor/OEM menggunakan daftar simbol per mitra.
- Modul kernel GKI
- Modul yang dapat dimuat secara dinamis yang dibuat oleh Google yang dapat dimuat secara dinamis di perangkat jika memungkinkan. Modul-modul ini dibuat dengan kernel GKI dan dikirimkan bersama GKI sebagai image
system_dlkm
. Modul kernel GKI ditandatangani oleh Google menggunakan pasangan kunci waktu pembuatan kernel dan hanya kompatibel dengan kernel inti generik yang digunakan untuk membuatnya. Modul kernel GKI adalah jenis DLKM . - Modul penjual
- Modul khusus perangkat keras yang dikembangkan oleh mitra dan berisi SoC dan fungsionalitas khusus perangkat. Modul vendor adalah jenis modul kernel yang dapat dimuat secara dinamis.
Apa berikutnya?
- Jika Anda baru mengenal pengembangan kernel Android, Anda mungkin ingin memulai dengan membaca yang berikut ini:
- Kernel Stabil Jangka Panjang - Latar belakang kernel LTS upstream yang dimasukkan ke ACK.
- Kernel Umum Android - Latar Belakang ACK.
- Jika Anda baru mengenal pengembangan kernel GKI, mulailah dengan membaca pengembangan GKI .
- Jika Anda menggunakan kernel versi 4.19 atau lebih lama dan mencari dokumentasi terkait, lihat bagian Ringkasan kernel sebelumnya (<=4.19) .