Android beralih ke model "upstream first" untuk fitur kernel Linux baru

Google berencana untuk beralih ke model pengembangan "upstream first" untuk fitur kernel Linux di Android mulai tahun 2023. Baca terus untuk mengetahui lebih lanjut.

Saat Anda melihat kata "Android" dan "fragmentasi" dalam kalimat yang sama, pikiran Anda mungkin langsung tertuju pada Bagan distribusi versi Android. Ada beberapa entitas yang menjadi sasaran sebagian besar orang ketika mengeluh bahwa pembaruan OS Android lambat untuk diterapkan secara menyeluruh, namun hanya ada sedikit hal yang dapat dilakukan Google untuk mengatasinya. memaksa OEM untuk mengembangkan dan meluncurkan pembaruan dengan lebih cepat. Namun, yang dapat dilakukan Google adalah mengurangi waktu pengembangan dan biaya peluncuran pembaruan.

Inisiatif besar pertama dalam proyek jangka panjang Google untuk mengurangi beban pembangunan adalah Proyek Tiga Kali Lipat. Diumumkan bersamaan dengan Android 8.0 Oreo pada tahun 2017, Project Treble memodulasi Android dengan memisahkan kerangka OS dari implementasi vendor (HAL dan fork kernel Linux khusus perangkat). Hal ini memudahkan OEM Android untuk mengubah basis OS mereka ke kerangka AOSP terbaru karena mereka dapat mem-boot versi terbaru tanpa memerlukan kode terbaru dari vendor. Hasilnya, OEM dapat menyiapkan fork Android khusus mereka lebih cepat dari sebelumnya, dan selanjutnya, meluncurkan pembaruan OS utama dengan lebih cepat.

Langkah selanjutnya dalam rencana Google adalah menyederhanakan pengiriman pembaruan pada komponen-komponen utama Android. Google menyebut inisiatif ini Jalur Utama Proyek ketika diperkenalkan bersama Android 10 pada tahun 2019. Google pada dasarnya mengambil kendali atas komponen OS utama dan melarang OEM memodifikasinya. Mereka kemudian menyiapkan mekanisme pengiriman melalui Google Play sehingga mereka dapat meluncurkan pembaruan pada komponen-komponen utama ini dari jarak jauh tanpa harus menunggu OEM menerapkan patch itu sendiri. Mainline sangat meningkatkan kecepatan perangkat menerima versi terbaru dari komponen OS penting, yang pada gilirannya meningkatkan keamanan ekosistem Android secara keseluruhan.

Namun apa yang akan terjadi selanjutnya adalah hal yang lebih penting, dan bisa dibilang merupakan bagian terpenting dari strategi jangka panjang Google. Seperti yang telah kami tunjukkan sebelumnya bagaimana Treble memodulasi Android dengan memisahkan kerangka OS dari implementasi vendor, kami menyertakan "garpu kernel Linux khusus perangkat" sebagai bagian dari vendor tersebut kode. Siapa pun yang akrab dengan Linux di desktop akan mengenali masalah di sana: Mengapa ini disamakan dengan kode vendor sumber tertutup? Masalahnya adalah meskipun perangkat Android dikirimkan dengan kernel Linux, kernel tersebut memiliki fitur a banyak kode di luar pohon.

Bagaimana kita sampai di sana? Masalahnya, seperti yang diuraikan oleh insinyur perangkat lunak Google Todd Kjos di Konferensi Tukang Ledeng Linux tahun ini (melalui ArsTechnica), karena kernel Linux arus utama di-fork beberapa kali sebelum dikirimkan ke perangkat Android. Google membagi setiap kernel Linux arus utama menjadi "Kernel Umum Android" cabang, yang melacak rilis arus utama tetapi menambahkan beberapa patch khusus Android. Vendor SoC seperti Qualcomm, MediaTek, dan Samsung kemudian melakukan fork itu kernel untuk setiap SoC yang mereka buat. OEM kemudian mengambil kernel khusus SoC tersebut dan menambahkan patch tambahan untuk mengimplementasikan dukungan pada perangkat keras spesifik yang ingin mereka kirimkan.

Karena perubahan ini, "sebanyak 50% kode yang berjalan pada perangkat adalah kode out-of-tree (bukan dari kernel umum Linux upstream atau AOSP)", menurut Google. Banyaknya kode out-of-tree pada perangkat ini membuat penggabungan perubahan upstream menjadi proses yang panjang dan menantang. Hal ini berbahaya bagi keamanan perangkat, karena OEM harus bekerja lebih keras untuk menerapkan patch terhadap kerentanan yang ditemukan di kernel Linux. Selain itu, hal ini membuat sebagian besar perangkat Android menggunakan rilis kernel yang sudah lama, yang berarti mereka kehilangan fitur kernel Linux yang baru.

Dalam upaya mengatasi masalah ini, Google sedang mengerjakan Android Generic Kernel Image (GKI), yang pada dasarnya adalah kernel yang dikompilasi langsung dari cabang ACK. GKI mengisolasi vendor SoC dan penyesuaian OEM ke modul plugin, menghilangkan kode out-of-tree dan memungkinkan Google untuk mengirimkan pembaruan kernel langsung ke pengguna akhir. Selama lebih dari setahun, Google telah berupaya menghadirkan pembaruan GKI melalui Play Store, melalui penggunaan modul Mainline.

Menurut sumber kami, perangkat yang diluncurkan dengan Android 12 dan dikirimkan dengan kernel Linux 5.10 harus menggunakan image boot yang ditandatangani Google. milik Google sendiri Piksel 6 seri ini akan diluncurkan dengan Android 12 dan dikirimkan dengan kernel Linux 5.10, sehingga kedua ponsel tersebut mungkin menjadi perangkat pasar massal pertama yang dikirimkan dengan GKI.

Selain itu, Todd Kjos dari Google mengungkapkan bahwa perusahaan berencana untuk beralih ke model pengembangan "upstream first" untuk fitur kernel Linux baru. Hal ini akan membantu Google memastikan bahwa kode baru pertama kali masuk ke kernel Linux arus utama, yang akan mengurangi utang teknis di masa depan yang timbul dari lebih banyak kode yang tidak biasa yang mendarat di perangkat Android.

Pada Konferensi Tukang Ledeng Linux minggu ini, Kjos berkata, "Karena modul out-of-tree sangat penting untuk kasus penggunaan kami, kami berharap kami akan selalu memiliki serangkaian ekspor dan beberapa hal yang berbeda atau sebagai tambahan terhadap apa yang ada. di bagian hulu, namun keseluruhan proyek ini merupakan proyek multi-tahun yang berupaya untuk menghilangkan sebanyak mungkin bidang-bidang di luar pohon, dan menyelaraskan sebanyak mungkin dengan ke hulu." Google bertujuan untuk menyelesaikan pekerjaannya dalam upstreaming fitur yang ada dan mengisolasi perubahan vendor pada akhir tahun 2022 dan, mulai tahun 2023, perusahaan berencana untuk mengadopsi model pengembangan "hulu yang pertama" ini untuk menghindari masalah seperti itu di masa depan. masa depan.