Interviu su Flar2, ElementalX branduolio 1 dalies kūrėju

Mes apklausiame flar2, ElementalX branduolio kūrėją ir gilinamės į tokias temas kaip jo asmeninis gyvenimas, tobulinimo darbai ir kt.

Neseniai turėjau interviu flar2, garsiojo ElementalX branduolio ir jo dar populiaresnės ElementalX branduolio tvarkyklės programos žmogumi. Jis išleido savo branduolio versiją, skirtą daugeliui įrenginių, įskaitant „OnePlus“. ir „Nexus“ įrenginiuose.

Šioje dalyje klausiame apie „flar2“ mintis apie „Android“ veikimo kliūtis ir daugiau apie jo asmeninį gyvenimą! Galite patikrinti 2 šio interviu dalis čia.


Labas! Prieš pradėdami eiti į klausimus, pirmiausia prisistatykite.

Mano vardas Aaronas Segaertas, taip pat žinomas kaip flar2. Daugelis žmonių mane pažįsta kaip ElementalX branduolio kūrėją. Taip pat turiu keletą programėlių.

Ar turėjote patirties su kompiuteriais ir jų kūrimu? Kaip informatikos laipsnis ar kažkas panašaus?

Aš pradėjau dirbti su kompiuteriais, kai buvau labai jaunas. Mano pirmasis kompiuteris buvo Texas Instruments TI-99/4A. Išmokau koduoti BASIC ir savo programas išsaugojau kasetėje (taip, aš senas). Tada mūsų šeima nusipirko 286 IBM kloną, ir aš tuo metu atsitraukiau nuo kodavimo, nes tai buvo anksčiau Internetas buvo plačiai žinomas ir aš neturėjau jokių išteklių ir net nepažįstu nieko kito, kuris turėjo a kompiuteris. Informatikos mokslus pradėjau universitete, bet pirmame kurse iškritau. Niekada nelankiau pamokų, nes buvau per daug užsiėmęs linksmintis ir koncertuoti su savo grupe. Vėliau grįžau į mokyklą ir įgijau sociologijos daktaro laipsnį. Studijuodamas susidomėjau „Linux“ ir atviruoju šaltiniu, bet taip ir neįsitraukiau į rimtą programavimą. Šen bei ten pridėjau smulkių smulkmenų, bet dažniausiai tiesiog kūriau scenarijus ir mažas programas savo tikslams. Tikriausiai savo pirmąjį „Linux“ branduolį sukūriau maždaug 2002 m. Tuo metu aš nerašiau savo kodo, tik eksperimentavau su įvairiomis pataisomis ir kūrimo parinktimis, kad padidinčiau našumą. Man labiau patiko kompiuterių kūrimas, įsijungimas ir apskritai bandymas priversti aparatinę įrangą daryti tai, ko neturėjo.

Ar jus sudomino bet koks kitas kūrimas, išskyrus „Android“ programų kūrimą ir branduolio kūrimą?

Tikrai ne, radau gerų įrankių beveik viskam, ką man reikėjo padaryti kompiuteriu. Priežastis, dėl kurios pradėjau dirbti su „Android“ skirtais branduoliais ir programomis, yra ta, kad jaučiau, kad reikia tam tikrų funkcijų ir esamų įrankių tobulinimo galimybių. Pavyzdžiui, sukūriau „Button Mapper“, nes norėjau, kad „Samsung“ telefonų namų klavišas veiktų daugiau, o man nepatiko atvirkštiniai atgal ir naujausių klavišų klavišai. Sukūriau „DevCheck“, nes kitos sistemos informacijos programos nerodė informacijos, kurią norėjau matyti aiškiai ir glaustai. „ElementalX“ branduolys prideda naujų aparatinės įrangos funkcijų, o „EX Kernel Manager“ valdo šias funkcijas ir prideda keletą įrankių, kuriuos naudoju, kad palengvinčiau kūrimą. Man patinka spręsti problemas ir tai yra smagus iššūkis apgręžti dalykus arba pridėti naujų aparatinės įrangos funkcijų prie telefono.

Kaip susidūrėte su „Android“ kūrimu, ypač branduolio kūrimu?

