ElementalX Kernel Bölüm 1 Geliştiricisi Flar2 ile Röportaj

ElementalX çekirdeğinin geliştiricisi flar2 ile röportaj yapıyoruz ve kişisel hayatı, geliştirme çalışmaları ve daha fazlası gibi konuları ele alıyoruz.

Yakın zamanda ünlü ElementalX çekirdeğinin arkasındaki adam ve onun daha da popüler olan ElementalX Çekirdek Yöneticisi uygulaması olan flar2 ile röportaj yapma şansım oldu. Çok çeşitli cihazlar için çekirdeğinin bir sürümünü yayınladı. OnePlus ve Nexus cihazları.

Bu bölümde flar2'nin Android performans darboğazları hakkındaki düşüncelerini ve kişisel hayatı hakkında daha fazlasını soruyoruz! Kontrol edebilirsiniz bu röportajın 2. bölümü burada.


Selam! Sorulara geçmeden önce öncelikle kendinizi tanıtın.

Benim adım Aaron Segaert, aynı zamanda flar2 olarak da bilinir. Çoğu kişi beni ElementalX çekirdeğinin geliştiricisi olarak tanıyor. Ayrıca birkaç uygulamam var.

Daha önce bilgisayar ve geliştirme konusunda deneyiminiz var mıydı? Bilgisayar bilimi diploması falan mı?

Bilgisayarlarla tanışmaya çok küçük yaşlarda başladım. İlk bilgisayarım Texas Instruments TI-99/4A'ydı. BASIC'te kodlamayı öğrendim ve programlarımı kasete kaydettim (evet, yaşlıyım). Daha sonra ailemiz bir 286 IBM klonu satın aldı ve ben o noktada kodlamayı bıraktım çünkü bu daha önceydi İnternet yaygın olarak biliniyordu ve herhangi bir kaynağım yoktu, hatta bu konuda bilgisi olan başka birini de tanımıyordum. bilgisayar. Üniversitede bilgisayar bilimine başladım ama ilk sınıfta sınıfta kaldım. Hiç derse gitmedim çünkü eğlenmek ve grubumla konserler vermekle çok meşguldüm. Daha sonra okula döndüm ve sosyoloji alanında doktora yaptım. Öğrencilik yıllarımda Linux'a ve açık kaynağa ilgi duymaya başladım ama hiçbir zaman ciddi programlamayla ilgilenmedim. Ara sıra ufak tefek katkılarda bulundum ama çoğunlukla kendi amaçlarım için senaryolar ve küçük programlar hazırladım. Muhtemelen ilk Linux çekirdeğimi 2002 civarında oluşturdum. O zamanlar kendi kodumu yazmıyordum, yalnızca performansı artırmak için farklı yamalar ve derleme seçenekleriyle denemeler yapıyordum. Ben daha çok bilgisayar oluşturmaya, hız aşırtmaya ve genel olarak donanımın yapmaması gereken şeyleri yapmasını sağlamaya çalışıyordum.

Android uygulama geliştirme ve çekirdek geliştirme dışında ilginizi çeken herhangi bir gelişme var mı?

Pek sayılmaz, bilgisayarlarda yapmam gereken neredeyse her şey için iyi araçlar buldum. Android için çekirdekler ve uygulamalar üzerinde çalışmaya başlamamın nedeni, belirli özelliklere ihtiyaç olduğunu ve mevcut araçlarda iyileştirmeler yapılması gerektiğini hissetmemdi. Örneğin Button Mapper'ı Samsung telefonlardaki ana sayfa tuşunun daha fazlasını yapmasını istediğim ve ters çevrilmiş geri ve son arama tuşlarını sevmediğim için yaptım. Diğer sistem bilgisi uygulamaları görmek istediğim bilgiyi net ve öz bir şekilde göstermediği için DevCheck'i yaptım. ElementalX çekirdeği yeni donanım özellikleri ekler ve EX Çekirdek Yöneticisi bu özellikleri kontrol eder ve geliştirmeyi kolaylaştırmak için kullandığım bazı araçları ekler. Sorunları çözmeyi severim ve bazı şeyleri tersine mühendislik yapmak veya bir telefona yeni donanım özellikleri eklemek eğlenceli bir iştir.

Android geliştirmeyle, özellikle de çekirdek geliştirmeyle nasıl tanıştınız?

