Rozhovor s Flar2, vývojárom ElementalX Kernel Part 1

click fraud protection

Robíme rozhovory s flarom2, vývojárom jadra ElementalX a ponoríme sa do tém, ako je jeho osobný život, vývojová práca a ďalšie.

Nedávno som urobil rozhovor s flarom2, mužom, ktorý stojí za slávnym jadrom ElementalX a jeho ešte populárnejšou aplikáciou ElementalX Kernel Manager. Vydal verziu svojho jadra pre širokú škálu zariadení, vrátane OnePlus a zariadenia Nexus.

V tejto časti sa pýtame na myšlienky flar2 o prekážkach výkonu Androidu a viac o jeho osobnom živote! Môžete sa odhlásiť 2 časť tohto rozhovoru tu.


Hej ty tam! Najprv sa predstavte, kým sa pustíme do otázok.

Volám sa Aaron Segaert, tiež známy ako flar2. Väčšina ľudí ma pozná ako vývojára jadra ElementalX. Mám aj zopár aplikácií.

Mali ste predtým nejaké skúsenosti s počítačmi a vývojom? Napríklad titul z informatiky alebo čo?

S počítačmi som začal, keď som bol veľmi mladý. Môj prvý počítač bol Texas Instruments TI-99/4A. Naučil som sa kódovať v BASICu a uložil som si programy na kazetu (áno, som starý). Potom si naša rodina kúpila klon IBM 286 a ja som v tom momente prestal kódovať, pretože to bolo predtým Internet bol všeobecne známy a ja som nemal žiadne zdroje a dokonca ani nepoznám nikoho iného, ​​kto mal a počítač. S informatikou som začal na univerzite, ale v prvom ročníku som z toho vypadol. Nikdy som nechodil do triedy, pretože som bol príliš zaneprázdnený zábavou a hraním koncertov s mojou kapelou. Neskôr som sa vrátil do školy a získal som doktorát zo sociológie. Počas môjho štúdia som sa začal zaujímať o Linux a open source, ale nikdy som sa nedostal k vážnejšiemu programovaniu. Sem-tam som prispel drobnými kúskami, ale väčšinou som len tvoril skripty a malé programy pre svoje vlastné účely. Svoje prvé jadro Linuxu som postavil pravdepodobne okolo roku 2002. V tom čase som nepísal svoj vlastný kód, iba som experimentoval s rôznymi záplatami a možnosťami zostavovania na zvýšenie výkonu. Viac som sa venoval stavaniu počítačov, pretaktovaniu a všeobecne som sa snažil, aby hardvér robil veci, ktoré nemal.

Zaujal vás iný vývoj ako vývoj aplikácií pre Android a vývoj jadra?

Nie naozaj, našiel som dobré nástroje dostupné takmer na všetko, čo som potreboval robiť na počítačoch. Dôvod, prečo som začal pracovať na jadrách a aplikáciách pre Android, je ten, že som cítil potrebu určitých funkcií a priestoru na zlepšenie existujúcich nástrojov. Napríklad som vytvoril Button Mapper, pretože som chcel, aby tlačidlo Domov na telefónoch Samsung dokázalo viac, a nepáčilo sa mi prevrátené tlačidlo späť a posledné. Urobil som DevCheck, pretože iné aplikácie s informáciami o systéme nezobrazovali informácie, ktoré som chcel vidieť, jasným a stručným spôsobom. Kernel ElementalX pridáva nové hardvérové ​​funkcie a EX Kernel Manager riadi tieto funkcie a pridáva niektoré nástroje, ktoré používam na uľahčenie vývoja. Rád riešim problémy a je to zábavná výzva spätne analyzovať veci alebo pridávať nové hardvérové ​​funkcie do telefónu.

Ako ste sa dostali do kontaktu s vývojom Androidu, konkrétne s vývojom jadra?

