Wawancara dengan Flar2, Pengembang Kernel ElementalX Bagian 1

Kami mewawancarai flar2, pengembang kernel ElementalX dan mempelajari topik-topik seperti kehidupan pribadinya, pekerjaan pengembangan, dan banyak lagi.

Baru-baru ini saya mewawancarai flar2, orang di balik kernel ElementalX yang terkenal, dan aplikasi ElementalX Kernel Manager miliknya yang bahkan lebih populer. Dia telah merilis versi kernelnya untuk beragam perangkat, termasuk Satu ditambah dan perangkat Nexus.

Di bagian ini, kami bertanya tentang pemikiran flar2 tentang hambatan kinerja Android dan lebih banyak lagi tentang kehidupan pribadinya! Anda bisa memeriksanya bagian 2 dari wawancara ini di sini.


Hai! Perkenalkan diri Anda terlebih dahulu sebelum kita melanjutkan ke pertanyaan.

Nama saya Aaron Segaert, juga dikenal sebagai flar2. Kebanyakan orang mengenal saya sebagai pengembang kernel ElementalX. Saya juga punya beberapa aplikasi.

Apakah Anda punya pengalaman dengan komputer dan pengembangan sebelumnya? Seperti gelar ilmu komputer atau semacamnya?

Saya memulai dengan komputer ketika saya masih sangat muda. Komputer pertama saya adalah Texas Instruments TI-99/4A. Saya belajar cara membuat kode dalam BASIC dan menyimpan program saya di kaset (ya, saya sudah tua). Kemudian keluarga kami membeli tiruan IBM 286, dan saya tidak lagi melakukan coding pada saat itu karena hal ini terjadi sebelumnya Internet dikenal luas dan saya tidak memiliki sumber daya apa pun atau bahkan mengenal orang lain yang memilikinya komputer. Saya memulai ilmu komputer di universitas, tetapi gagal pada tahun pertama. Aku tidak pernah benar-benar masuk kelas karena terlalu sibuk bersenang-senang dan manggung bersama bandku. Kemudian saya kembali ke sekolah dan memperoleh gelar doktor di bidang sosiologi. Selama menjadi mahasiswa, saya tertarik pada Linux dan open source tetapi tidak pernah mendalami pemrograman secara serius. Saya menyumbangkan sedikit di sana-sini, tetapi kebanyakan hanya membuat skrip dan program kecil untuk keperluan saya sendiri. Saya mungkin membangun kernel Linux pertama saya sekitar tahun 2002. Pada saat itu, saya tidak menulis kode saya sendiri, hanya bereksperimen dengan berbagai patch dan opsi build untuk meningkatkan kinerja. Saya lebih tertarik pada pembuatan komputer, melakukan overclocking, dan secara umum mencoba membuat perangkat keras melakukan hal-hal yang tidak seharusnya dilakukan.

Apakah ada pengembangan selain pengembangan aplikasi Android dan pengembangan kernel yang menarik minat Anda?

Tidak juga, saya menemukan alat bagus tersedia untuk hampir semua hal yang perlu saya lakukan di komputer. Alasan saya mulai mengerjakan kernel dan aplikasi untuk Android adalah karena saya merasa perlunya fitur tertentu dan ruang untuk perbaikan pada alat yang sudah ada. Misalnya, saya membuat Button Mapper karena saya ingin tombol beranda di ponsel Samsung berfungsi lebih baik, dan saya tidak menyukai tombol mundur dan tombol terkini. Saya membuat DevCheck karena aplikasi info sistem lain tidak menampilkan info yang ingin saya lihat secara jelas dan ringkas. Kernel ElementalX menambahkan fitur perangkat keras baru dan EX Kernel Manager mengontrol fitur tersebut dan menambahkan beberapa alat yang saya gunakan untuk mempermudah pengembangan. Saya suka memecahkan masalah dan merupakan tantangan yang menyenangkan untuk merekayasa balik atau menambahkan fitur perangkat keras baru ke telepon.

Bagaimana Anda mengenal pengembangan Android, khususnya pengembangan kernel?

