Mēs intervējam flar2, ElementalX kodola izstrādātāju un iedziļināmies tādās tēmās kā viņa personīgā dzīve, izstrādes darbs un daudz kas cits.
Nesen man izdevās intervēt flar2, cilvēku, kurš ir aiz slavenā ElementalX kodola, un viņa vēl populārāko ElementalX kodola pārvaldnieka lietojumprogrammu. Viņš ir izlaidis sava kodola versiju plašam ierīču klāstam, tostarp OnePlus un Nexus ierīcēm.
Šajā daļā vaicājam par flar2 domām par Android veiktspējas vājajām vietām un vairāk par viņa personīgo dzīvi! Jūs varat pārbaudīt šīs intervijas 2. daļa šeit.
Sveiks! Vispirms iepazīstieties ar sevi, pirms mēs ķeramies pie jautājumiem.
Mani sauc Ārons Segaerts, pazīstams arī kā flar2. Lielākā daļa cilvēku mani pazīst kā ElementalX kodola izstrādātāju. Man ir arī dažas lietotnes.
Vai jums iepriekš bija pieredze ar datoriem un to izstrādi? Piemēram, datorzinātņu grāds vai kaut kas cits?
Ar datoriem sāku nodarboties, kad biju ļoti maza. Mans pirmais dators bija Texas Instruments TI-99/4A. Es iemācījos kodēt BASIC un saglabāju savas programmas uz kasetes (jā, esmu vecs). Tad mūsu ģimene nopirka 286 IBM klonu, un es tajā brīdī atteicos no kodēšanas, jo tas bija agrāk internets bija plaši pazīstams, un man nebija nekādu resursu un pat nepazīstu nevienu citu, kam būtu a dators. Es sāku datorzinātnes universitātē, bet pirmajā kursā izkritu. Es nekad īsti negāju uz nodarbībām, jo biju pārāk aizņemts, lai izklaidētos un spēlētu koncertus kopā ar savu grupu. Vēlāk atgriezos skolā un ieguvu doktora grādu socioloģijā. Studenta laikā es sāku interesēties par Linux un atvērto pirmkodu, taču nekad neiedziļinājos ar nopietnu programmēšanu. Šur un tur es pievienoju nelielus fragmentus, bet galvenokārt tikai izveidoju skriptus un nelielas programmas saviem mērķiem. Es, iespējams, uzbūvēju savu pirmo Linux kodolu ap 2002. gadu. Tajā laikā es nerakstīju savu kodu, tikai eksperimentēju ar dažādiem ielāpiem un veidošanas iespējām, lai uzlabotu veiktspēju. Es vairāk nodarbojos ar datoru veidošanu, pārspīlēšanu un vispārēju mēģinājumu likt aparatūrai darīt lietas, kas tai nebija jādara.
Vai jūs interesē kāda cita attīstība, izņemot Android lietotņu izstrādi un kodola izstrādi?
Nav īsti, esmu atradis labus rīkus, kas ir pieejami gandrīz visam, kas man bija jādara datorā. Iemesls, kāpēc es sāku strādāt pie kodoliem un lietotnēm operētājsistēmai Android, ir tāpēc, ka es jutu, ka ir nepieciešamas noteiktas funkcijas un iespējas uzlabot esošos rīkus. Piemēram, es izveidoju Button Mapper, jo vēlējos, lai Samsung tālruņu sākuma taustiņš darītu vairāk, un man nepatika apgrieztie taustiņi atpakaļ un nesenie taustiņi. Es izveidoju DevCheck, jo citas sistēmas informācijas lietotnes nerādīja informāciju, ko vēlējos redzēt skaidri un kodolīgi. ElementalX kodols pievieno jaunas aparatūras funkcijas, un EX Kernel Manager kontrolē šīs funkcijas un pievieno dažus rīkus, ko izmantoju, lai atvieglotu izstrādi. Man patīk risināt problēmas, un tas ir jautrs izaicinājums mainīt lietas vai pievienot tālrunim jaunas aparatūras funkcijas.
Kā jūs saskārāties ar Android izstrādi, īpaši kodola izstrādi?
Es vienmēr ienīdu mobilos tālruņus un ilgu laiku tiem pretojos. Mana sieva un es dalījāmies ar vienkāršu pārslēdzamu tālruni ar minimālu plānu, kas galvenokārt tika izmantots ārkārtas situācijām. 2012. gadā mūsu mājās izcēlās ugunsgrēks, un mēs bijām ārā gandrīz trīs mēnešus. Visi mūsu komunālie pakalpojumi tika pārtraukti, un mēs nolēmām vairs nepieslēgt savu fiksēto tālruni, tāpēc mēs ieguvām viedtālruni, kas, manuprāt, bija LG P-kaut kas. Es sapratu, ka tas ir kā minidators, un nolēmu, ka man vajag savu mini datoru, tāpēc nopirku HTC One V.
Tā kā es pārdomāju un modificēju gandrīz visu, es uzreiz atklāju XDA un atklāju, ka Android tālruņos ne tikai darbojas Linux, bet arī tos var pārspīlēt. Es jau ilgu laiku esmu Linux lietotājs, tāpēc es dakšu vienu no kodoliem un biju āķis. Es drīz iegādājos lētu Acer planšetdatoru un sāku sajaukt ar šo aparatūru un kodolu, jo gribēju, lai tam būtu USB OTG. Izrādās, ka aparatūra nebija spējīga, taču tā es sāku uzzināt vairāk par mobilo aparatūru. Es nekad publiski neizlaidu kodolu LG, Acer planšetdatoriem vai One V, bet katram izveidoju savus kodolus un instalēju pielāgotus ROM, kas tajos laikos bija nepieciešami, jo Android vēl nebija nobriedis.
Es drīz pāraugu One V un nomainīju pret HTC One XL, un tad arī piedzima ElementalX.
Kāds bija ElementalX mērķis sākotnēji, un kā tas ir mainījies pēdējos gados?
ElementalX mērķis vienmēr ir bijis pievienot noderīgas aparatūras funkcijas, neapdraudot stabilitāti vai veiktspēju, un izlaist kaut ko tādu, no kā cilvēki var tikai strādāt. Es vienmēr izvirzu stabilitāti pirmajā vietā, jo man ir nepieciešams, lai tālrunis būtu uzticams. Nekādu nejaušu atsāknēšanu vai tādu lietu kā kamera nedarbojas. Filozofija gadu gaitā ir palikusi nemainīga. Es visu saglabāju vienkāršu un pievienoju aparatūras līdzekļus, kas man šķiet noderīgi. Tādas lietas kā modināšanas žesti, augsta spilgtuma režīms, vibrācijas regulēšana, skaņas vadība, vairāku failu sistēmu atbalsts, kursorsviras utt.
Es smagi strādāju, lai mani kodoli būtu atjaunināti, viegli instalējami un pēc iespējas plašāk saderīgi. Daži lietotāji ir vīlušies, ka es nepievienoju daudz ielāpu no CAF vai iepriekšējās Linux, taču mans galvenais mērķis ir nodrošināt ļoti stabilu produktu bez dīvainām problēmām. Daudzi no maniem lietotājiem nav cilvēki, kas daudz publicē XDA, viņi ir pieredzējuši lietotāji, kuriem ir apmierinātas īpašas vajadzības ko izmanto pielāgots kodols, vai cilvēki, kuriem laiku pa laikam patīk padomāt ar savu aparatūru, bet kuri nav stingrāki flashaholiķi. Es vēlos, lai cilvēki, kuri neseko visiem jaunākajiem Android jauninājumiem, varētu bez problēmām izmantot ElementalX.
Ir daudz citu kodolu, kas eksperimentē ar augšupvērstiem ielāpiem. Programmā ElementalX es izmantoju rūpīgi atlasītu ielāpu un optimizāciju komplektu. Savā karjerā ārpus Android es mēru lietas, kuras ir grūti izmērīt, un izmantoju pierādījumus, lai izveidotu politiku un sniegtu padomus. Es piemēroju tos pašus principus kodola izstrādei un parasti neizmantoju ielāpus, ja vien nav izmērāma ieguvuma. Tā piemērs ir akumulatora monitors programmā EX Kernel Manager. Tas piedāvā veidu, kā objektīvi izmērīt akumulatora uzlabojumu un kodola izmaiņu ietekmi. DevCheck peldošie monitori ir vēl viens rīks, ko izmantoju izstrādei, galvenokārt CPU uzraudzībai frekvences un temperatūras dažādos lietošanas gadījumos, piemēram, spēlējot vai skatoties video vai tīmekli pārlūkošanu.
Kā pēdējos gados veiktās Android izmaiņas ir ietekmējušas jūsu darbu?
Dažreiz ir grūti tikt galā ar daudzajām drošības izmaiņām, bet es tās saprotu. Ja nemaldos, Android tagad tiek izmantots plašāk nekā Windows, kas padara to par mērķi. Slikti cilvēki izmantos visus iespējamos leņķus, lai izmantotu Android lietotājus.
Sistēmas nodalījuma modifikāciju novēršana acīmredzami ir galvenais, lai aizsargātu ierīces integritāti. Es atceros, kad HTC sāka to darīt 2012. vai 2013. gadā, un tas likās kā pasaules gals. Tolaik bija nepieciešams rakstīt uz /system, lai piekļūtu saknei, rediģētu build.prop, instalētu priviliģētas programmas, noņemtu bloatware un praktiski visas populārās modifikācijas. Daudzi pielāgojumi tajā laikā ietvēra tādas lietas kā deodeksēšana un ietvara modificēšana. Ilgu laiku no HTC nebija pieejams neviens kodola avots, tāpēc es izveidoju kodola moduli, lai atspējotu sistēmas rakstīšanas aizsardzību krājuma kodolā, par ko es pirmo reizi kļuvu plaši pazīstams kā izstrādātājs. Taču laika gaitā, kad tādi aizsardzības līdzekļi kā patiesums kļuva par Android standarta sastāvdaļu, tas lika ieviest jauninājumus un uzlabot risinājumi, piemēram, Chainfire bezsistēmu sakne, un tagad ir Magisk, kas dara visu veidu lietas bezsistēmiski.
Vēl viens liels ir SELinux, kura dēļ daudzas lietotnes pārtrauca darboties. Daudzi lietotāji to ienīda, un joprojām ir cilvēki, kas darbojas ar SELinux atļaujā, kas ir ļoti slikta ideja. Es teiktu, ka SELinux ir vienīgais vissvarīgākais Android drošības līdzeklis. Lai sniegtu piemēru par SELinux svarīgumu, kad es pirmo reizi iegādājos Pixel XL, nebija pieejama neviena sakne, bet netīrās govs izmantoja jaunumus. Es ļoti vēlējos sākt kodola izstrādi, kas nozīmē sysfs failu meklēšanu vai modificēšanu, kam nepieciešama root. Es apkopoju vienu no Dirty Cow proof-of-concepts un varēju palaist komandas kā root, bet SELinux neļāva man darīt kaut ko interesantu. Man bija jāmaina fails boot.img, lai SELinux būtu pieļaujams. Es varētu būt sasniedzis pilnu piekļuvi, nepārveidojot kodolu, bet tas būtu prasījis daudzas, daudzas stundas. To visu sakot, atstājiet SELinux izpildi, tā ir galvenā aizsardzības līnija pret ļaunprātīgu programmatūru. Uzziniet, kā izmantot sepolicy-inject, lai pēc vajadzības mainītu noteiktas politikas.
Kad parādījās Nougat, sākotnēji gandrīz visi /sys un /proc kļuva neredzami lietotāju lietotnēm. Sakne vienmēr ir bijusi nepieciešama, lai veiktu izmaiņas, bet pēkšņi sakne bija nepieciešama, lai vienkārši nolasītu /sys un /proc. Tajās failu sistēmās noteikti ir informācija, ko var izmantot kādas ierīces ekspluatācijai, tāpēc bija nepieciešams pievienot ierobežojumus. Taču ir arī daudz informācijas, ko lietotājiem vajadzētu redzēt. Kāpēc ir jāpieprasa root, lai redzētu pašreizējo i/o plānotāju vai GPU frekvenci, vai paneļa aparatūras veidu? Man bija jāveic daudzas izmaiņas DevCheck, lai to risinātu, un daudzi lietotāji bija neizpratnē par to, kāpēc informācija pēc atjaunināšanas uz Nougat vairs nebija pieejama. Galu galā daži no sysfs ceļu ierobežojumiem tika atcelti.
Izņemot to, no lietotņu izstrādes viedokļa man patīk lielākā daļa API izmaiņu operētājsistēmā Android, lai gan tās liek man veikt daudzas izmaiņas savās lietotnēs. Šīs izmaiņas parasti ir uz labu.
Apskatiet šīs intervijas 2. daļu!