Cep telefonlarından her zaman nefret ettim ve onlara uzun süre direndim. Eşim ve ben, çoğunlukla acil durumlar için kullanılan, minimal planlı, basit bir çevirmeli telefonu paylaştık. 2012 yılında evimizde yangın çıktı ve neredeyse üç ay boyunca dışarıdaydık. Tüm hizmetlerimiz kesildi ve sabit hattımızı yeniden bağlamamaya karar verdik, bu yüzden bir akıllı telefon aldık, sanırım bu LG P benzeri bir şeydi. Bunun bir mini bilgisayara benzediğini fark ettim ve kendi mini bilgisayarıma ihtiyacım olduğuna karar verdim ve bir HTC One V satın aldım.

Hemen hemen her şeyi değiştirdiğimden ve değiştirdiğimden, hemen XDA'yı keşfettim ve Android telefonların yalnızca Linux çalıştırmadığını, aynı zamanda hız aşırtma yapılabileceğini de keşfettim. Uzun zamandır Linux kullanıcısıyım, bu yüzden çekirdeklerden birini çatalladım ve bağımlısı oldum. Kısa süre sonra ucuz bir Acer tablet aldım ve USB OTG'ye sahip olmasını istediğim için bu donanım ve çekirdekle uğraşmaya başladım. Donanımın yeterli olmadığı ortaya çıktı, ancak bu şekilde mobil donanım hakkında daha fazla şey öğrenmeye başladım. LG, Acer tablet veya One V için hiçbir zaman halka açık bir çekirdek yayınlamadım, ancak her biri için kendi çekirdeklerimi oluşturdum ve Android henüz olgunlaşmadığından o günlerde gerekli olan özel ROM'ları yükledim.

Kısa süre sonra One V'yi aştım ve HTC One XL ile takas yaptım ve işte o zaman ElementalX doğdu.

ElementalX'in başlangıçta hedefi neydi ve bu son yıllarda nasıl değişti?

ElementalX'in hedefi her zaman kararlılık veya performanstan ödün vermeden kullanışlı donanım özellikleri eklemek ve insanların yalnızca çalışmak için güvenebileceği bir şey sunmak olmuştur. Her zaman istikrara öncelik veririm çünkü telefonumun güvenilir olmasına ihtiyacım var. Rastgele yeniden başlatma veya kameranın çalışmaması gibi şeyler yok. Felsefesi yıllar boyunca aynı kaldı. İşleri basit tutuyorum ve yararlı bulduğum donanım özellikleri ekliyorum. Uyandırma hareketleri, yüksek parlaklık modu, titreşim ayarı, ses kontrolü, daha fazla dosya sistemi desteği, oyun çubukları vb. gibi şeyler.

Çekirdeklerimi güncel, kurulumu kolay ve mümkün olduğunca geniş anlamda uyumlu tutmak için çok çalışıyorum. Bazı kullanıcılar CAF veya yukarı akışlı Linux'tan çok fazla yama eklemediğim için hayal kırıklığına uğruyorlar, ancak asıl amacım tuhaf sorunlar olmadan çok kararlı bir ürün sunmak. Kullanıcılarımın çoğu XDA'da çok fazla paylaşım yapan kişiler değil, belirli bir ihtiyaçları karşılanan uzman kullanıcılardır özel bir çekirdek tarafından veya ara sıra donanımlarıyla uğraşmayı seven ancak hardcore olmayan kişiler tarafından flaşkolikler. En son Android gelişmelerini takip etmeyen kişilerin ElementalX'i sorunsuz kullanabilmesini istiyorum.

Yukarı akış yamalarını deneyen birçok başka çekirdek var. ElementalX'te özenle seçilmiş bir dizi yama ve optimizasyon kullanıyorum. Android dışındaki kariyerimde ölçülmesi zor olan şeyleri ölçüyor ve politika oluşturmak ve tavsiyelerde bulunmak için kanıtları kullanıyorum. Aynı prensipleri çekirdek geliştirmeye de uyguluyorum ve ölçülebilir bir fayda olmadığı sürece genellikle yama kullanmıyorum. EX Kernel Manager'daki pil monitörü buna bir örnektir. Pil ayarlarının ve çekirdek değişikliklerinin etkisini objektif olarak ölçmenin bir yolunu sunar. DevCheck'teki kayan monitörler, çoğunlukla CPU'yu izlemek için geliştirme için kullandığım başka bir araçtır Oyun oynama, video veya web izleme gibi farklı kullanım durumları sırasında frekanslar ve sıcaklıklar tarama.