Saya selalu membenci ponsel dan menolaknya sejak lama. Saya dan istri saya berbagi ponsel flip dasar dengan paket minimal yang terutama digunakan untuk keadaan darurat. Pada tahun 2012, kami mengalami kebakaran di rumah kami dan keluar rumah selama hampir tiga bulan. Semua utilitas kami terputus, dan kami memutuskan untuk tidak menyambungkan kembali telepon rumah kami, jadi kami mendapatkan ponsel pintar, yang menurut saya adalah LG P. Saya menyadari itu seperti komputer mini dan memutuskan bahwa saya memerlukan komputer mini sendiri, jadi saya membeli HTC One V.

Karena saya mengutak-atik dan memodifikasi hampir semua hal, saya segera menemukan XDA dan menemukan bahwa ponsel Android tidak hanya menjalankan Linux, tetapi juga dapat di-overclock. Saya sudah lama menjadi pengguna Linux, jadi saya mem-fork salah satu kernel dan ketagihan. Saya segera mendapatkan tablet Acer murah dan mulai mengotak-atik perangkat keras dan kernel tersebut karena saya ingin tablet tersebut memiliki USB OTG. Ternyata perangkat kerasnya tidak mumpuni, namun dari situlah saya mulai belajar lebih banyak tentang perangkat keras seluler. Saya tidak pernah merilis kernel secara publik untuk LG, tablet Acer, atau One V, tetapi membuat kernel saya sendiri untuk masing-masing kernel dan menginstal ROM khusus, yang diperlukan pada saat itu, karena Android belum matang.

Saya segera mengembangkan One V dan menukarnya dengan HTC One XL dan saat itulah ElementalX lahir.

Apa tujuan ElementalX pada awalnya, dan bagaimana perubahannya dalam beberapa tahun terakhir?

Tujuan ElementalX selalu menambahkan fitur perangkat keras yang berguna, tanpa mengorbankan stabilitas atau kinerja, dan merilis sesuatu yang dapat diandalkan oleh orang-orang agar dapat berfungsi. Saya selalu mengutamakan stabilitas karena saya ingin ponsel saya dapat diandalkan. Tidak ada reboot acak atau hal-hal seperti kamera tidak berfungsi. Filosofinya tetap sama selama bertahun-tahun. Saya menyederhanakannya dan menambahkan fitur perangkat keras yang menurut saya berguna. Hal-hal seperti gerakan bangun, mode kecerahan tinggi, penyesuaian getaran, kontrol suara, dukungan untuk lebih banyak sistem file, joystick, dll.

Saya bekerja keras untuk selalu memperbarui kernel saya, mudah dipasang, dan kompatibel secara luas. Beberapa pengguna kecewa karena saya tidak menambahkan banyak patch dari CAF atau Linux upstream, namun tujuan utama saya adalah memberikan produk yang sangat stabil tanpa masalah aneh. Banyak pengguna saya bukanlah orang yang banyak memposting di XDA, mereka adalah pengguna mahir yang kebutuhan spesifiknya terpenuhi oleh kernel khusus, atau orang-orang yang kadang-kadang suka mengutak-atik perangkat keras mereka tetapi bukan orang yang keras kepala pecandu flash. Saya ingin orang-orang yang tidak mengikuti semua perkembangan Android terkini dapat menggunakan ElementalX tanpa masalah.

Ada banyak kernel lain yang bereksperimen dengan patch upstream. Di ElementalX, saya menggunakan serangkaian tambalan dan pengoptimalan yang dipilih dengan cermat. Dalam karir saya di luar Android, saya mengukur hal-hal yang sulit diukur dan menggunakan bukti untuk membuat kebijakan dan memberikan saran. Saya menerapkan prinsip yang sama pada pengembangan kernel dan umumnya tidak menggunakan patch kecuali ada manfaat yang terukur. Monitor baterai di EX Kernel Manager adalah contohnya. Ini menawarkan cara untuk mengukur secara objektif efek penyesuaian baterai dan perubahan kernel. Monitor mengambang di DevCheck adalah alat lain yang saya gunakan untuk pengembangan, sebagian besar untuk memantau CPU frekuensi dan suhu selama berbagai kasus penggunaan seperti bermain game atau menonton video atau web menjelajah.