Visada nekenčiau mobiliųjų telefonų ir ilgai jiems priešinausi. Su žmona naudojome paprastą atverčiamą telefoną su minimaliu planu, kuris daugiausia buvo naudojamas kritinėms situacijoms. 2012 m. mūsų namuose kilo gaisras ir beveik tris mėnesius buvome lauke. Visos mūsų komunalinės paslaugos buvo nutrauktos, todėl nusprendėme nebejungti fiksuotojo telefono ryšio, todėl gavome išmanųjį telefoną, kuris, manau, buvo LG P. Supratau, kad tai yra kaip mini kompiuteris, ir nusprendžiau, kad man reikia savo mini kompiuterio, todėl nusipirkau HTC One V.

Kadangi apdirbu ir modifikuoju beveik viską, iškart atradau XDA ir sužinojau, kad „Android“ telefonuose veikia ne tik „Linux“, bet ir juos galima perkrauti. Aš ilgą laiką buvau Linux vartotojas, todėl patraukiau vieną iš branduolių ir užkabinau. Netrukus gavau pigų „Acer“ planšetinį kompiuterį ir pradėjau maišytis su ta aparatūra ir branduoliu, nes norėjau, kad jis turėtų USB OTG. Pasirodo, aparatinė įranga nebuvo pajėgi, bet taip pradėjau daugiau sužinoti apie mobiliąją aparatinę įrangą. Niekada viešai neišleidau branduolio LG, Acer planšetiniams kompiuteriams ar One V, bet kiekvienam sukūriau savo branduolius ir įdiegiau pasirinktinius ROM, kurie tais laikais buvo reikalingi, nes Android dar nebuvo subrendęs.

Netrukus išaugau „One V“ ir iškeičiau į „HTC One XL“, tada gimė „ElementalX“.

Koks buvo ElementalX tikslas iš pradžių ir kaip tai pasikeitė pastaraisiais metais?

„ElementalX“ tikslas visada buvo pridėti naudingų aparatinės įrangos funkcijų, nepakenkiant stabilumui ar našumui, ir išleisti tai, nuo ko žmonės gali pasikliauti tiesiog dirbdami. Aš visada pirmenybę teikiu stabilumui, nes man reikia, kad mano telefonas būtų patikimas. Jokių atsitiktinių perkrovimų ar dalykų, tokių kaip fotoaparatas, neveikiantis. Filosofija bėgant metams išliko ta pati. Viską darau paprastai ir pridedu man naudingų techninės įrangos funkcijų. Tokie dalykai kaip pažadinimo gestai, didelio ryškumo režimas, vibracijos reguliavimas, garso valdymas, daugiau failų sistemų palaikymas, vairasvirtės ir kt.

Sunkiai dirbu, kad branduoliai būtų atnaujinami, lengvai įdiegiami ir kuo plačiau suderinami. Kai kurie vartotojai yra nusivylę, kad nepridedu daug pataisų iš CAF ar ankstesnio „Linux“, bet mano pagrindinis tikslas yra pateikti labai stabilų produktą be jokių keistų problemų. Daugelis mano vartotojų nėra žmonės, kurie daug skelbia XDA, jie yra patyrę vartotojai, patenkinę konkretų poreikį naudojant pasirinktinį branduolį arba žmonėms, kurie retkarčiais mėgsta padirbinėti su savo aparatūra, bet nėra užkietėję flashaholikai. Noriu, kad žmonės, kurie neseka visų naujausių „Android“ patobulinimų, galėtų naudoti „ElementalX“ be problemų.

Yra daugybė kitų branduolių, kurie eksperimentuoja su pataisomis. „ElementalX“ naudoju kruopščiai atrinktą pataisų ir optimizacijų rinkinį. Savo karjeroje už „Android“ ribų aš vertinu dalykus, kuriuos sunku išmatuoti, ir naudoju įrodymus, kad sukurčiau politiką ir teikčiau patarimus. Aš taikau tuos pačius principus kurdamas branduolį ir paprastai nenaudoju pataisų, nebent tai būtų išmatuojama nauda. EX Kernel Manager akumuliatoriaus monitorius yra to pavyzdys. Tai yra būdas objektyviai išmatuoti akumuliatoriaus pakeitimų ir branduolio pakeitimų poveikį. „DevCheck“ plūduriuojantys monitoriai yra dar vienas įrankis, kurį naudoju kūrimui, daugiausia procesoriaus stebėjimui dažniai ir temperatūra skirtingais naudojimo atvejais, pavyzdžiui, žaidžiant, žiūrint vaizdo įrašus ar žiniatinklį naršyti.

