Kernel Android didasarkan pada kernel Linux Long Term Supported (LTS) upstream. Di Google, kernel LTS digabungkan dengan patch khusus Android untuk membentuk Android Common Kernels (ACK).
ACK dibangun dari repositori kernel/common. Repositori ini adalah superhimpunan kernel Linux upstream, dengan patch tambahan khusus Android.
ACK 5.10 dan yang lebih tinggi juga dikenal sebagai kernel *generic kernel image (GKI). Kernel GKI mendukung pemisahan kode kernel inti generik yang tidak bergantung pada hardware dan modul GKI dari modul vendor yang spesifik untuk hardware.
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 dan modul vendor GKI:
Gambar 1. Arsitektur modul vendor dan kernel GKI.
Glosarium kernel
Berikut adalah istilah yang digunakan di seluruh dokumentasi kernel.
Jenis kernel
- Android Common Kernel (ACK)
- Kernel yang berada di hilir kernel LTS dan menyertakan patch yang penting bagi komunitas Android. Patch ini belum digabungkan ke dalam kernel GKI jangka panjang atau mainline Linux.
Kernel dengan versi 5.10 dan yang lebih tinggi juga disebut sebagai kernel Generic Kernel Image (GKI).
- Kernel Proyek Open Source Android (AOSP)
- Lihat Android Common Kernel.
Fitur Android 12 tidak dapat di-backport ke kernel 4.19; set fitur akan serupa dengan perangkat yang diluncurkan dengan 4.19 di Android 11 dan diupgrade ke Android 12.
- Kernel Generic Kernel Image (GKI)
Kernel ACK 5.10 dan yang lebih tinggi(khusus aarch64). Kernel GKI memiliki dua bagian ini:
Kernel generik - Bagian kernel GKI yang umum di semua perangkat.
Modul GKI - Modul kernel yang dibuat oleh Google yang dapat dimuat secara dinamis di perangkat jika berlaku. Modul ini dibuat sebagai artefak kernel GKI dan dikirim bersama GKI sebagai arsip
system_dlkm_staging_archive.tar.gz
. Modul GKI ditandatangani oleh Google menggunakan pasangan kunci waktu pembuatan kernel dan hanya kompatibel dengan kernel GKI yang digunakan untuk membuatnya.
- Kernel antarmuka Modul Kernel (KMI)
Lihat kernel GKI.
- Kernel yang Didukung Jangka Panjang (LTS)
Kernel Linux yang didukung selama 2 hingga 6 tahun. Kernel LTS dirilis setahun sekali dan menjadi dasar untuk setiap Kernel Umum Android Google.
Jenis cabang
- Cabang kernel KMI ACK
- Cabang tempat kernel GKI dibuat. Nama cabang sesuai dengan versi kernel, seperti
android15-6.6
. - Android-mainline
- Cabang pengembangan utama untuk fitur Android. Saat kernel LTS baru dideklarasikan di upstream, kernel GKI GKI yang baru yang sesuai akan di-branch dari android-mainline.
Mainline Linux : Cabang pengembangan utama untuk kernel Linux upstream, termasuk kernel LTS.
Istilah lainnya
- Image booting bersertifikasi
- Kernel yang dikirimkan dalam bentuk biner (
boot.img
) dan di-flash ke perangkat. Image ini dianggap bersertifikasi karena berisi sertifikat tersemat 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 booting perangkat, bergantung pada
kebutuhan perangkat. GKI dan modul vendor adalah jenis DLKM. DLKM dirilis dalam bentuk
.ko
dan dapat berupa driver atau dapat memberikan fungsionalitas kernel lainnya. - Project GKI
- Project Google yang mengatasi fragmentasi kernel dengan memisahkan fungsi kernel inti umum dari dukungan SoC dan board khusus vendor ke dalam modul yang dapat dimuat.
Generic Kernel Image (GKI) : Image booting yang disertifikasi oleh Google yang berisi kernel GKI yang dibangun dari pohon sumber ACK dan cocok untuk di-flash ke partisi booting perangkat yang didukung Android.
- Kernel Module Interface (KMI)
- Antarmuka antara kernel GKI dan modul vendor yang memungkinkan modul vendor diupdate secara terpisah dari kernel GKI. Antarmuka ini terdiri dari fungsi kernel dan data global yang telah diidentifikasi sebagai dependensi vendor/OEM menggunakan daftar simbol per partner.
- Modul vendor
- Modul khusus hardware yang dikembangkan oleh partner dan berisi SoC serta fungsionalitas khusus perangkat. Modul vendor adalah jenis modul kernel yang dapat dimuat secara dinamis.
Langkah berikutnya
Jika Anda baru mengenal pengembangan kernel Android, mulailah dengan membaca berikut ini:
- Kernel Stabil Jangka Panjang - Latar belakang kernel LTS upstream yang masuk ke ACK.
- Kernel Umum Android - Latar belakang ACK.
Jika Anda baru mengenal pengembangan kernel GKI, mulailah dengan membaca Pengembangan GKI.