Son birkaç yılda Android'de yapılan değişiklikler çalışmalarınızı nasıl etkiledi?

Bazen birçok güvenlik değişikliğiyle baş etmek zor oluyor ama onları anlıyorum. Yanılmıyorsam Android artık Windows'tan daha yaygın kullanılıyor, bu da onu hedef haline getiriyor. Kötü insanlar Android kullanıcılarını sömürmek için ellerinden gelen her şeyi kullanacaklar.

Sistem bölümünde değişiklik yapılmasını önlemek, bir cihazın bütünlüğünü korumanın anahtarıdır. HTC'nin 2012 veya 2013'te bunu yapmaya başladığını ve bunun dünyanın sonu gibi göründüğünü hatırlıyorum. O zamanlar kök için /system'e yazmak, build.prop'u düzenlemek, ayrıcalıklı uygulamaları yüklemek, bloatware'i kaldırmak ve neredeyse tüm popüler modlar için gerekliydi. O zamanki özelleştirmelerin çoğu, çerçevenin deodexlenmesi ve değiştirilmesi gibi şeyleri içeriyordu. Uzun bir süre boyunca HTC'de herhangi bir çekirdek kaynağı yoktu, bu yüzden stok çekirdekte sistem yazma korumasını devre dışı bırakmak için bir çekirdek modülü yaptım ve bu sayede ilk kez bir geliştirici olarak tanındım. Ancak zamanla, doğruluk gibi korumalar Android'in standart bir parçası haline geldikçe, yenilikçiliği ve daha iyiyi zorunlu kıldı. Chainfire'ın sistemsiz kökü gibi çözümler ve artık her türlü şeyi yapan Magisk var sistemsiz olarak.

Bir diğer büyük sorun ise tonlarca uygulamanın çalışmasının durmasına neden olan SELinux'tur. Birçok kullanıcı bundan nefret ediyordu ve bugüne kadar SELinux'u izin verilen modda çalıştıran insanlar var ki bu çok kötü bir fikir. SELinux'un Android'in en önemli güvenlik özelliği olduğunu söyleyebilirim. SELinux'un önemine örnek vermek gerekirse Pixel XL'i ilk aldığımda root yoktu ama Dirty Cow istismarı haber yapıyordu. Kök gerektiren sysfs dosyalarını aramak veya değiştirmek anlamına gelen çekirdek geliştirmeye başlamaya hevesliydim. Dirty Cow kavram kanıtlarından birini derledim ve komutları root olarak çalıştırabildim, ancak SELinux ilginç bir şey yapmamı engelledi. SELinux'u izin verilen hale getirmek için boot.img dosyasını değiştirmek zorunda kaldım. Çekirdeği değiştirmeden tam erişime sahip olabilirdim ama bu çok, çok saatler sürecekti. Bütün bunları söylemek gerekirse, SELinux'un uygulanmasını bırakın, kötü amaçlı yazılımlara karşı ana savunma hattıdır. Gerektiğinde belirli politikaları değiştirmek için sepolicy-inject'i kullanmayı öğrenin.

Nougat ortaya çıktığında, başlangıçta /sys ve /proc'un neredeyse tamamı kullanıcı uygulamaları için görünmez hale geldi. Değişiklik yapmak için root her zaman gerekli olmuştur, ancak birdenbire sadece /sys ve /proc'u okumak için root gerekli oldu. Bu dosya sistemlerinde kesinlikle bir aygıtı istismar etmek için kullanılabilecek bilgiler vardır, bu nedenle kısıtlamalar eklemek gerekliydi. Ancak kullanıcıların görebilmesi gereken birçok bilgi de var. Geçerli giriş/çıkış planlayıcısını, GPU frekansını veya panel donanımı türünü görmek için neden root gerekli olsun? Bununla başa çıkabilmek için DevCheck'te birçok değişiklik yapmak zorunda kaldım ve birçok kullanıcının Nougat'a güncelleme yaptıktan sonra bilgilerin neden artık mevcut olmadığı konusunda kafası karışmıştı. Sonunda sysfs yollarındaki bazı kısıtlamalar kaldırıldı.

Bunun dışında, uygulama geliştirme açısından bakıldığında, beni uygulamalarımda birçok değişiklik yapmaya zorlasalar da, Android'de yapılan API değişikliklerinin çoğunu seviyorum. Bu değişiklikler genellikle daha iyiye doğru olur.


Bu Röportajın 2. Bölümüne göz atın!