Kaip per pastaruosius kelerius metus „Android“ pokyčiai paveikė jūsų darbą?

Kartais sunku susidoroti su daugybe saugumo pokyčių, bet aš juos suprantu. Jei neklystu, „Android“ dabar naudojama plačiau nei „Windows“, todėl tai yra tikslas. Blogi žmonės ketina bet kokiu kampu išnaudoti „Android“ vartotojus.

Akivaizdu, kad norint apsaugoti įrenginio vientisumą, būtina užkirsti kelią sistemos skaidinio modifikavimui. Prisimenu, kai HTC pradėjo tai daryti 2012 ar 2013 m. ir atrodė, kad tai pasaulio pabaiga. Tuo metu rašyti į /system reikėjo root, redaguoti build.prop, įdiegti privilegijuotas programas, pašalinti bloatware ir praktiškai kiekvieną populiarų modifikaciją. Daugelis tuo metu atliktų pritaikymų buvo susiję su tokiais dalykais kaip deodeksavimas ir sistemos modifikavimas. Ilgą laiką HTC nebuvo pasiekiamas joks branduolio šaltinis, todėl sukūriau branduolio modulį, kad išjungčiau sistemos rašymo apsaugą atsarginiame branduolyje, dėl kurio pirmą kartą tapau gerai žinomas kaip kūrėjas. Tačiau laikui bėgant, kai tokios apsaugos kaip tikrovė tapo standartine „Android“ dalimi, tai privertė diegti naujoves ir tobulėti sprendimai, tokie kaip „Chainfire“ besistemė šaknis, o dabar yra Magisk, kuris atlieka įvairius dalykus besistemis.

Kitas didelis yra SELinux, dėl kurio nustojo veikti daugybė programų. Daugelis vartotojų to nekentė ir iki šiol yra žmonių, kurie naudoja SELinux leistinuoju režimu, o tai yra labai bloga idėja. Sakyčiau, „SELinux“ yra vienintelė svarbiausia „Android“ saugos funkcija. Pateikdamas SELinux svarbos pavyzdį, kai pirmą kartą gavau „Pixel XL“, šakninės programos nebuvo, tačiau „Dirty Cow“ išnaudojimas skaitė naujienas. Labai norėjau pradėti branduolio kūrimą, o tai reiškia, kad reikia ieškoti arba modifikuoti sysfs failus, kuriems reikia root. Sukūriau vieną iš „Dirty Cow“ sąvokų įrodymo ir galėjau paleisti komandas kaip root, tačiau „SELinux“ neleido man daryti nieko įdomaus. Turėjau modifikuoti boot.img, kad SELinux būtų leistinas. Galbūt būčiau pasiekęs visą prieigą nekeisdamas branduolio, bet tai būtų užtrukę daug, daug valandų. Visa tai pasakyti, palikite SELinux vykdymą, tai yra pagrindinė apsaugos nuo kenkėjiškų programų linija. Išmokite naudoti sepolicy-inject, kad prireikus pakeistumėte konkrečias strategijas.

Kai atsirado „Nuga“, iš pradžių beveik visi /sys ir /proc tapo nematomi vartotojų programoms. Root visada buvo būtina norint atlikti pakeitimus, tačiau staiga root prireikė tiesiog norint perskaityti /sys ir /proc. Tose failų sistemose tikrai yra informacijos, kuria galima išnaudoti įrenginį, todėl reikėjo pridėti apribojimų. Tačiau taip pat yra daug informacijos, kurią vartotojai turėtų matyti. Kodėl turi būti reikalaujama root, kad būtų galima matyti dabartinį įvesties / išvesties planuoklį, GPU dažnį arba skydelio aparatinės įrangos tipą? Turėjau atlikti daug DevCheck pakeitimų, kad tai išspręsčiau, ir daugelis vartotojų buvo sumišę, kodėl atnaujinus į Nougat informacija nebepasiekiama. Galiausiai kai kurie „sysfs“ kelių apribojimai buvo panaikinti.

Išskyrus tai, iš programų kūrimo perspektyvos man patinka dauguma API pakeitimų, skirtų „Android“, nors jie verčia mane atlikti daug programų pakeitimų. Šie pokyčiai dažniausiai būna į gerąją pusę.


Peržiūrėkite 2 šio interviu dalį!