Mobily som vždy nenávidel a dlho som im odolával. S manželkou sme zdieľali základný vyklápací telefón s minimálnym plánom, ktorý sa používal hlavne v prípade núdze. V roku 2012 sme mali doma požiar a boli sme vonku takmer tri mesiace. Všetky naše služby boli prerušené a rozhodli sme sa nepripájať našu pevnú linku, takže sme dostali smartfón, ktorý bol podľa mňa LG P-niečo. Uvedomil som si, že je to ako mini-počítač a rozhodol som sa, že potrebujem vlastný mini-počítač, a tak som si kúpil HTC One V.

Keďže som finišoval a upravoval takmer všetko, okamžite som objavil XDA a zistil som, že nielen telefóny s Androidom bežia na Linuxe, ale dajú sa aj pretaktovať. Bol som používateľom Linuxu už dlho, tak som rozdvojil jedno z jadier a bol som závislý. Čoskoro som dostal lacný tablet Acer a začal som sa motať s tým hardvérom a jadrom, pretože som chcel, aby mal USB OTG. Ukázalo sa, že hardvér nebol schopný, ale tak som sa začal učiť viac o mobilnom hardvéri. Nikdy som verejne nevydal jadro pre LG, tablet Acer alebo One V, ale vytvoril som si vlastné jadrá pre každý a nainštaloval som si vlastné ROM, ktoré boli v tých časoch potrebné, pretože Android ešte nebol zrelý.

Čoskoro som prerástol One V a vymenil som za HTC One XL a vtedy sa zrodil ElementalX.

Aký bol pôvodne cieľ ElementalX a ako sa to zmenilo v posledných rokoch?

Cieľom ElementalX bolo vždy pridať užitočné hardvérové ​​funkcie bez kompromisov v stabilite alebo výkone a vydať niečo, na čo sa ľudia môžu spoľahnúť. Vždy kladiem stabilitu na prvé miesto, pretože potrebujem, aby bol môj telefón spoľahlivý. Žiadne náhodné reštarty alebo veci ako nefunguje fotoaparát. Filozofia zostala v priebehu rokov rovnaká. Robím veci jednoducho a pridávam hardvérové ​​funkcie, ktoré považujem za užitočné. Veci ako gestá prebudenia, režim vysokého jasu, nastavenie vibrácií, ovládanie zvuku, podpora viacerých súborových systémov, joysticky atď.

Tvrdo pracujem na tom, aby moje jadrá boli aktuálne, ľahko inštalovateľné a čo najširšie kompatibilné. Niektorí používatelia sú sklamaní, že nepridávam veľa záplat z CAF alebo upstream Linuxu, ale mojím hlavným cieľom je dodať veľmi stabilný produkt bez zvláštnych problémov. Mnohí z mojich používateľov nie sú ľudia, ktorí veľa uverejňujú na XDA, sú to pokročilí používatelia, ktorí majú uspokojenú konkrétnu potrebu od vlastného jadra alebo ľudí, ktorí si občas radi pohrávajú s hardvérom, ale nie sú hardcore flashaholici. Chcem, aby ľudia, ktorí nesledujú najnovší vývoj Androidu, mohli bez problémov používať ElementalX.

Existuje množstvo iných jadier, ktoré experimentujú s upstream záplatami. V ElementalX používam starostlivo vybranú sadu záplat a optimalizácií. Vo svojej kariére mimo Androidu meriam veci, ktoré sa ťažko merajú, a používam dôkazy na vytváranie pravidiel a poskytovanie rád. Aplikujem rovnaké princípy na vývoj jadra a vo všeobecnosti nepoužívam záplaty, pokiaľ z toho nie je merateľný prínos. Monitor batérie v EX Kernel Manager je toho príkladom. Ponúka spôsob, ako objektívne zmerať efekt vylepšenia batérie a zmien jadra. Plávajúce monitory v DevChecku sú ďalším nástrojom, ktorý používam na vývoj, väčšinou na monitorovanie CPU frekvencie a teploty počas rôznych prípadov použitia, ako je hranie hier alebo sledovanie videí alebo webu prehliadanie.

