Dokumen ini berisi pertanyaan umum (FAQ) tentang kernel Android, yang juga dikenal sebagai kernel Generic Kernel Image (GKI). Jika Anda belum terbiasa dengan terminologi kernel GKI dan GKI, lihat Ringkasan kernel.
Dapatkah daftar simbol Kernel Module Interface (KMI) diubah dalam kernel yang stabil?
Perubahan yang tidak memengaruhi KMI yang ada dapat ditambahkan ke kernel yang dibekukan. Perubahan ini mencakup fungsi yang diekspor dan entri daftar simbol baru. Untuk mengetahui detailnya, lihat Mengelola daftar simbol.
Dapatkah 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 pembekuan KMI, struktur ini dapat diubah.
Dapatkah saya mengubah kernel selama saya tidak merusak kompatibilitas biner atau sumber?
Perubahan yang tidak memengaruhi KMI dapat dilakukan seperti yang dijelaskan dalam patch khusus Android.
Bagaimana GKI menangani konfigurasi kernel?
Untuk mengetahui informasi tentang konfigurasi kernel, lihat Perubahan pada gki_defconfig.
Bagaimana cara menangani perbaikan bug upstream untuk penimpaan pada modul GKI yang ada?
Jika Anda membuat modul vendor berdasarkan driver di Android Common Kernel (ACK), Anda bertanggung jawab untuk memastikan bahwa perbaikan bug dari upstream dan ACK diteruskan ke modul Anda. Secara umum, sebaiknya gunakan kernel GKI dan modul GKI tanpa modifikasi agar update ini diberikan secara konsisten oleh Google.
Apakah ada tes khusus GKI?
Ada pengujian Vendor Test Suite (VTS) yang memverifikasi bahwa build GKI bersertifikasi telah diinstal dan juga untuk menerapkan persyaratan GKI per rilis. Misalnya, ada pengujian VTS Android 12 untuk header booting v3 dan untuk memverifikasi keberadaan partisi yang diperlukan di perangkat yang menjalankan kernel 5.10.
Bagaimana cara membuat file fragmen defconfig project untuk build perangkat?
Banyak perangkat yang kompatibel dengan GKI menggunakan fragmen config untuk menjelaskan opsi konfigurasi yang diperlukan, selain gki_defconfig
, untuk membangun modul vendor.
Contoh yang merupakan bagian dari codebase ACK mencakup Cuttlefish dan DB845c.
Tidak ada cara untuk menghindari pemeriksaan manual beberapa 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 _ sebagai setara?
Halaman manual modprobe
berisi deskripsi ini: "modprobe
menambahkan atau menghapus modul dari kernel Linux secara cerdas: perhatikan bahwa untuk mempermudah, 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 debugfs untuk penggunaan internal?
Untuk mengetahui detail tentang cara mengaktifkan debugfs, lihat fitur debug hilir 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 dependensi konfigurasi modul implisit, di mana pengaktifan modul menyebabkan konfigurasi biner dibangun ke dalam image kernel yang dihasilkan. Hubungi tim kernel Android (kernel-team@android.com) untuk menentukan langkah selanjutnya. Setelah daftar simbol ditentukan, buat bug di Issue Tracker dan upload perubahan ke daftar simbol.