Ringkasan kernel

Kernel Android didasarkan pada kernel Linux Long Term Supported (LTS) upstream. Di Google, kernel LTS digabungkan dengan patch khusus Android untuk membentuk yang dikenal sebagai Android Common Kernels (ACK).

ACK yang lebih baru (versi 5.4 dan yang lebih baru) juga dikenal sebagai kernel GKI. Kernel GKI mendukung pemisahan kode kernel inti generik yang tidak bergantung pada hardware dan modul GKI dari modul vendor khusus hardware.

Kernel GKI berinteraksi dengan modul vendor khusus hardware yang berisi sistem di chip (SoC) dan kode khusus board. 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 kernel GKI dan arsitektur modul vendor:

Arsitektur GKI
Gambar 1. Arsitektur GKI

Glosarium kernel

Bagian ini berisi istilah yang digunakan di seluruh dokumentasi kernel.

Jenis kernel

Android Common Kernel (ACK)
Kernel yang merupakan downstream dari kernel LTS dan menyertakan patch yang menarik bagi komunitas Android yang belum digabungkan ke kernel mainline Linux atau Dukungan Jangka Panjang (LTS). ACK yang lebih baru (versi 5.4 dan yang lebih baru) juga dikenal sebagai kernel GKI karena mendukung pemisahan kode Kernel Generik yang tidak bergantung pada hardware dan modul GKI yang tidak bergantung pada hardware.
Kernel Project Open Source Android (AOSP)
Lihat Android Common Kernel.
Kernel Fitur
Kernel yang fitur rilis platformnya dijamin akan diterapkan. 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; kumpulan fitur akan mirip dengan perangkat yang diluncurkan dengan 4.19 di Android 11 dan diupgrade ke Android 12.
kernel inti generik
Bagian kernel GKI yang umum di semua perangkat.
Kernel Generic Kernel Image (GKI)
Semua kernel ACK yang lebih baru (5.4 dan yang lebih baru) (saat ini hanya aarch64). Kernel ini memiliki dua bagian: Kernel GKI inti dengan kode yang umum di semua perangkat dan modul GKI yang dikembangkan oleh Google yang dapat dimuat secara dinamis di perangkat jika berlaku.
Kernel Kernel Module Interface (KMI)
Lihat kernel GKI.
Meluncurkan 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 Dukungan Jangka Panjang (LTS)
Kernel Linux yang didukung selama 2 hingga 6 tahun. Kernel LTS dirilis sekali per tahun dan merupakan dasar untuk setiap ACK Google.

Jenis cabang

Cabang kernel ACK KMI
Cabang tempat kernel GKI dibuat. Misalnya, android12-5.10 dan android13-5.15.
Android-mainline
Cabang pengembangan utama untuk fitur Android. Saat kernel LTS baru dideklarasikan di upstream, kernel GKI baru yang sesuai akan di-branch dari android-mainline.
Mainline Linux
Cabang pengembangan utama untuk kernel Linux upstream, termasuk kernel LTS.

Istilah lainnya

Gambar booting bersertifikasi
Kernel dikirim dalam bentuk biner (boot.img) dan di-flash ke perangkat. Image ini disertifikasi dalam arti bahwa image ini 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 fungsi kernel lainnya.
Project GKI
Project Google yang mengatasi fragmentasi kernel dengan memisahkan fungsi kernel core umum dari dukungan SoC dan board khusus vendor menjadi modul yang dapat dimuat.
Generic Kernel Image (GKI)
Image booting yang disertifikasi oleh Google yang berisi kernel GKI yang dibuat dari pohon sumber ACK dan cocok untuk di-flash ke partisi booting perangkat Android.
KMI
Antarmuka antara kernel GKI dan modul vendor yang memungkinkan modul vendor diupdate 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 partner.
Modul GKI
Modul kernel yang dibuat oleh Google dan 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 build kernel dan hanya kompatibel dengan kernel GKI yang digunakan untuk mem-build-nya.
Modul vendor
Modul khusus hardware yang dikembangkan oleh partner dan berisi fungsi SoC dan khusus perangkat. Modul vendor adalah jenis modul kernel yang dapat dimuat secara dinamis.

Apa selanjutnya?

  • Jika Anda baru mengenal pengembangan kernel Android, sebaiknya mulai dengan membaca hal berikut:
  • Jika Anda baru mengenal pengembangan kernel GKI, mulailah dengan membaca Pengembangan GKI.