Ako ovplyvnili zmeny Androidu za posledných pár rokov vašu prácu?

Niekedy je ťažké vyrovnať sa s množstvom bezpečnostných zmien, ale chápem ich. Ak sa nemýlim, Android je teraz rozšírenejší ako Windows, čo z neho robí terč. Zlí ľudia využijú akýkoľvek uhol na to, aby využili používateľov Androidu.

Zabránenie úprave systémového oddielu je samozrejme kľúčom k ochrane integrity zariadenia. Pamätám si, keď to HTC začalo robiť v roku 2012 alebo 2013 a zdalo sa to ako koniec sveta. V tom čase bolo potrebné zapisovanie do /system pre root, úpravu build.prop, inštaláciu privilegovaných aplikácií, odstraňovanie bloatware a prakticky každý populárny mod. Mnohé z úprav v tom čase zahŕňali veci ako deodexovanie a úprava rámca. Dlho nebol k dispozícii žiadny zdroj jadra od HTC, a tak som vytvoril modul jadra na deaktiváciu ochrany proti zápisu systému v základnom jadre, pre ktorý som sa prvýkrát stal známym ako vývojár. Postupom času, keď sa ochrany, ako je vernosť, stali štandardnou súčasťou Androidu, si vynútili inovácie a lepšie riešenia, ako je bezsystémový koreň Chainfire a teraz je tu Magisk, ktorý robí všetky druhy vecí bezsystémovo-ly.

Ďalším veľkým je SELinux, ktorý spôsobil, že veľa aplikácií prestalo fungovať. Mnoho používateľov to nenávidelo a dodnes existujú ľudia, ktorí bežia so SELinuxom v permisívnom režime, čo je veľmi zlý nápad. Povedal by som, že SELinux je najdôležitejšou bezpečnostnou funkciou systému Android. Aby som uviedol príklad dôležitosti SELinuxu, keď som prvýkrát dostal Pixel XL, nebol k dispozícii žiadny root, ale exploit Dirty Cow prinášal novinky. Dychtivo som chcel začať s vývojom jadra, čo znamená prehľadávať alebo upravovať súbory sysfs, čo vyžaduje root. Skompiloval som jeden z proof-of-conceptov Dirty Cow a bol som schopný spúšťať príkazy ako root, ale SELinux mi zabránil urobiť čokoľvek zaujímavé. Musel som upraviť boot.img, aby bol SELinux povolený. Mohol by som dosiahnuť úplný prístup bez úpravy jadra, ale trvalo by to veľa, veľa hodín. To všetko povedať, nechajte SELinux vynucovanie, je to hlavná línia obrany proti malvéru. Naučte sa používať sepolicy-inject na zmenu konkrétnych politík podľa potreby.

Keď prišiel Nougat, spočiatku sa takmer všetky /sys a /proc stali neviditeľnými pre používateľské aplikácie. Root bol vždy potrebný na vykonanie zmien, ale zrazu bolo potrebné root jednoducho na čítanie /sys a /proc. V týchto súborových systémoch sú určite informácie, ktoré je možné použiť na zneužitie zariadenia, takže bolo potrebné pridať obmedzenia. Existuje však aj množstvo informácií, ktoré by používatelia mali mať možnosť vidieť. Prečo by mal byť root povinný vidieť aktuálny plánovač vstupov/výstupov, frekvenciu GPU alebo typ hardvéru panela? Musel som urobiť veľa zmien v DevCheck, aby som sa s tým vyrovnal, a veľa používateľov bolo zmätených, prečo po aktualizácii na Nougat už nie sú dostupné informácie. Nakoniec boli niektoré obmedzenia týkajúce sa ciest sysfs zrušené.

Okrem toho sa mi z hľadiska vývoja aplikácií páči väčšina zmien API v systéme Android, aj keď ma nútia robiť veľa zmien v mojich aplikáciách. Tieto zmeny sú zvyčajne k lepšiemu.


Pozrite si 2. časť tohto rozhovoru!