Pertanyaan yang sering diajukan tentang kernel Android

Dokumen ini berisi pertanyaan umum tentang kernel Android, yang dikenal juga sebagai kernel Generic Kernel Image (GKI). Jika Anda belum familiar dengan GKI dan terminologi kernel GKI, lihat Ikhtisar Kernel .

Bisakah daftar simbol Kernel Module Interface (KMI) diubah di kernel yang stabil?

Perubahan yang tidak mempengaruhi KMI yang ada dapat ditambahkan pada kernel yang dibekukan. Perubahan ini mencakup fungsi baru yang diekspor dan entri daftar simbol. Untuk detailnya, lihat Mengelola daftar simbol .

Bisakah saya mengubah struktur yang digunakan oleh modul vendor di kernel yang stabil?

Struktur yang merupakan bagian dari antarmuka KMI tidak dapat diubah di kernel dengan KMI yang dibekukan. Sebelum KMI dibekukan, struktur ini bisa diubah.

Bisakah saya mengubah kernel selama saya tidak merusak kompatibilitas biner/sumber?

Perubahan yang tidak memengaruhi KMI dapat dilakukan seperti yang dijelaskan dalam patch khusus Android .

Bagaimana cara GKI menangani konfigurasi kernel?

Untuk informasi tentang konfigurasi kernel, lihat Perubahan pada gki_defconfig .

Bagaimana cara menangani perbaikan bug upstream untuk penimpaan modul GKI yang ada?

Jika Anda membuat modul vendor berdasarkan driver di Android Common Kernel (ACK) , Anda bebas memastikan bahwa perbaikan bug dari upstream dan ACK disebarkan ke modul Anda. Secara umum, sebaiknya Anda menggunakan kernel GKI dan modul GKI tanpa modifikasi sehingga pembaruan ini disediakan secara konsisten oleh Google.

Apakah ada tes khusus GKI?

Terdapat pengujian Vendor Test Suite (VTS) yang memverifikasi bahwa build GKI bersertifikat telah diinstal dan juga untuk menerapkan persyaratan GKI per rilis. Misalnya, ada pengujian Android 12 VTS untuk boot header v3 dan untuk memverifikasi keberadaan partisi yang diperlukan di perangkat yang menjalankan kernel 5.10.

Bagaimana cara membuat file fragmen defconfig proyek untuk pembuatan perangkat?

Banyak perangkat yang mendukung GKI menggunakan fragmen konfigurasi untuk menjelaskan opsi konfigurasi yang diperlukan, selain gki_defconfig , untuk membuat modul vendor. Contoh yang merupakan bagian dari basis kode ACK termasuk Cuttlefish dan DB845c. Tidak ada cara untuk menghindari beberapa pemeriksaan manual terhadap opsi konfigurasi untuk mengoptimalkan fragmen, tetapi scripts/diffconfig dari sumber kernel berguna untuk membandingkan hasil gki_defconfig dan gki_defconfig+device.fragment .

Apakah ada solusi untuk modprobe yang memperlakukan - dan _ setara?

Halaman manual modprobe berisi deskripsi ini: " modprobe dengan cerdas menambahkan atau menghapus modul dari kernel Linux: perhatikan bahwa untuk kenyamanan, tidak ada perbedaan antara _ dan - dalam nama modul (konversi garis bawah otomatis dilakukan)." Tim GKI mematuhi konvensi upstream standar, sehingga alat vendor atau konvensi penamaan modul harus mempertimbangkan kepatuhan ini.

Bagaimana cara mengaktifkan debugf untuk penggunaan internal?

Untuk detail tentang cara mengaktifkan debugf, lihat fitur debug downstream yang mengganggu .

Bagaimana cara mengatasi ABI yang tidak cocok antara kernel GKI dengan konfigurasi modul tertentu yang diaktifkan?

ABI yang tidak cocok antara kernel GKI dan konfigurasi modul menunjukkan ketergantungan konfigurasi modul yang implisit, dengan mengaktifkan modul menyebabkan konfigurasi biner dibangun ke dalam image kernel yang dihasilkan. Hubungi tim kernel Android ( kernel-team@android.com ) untuk menentukan jalur ke depan. Setelah daftar simbol ditentukan, buat bug di Issue Tracker dan unggah perubahannya ke daftar simbol.

Saya memiliki perangkat yang mendukung GKI 1.0 dan menjalankan kernel 5.4 yang diluncurkan dengan Android 11 dan 12. Opsi peningkatan kernel apa yang tersedia, dan bagaimana cara menguji perangkat ini saat meningkatkan ke Android 12 dan 13?

Lihat matriks kompatibilitas untuk daftar versi kernel yang didukung untuk versi peluncuran dan peningkatan. Berikut adalah dua contoh peningkatan.

Contoh 1: Pengguna dengan perangkat yang diluncurkan dengan Android 11 dengan kernel android11-5.4 ( GKI 1.0 ) dapat memilih salah satu opsi berikut saat melakukan upgrade ke Android 12:

  • Tingkatkan ke kernel android12-5.10 GKI 2.0 (sangat disarankan).

  • Pertahankan kernel android11-5.4 .

  • Tingkatkan ke kernel android12-5.4 .

Contoh 2: Pengguna dengan perangkat yang diluncurkan dengan Android 12 dengan kernel android12-5.4 atau android12-5.10 dapat memilih salah satu opsi berikut saat melakukan upgrade ke Android 13:

  • Tingkatkan ke kernel android13-5.10 atau android13-5.15 GKI 2.0 (sangat disarankan).

  • Pertahankan kernel android12-5.4 GKI 1.0 .

  • Pertahankan kernel android12-5.10 GKI 2.0 .

Khusus untuk pengujian kepatuhan Treble, kami menyarankan Anda melakukan salah satu hal berikut:

  • Ganti kernel partner dengan kernel GKI 1.0 tersertifikasi ( android11-5.4 atau android12-5.4 ).

  • Dikirim dengan kernel GKI 2.0 tersertifikasi ( android12-5.10 , android13-5.10 , atau android13-5.15 ) bergantung pada pilihan Anda.

Anda dapat mengunduh versi GKI 2.0 dari versi rilis Generic Kernel Image (GKI) .