Apa pengaruh perubahan pada Android dalam beberapa tahun terakhir terhadap pekerjaan Anda?

Terkadang sulit untuk menangani banyak perubahan keamanan, namun saya memahaminya. Kalau tidak salah, Android kini lebih banyak digunakan dibandingkan Windows sehingga menjadikannya incaran. Orang jahat akan menggunakan sudut pandang apa pun untuk mengeksploitasi pengguna Android.

Mencegah modifikasi partisi sistem jelas merupakan kunci untuk melindungi integritas perangkat. Saya ingat ketika HTC mulai melakukan ini pada tahun 2012 atau 2013 dan rasanya seperti akhir dunia. Pada saat itu, menulis ke /system diperlukan untuk melakukan root, mengedit build.prop, menginstal aplikasi yang memiliki hak istimewa, menghapus bloatware, dan hampir semua mod populer. Banyak penyesuaian pada saat itu melibatkan hal-hal seperti deodexing dan modifikasi kerangka kerja. Untuk waktu yang lama, tidak ada sumber kernel yang tersedia dari HTC, jadi saya membuat modul kernel untuk menonaktifkan perlindungan penulisan sistem di kernel stok, yang pertama kali saya terkenal sebagai pengembangnya. Namun seiring berjalannya waktu, ketika perlindungan seperti verity menjadi bagian standar Android, hal ini memaksa adanya inovasi dan peningkatan yang lebih baik solusi seperti root tanpa sistem Chainfire dan sekarang ada Magisk yang melakukan segala macam hal tanpa sistem.

Masalah besar lainnya adalah SELinux, yang menyebabkan banyak aplikasi berhenti bekerja. Banyak pengguna yang membencinya dan hingga hari ini masih ada orang yang menjalankan SELinux dalam mode permisif, yang merupakan ide yang sangat buruk. Menurut saya SELinux adalah satu-satunya fitur keamanan terpenting di Android. Sebagai contoh pentingnya SELinux, ketika saya pertama kali mendapatkan Pixel XL, tidak ada root yang tersedia, tetapi eksploitasi Dirty Cow menjadi berita. Saya sangat ingin memulai pengembangan kernel, yang berarti mencari atau memodifikasi file sysfs, yang memerlukan root. Saya mengkompilasi salah satu bukti konsep Dirty Cow dan mampu menjalankan perintah sebagai root, tetapi SELinux mencegah saya melakukan sesuatu yang menarik. Saya harus memodifikasi boot.img untuk membuat SELinux permisif. Saya mungkin bisa mendapatkan akses penuh tanpa memodifikasi kernel, tapi itu akan memakan waktu berjam-jam. Dengan demikian, biarkan SELinux menerapkannya, ini adalah garis pertahanan utama melawan malware. Pelajari cara menggunakan sepolicy-inject untuk mengubah kebijakan tertentu sesuai kebutuhan.

Ketika Nougat hadir, awalnya hampir semua /sys dan /proc menjadi tidak terlihat oleh aplikasi pengguna. Root selalu diperlukan untuk melakukan perubahan, tapi tiba-tiba root diperlukan hanya untuk membaca /sys dan /proc. Pasti ada informasi dalam sistem file tersebut yang dapat digunakan untuk mengeksploitasi suatu perangkat, jadi perlu untuk menambahkan batasan. Namun banyak juga info yang harus bisa dilihat pengguna. Mengapa root diperlukan untuk melihat penjadwal i/o saat ini, atau frekuensi GPU, atau jenis perangkat keras panel? Saya harus membuat banyak perubahan pada DevCheck untuk mengatasi hal ini, dan banyak pengguna yang bingung mengapa informasi tidak lagi tersedia setelah memperbarui ke Nougat. Akhirnya, beberapa pembatasan pada jalur sysfs dicabut.

Selain itu, dari perspektif pengembangan aplikasi, saya menyukai sebagian besar perubahan API di Android, meskipun perubahan tersebut memaksa saya untuk membuat banyak perubahan pada aplikasi saya. Perubahan ini biasanya mengarah ke arah yang lebih baik.


Lihat Bagian 2 Wawancara ini!