Ekosistem Android saat ini begitu beragam dengan ratusan versi Android yang berbeda. Masing-masing perangkat menjalankan varian berbeda dari kernel Linux. Setiap versi kernel dirancang untuk ponsel yang berbeda dengan konfigurasi yang berbeda pula. Google ingin memperbaiki masalah ini dengan menggunakan kernel Linux mainline (utama) ke Android.
Bagaimana kernel Linux saat ini ditangani di Android? Saat ini kernel Linux pada ponsel Android harus melewati tiga langkah utama. Pertama, Google mengambil versi LTS (Long Term Support) dari kernel utama Linux dan menambahkan semua kode khusus Android. Ini menjadi “Android Common kernel”.
Kedua, Google kemudian mengirimkan kode ini (Android Common kernel) ke perusahaan yang menciptakan System on a Chip (SoC) yang menjalankan ponsel Anda, biasanya Qualcomm. Di sana, pembuat SoC menambahkan kode untuk mendukung CPU dan chip lainnya. Ketiga, kernel diteruskan ke pembuat perangkat yang sebenarnya, seperti Samsung atau Motorola.
Pembuat perangkat kemudian menambahkan kode untuk mendukung bagian ponsel lainnya, seperti tampilan dan kamera. Setiap langkah ini membutuhkan waktu untuk diselesaikan dan menghasilkan kernel akhir yang unik. Ini juga menyebabkan usia kernel sudah sangat tua, biasanya sekitar dua tahun.
Misalnya, Google Pixel 4 yang dikirim bulan lalu (Oktober 2019), memiliki kernel mulai November 2017 yang tidak pernah diperbarui. Hal ini menjadi masalah karena Google harus membuat tambalan keamanan untuk perangkat yang lebih lama. Ini berarti, mereka terjebak untuk merawat kumpulan kode lama (kernel) dalam jumlah yang sangat besar.
Tahun lalu, Google mengumumkan rencana untuk memperbaiki kekacauan ini. Tahun ini mereka mengungkapkan kemajuan apa yang mereka buat pada Konferensi Plumbers Linux 2019. Dalam acara tersebut, mereka memang memamerkan Xiaomi Poco F1 yang menjalankan Android dengan kernel utama Linux. Namun, ada beberapa hal yang tampaknya tidak berfungsi, seperti persentase baterai yang tetap di angka 0%.
“Jadi tujuan kami pada dasarnya adalah untuk menemukan semua itu, dari hulu dan coba sedekat mungkin dengan (kernel) garis utama.”, papar Sandeep Patil, Pimpinan Tim Kernel Android.
Jadi, bagaimana Google berencana untuk membuat ini berfungsi? Dengan mengambil halaman dari buku pedoman Project Treble mereka. Sebelum Project Treble, kode tingkat rendah yang berinteraksi dengan perangkat dan Android sendiri adalah satu kode yang berantakan. Project Treble memisahkan keduanya dan membuatnya modular sehingga pembaruan Android dapat dikirim lebih cepat dan kode tingkat rendah dapat tetap tidak berubah di antara pembaruan.
Di sisi lain, Komunitas Open Source tidak akan senang dengan gagasan memasukkan kode hak milik ke dalam kernel. Pedoman kernel Linux menyatakan bahwa driver harus memiliki lisensi GPL untuk dimasukkan dalam kernel. Mereka juga menunjukkan bahwa jika perubahan pada driver menyebabkan kesalahan, itu akan diselesaikan oleh orang yang membuat kesalahan. Ini berarti lebih sedikit pekerjaan untuk pembuat perangkat dalam jangka panjang.
Pendapat akhir tentang menyertakan kernel utama ke Andorid? Sejauh ini, ini hanya proposal. Lihat pula pada kenyataan bahwa ada banyak proyek yang ditinggalkan pula oleh Google. Saat ini, sepertinya hanya waktu yang bisa menjawabnya.
Bacaan lebih lanjut:
Arstechnica