Haastattelu Flar2:n, ElementalX-ytimen osan 1 kehittäjän kanssa

Haastattelemme flar2:ta, ElementalX-ytimen kehittäjää ja perehdymme hänen henkilökohtaiseen elämäänsä, kehitystyöhönsä ja muihin aiheisiin.

Sain äskettäin haastatella flar2:ta, kuuluisan ElementalX-ytimen takana olevaa miestä ja hänen vielä suositumpaa ElementalX Kernel Manager -sovellustaan. Hän on julkaissut ytimensä version useille laitteille, mukaan lukien OnePlus ja Nexus-laitteet.

Tässä osassa kysymme flar2:n ajatuksista Android-suorituskyvyn pullonkauloista ja lisää hänen henkilökohtaisesta elämästään! Voit tarkistaa tämän haastattelun osa 2 täällä.


Hei siellä! Esittele itsesi ensin ennen kuin alamme kysymyksiin.

Nimeni on Aaron Segaert, joka tunnetaan myös nimellä flar2. Useimmat ihmiset tuntevat minut ElementalX-ytimen kehittäjänä. Minulla on myös muutama sovellus.

Onko sinulla kokemusta tietokoneista ja niiden kehittämisestä etukäteen? Kuten tietojenkäsittelytieteen tutkinto tai jotain?

Aloitin tietokoneen käytön nuorena. Ensimmäinen tietokoneeni oli Texas Instruments TI-99/4A. Opin koodaamaan BASICissa ja tallensin ohjelmani kasetille (kyllä, olen vanha). Sitten perheemme osti 286 IBM-kloonin, ja minä pääsin eroon koodaamisesta siinä vaiheessa, koska tämä oli ennen Internet tunnettiin laajalti, eikä minulla ollut resursseja tai edes tiedä ketään muuta, jolla oli a tietokone. Aloitin tietojenkäsittelytieteen yliopistossa, mutta putosin ensimmäisenä vuonna. En koskaan mennyt tunnille, koska olin liian kiireinen pitämään hauskaa ja soittamaan keikkoja bändini kanssa. Myöhemmin palasin kouluun ja valmistuin tohtoriksi sosiologiasta. Opiskeluaikanani kiinnostuin Linuxista ja avoimesta lähdekoodista, mutta en koskaan päässyt vakavaan ohjelmointiin. Tein pieniä osia siellä täällä, mutta enimmäkseen tein vain skriptejä ja pieniä ohjelmia omiin tarkoituksiini. Rakensin luultavasti ensimmäisen Linux-ytimeni vuonna 2002. Tuolloin en kirjoittanut omaa koodiani, vaan kokeilin vain erilaisia ​​korjaustiedostoja ja rakennusvaihtoehtoja suorituskyvyn parantamiseksi. Pidin enemmän tietokoneiden rakentamisesta, ylikellotuksesta ja yleensä siitä, että yritin saada laitteiston tekemään asioita, joita sen ei pitänyt tehdä.

Onko jokin muu kehitys Android-sovelluskehitys ja ydinkehitys kiinnostanut sinua?

Ei oikeastaan, olen löytänyt hyviä työkaluja lähes kaikkeen, mitä olen tarvinnut tehdä tietokoneilla. Syy, miksi aloin työskennellä ytimien ja Android-sovellusten parissa, on se, että tunsin, että olemassa olevissa työkaluissa oli tarvetta tietyille ominaisuuksille ja parantamisen varalle. Tein esimerkiksi Button Mapperin, koska halusin Samsung-puhelimien kotinäppäimen toimivan enemmän, enkä pitänyt käänteisistä takaisin- ja viime näppäimistä. Tein DevCheckin, koska muut järjestelmätietosovellukset eivät näyttäneet haluamiani tietoja selkeästi ja ytimekkäästi. ElementalX-ydin lisää uusia laitteisto-ominaisuuksia ja EX Kernel Manager hallitsee näitä ominaisuuksia ja lisää joitain työkaluja, joita käytän kehitystyön helpottamiseksi. Tykkään ratkaista ongelmia ja on hauska haaste käännellä asioita tai lisätä puhelimeen uusia laitteisto-ominaisuuksia.

Miten tutustuit Android-kehitykseen, erityisesti ytimen kehittämiseen?

Vihasin aina matkapuhelimia ja vastustin niitä pitkään. Vaimoni ja minä jaoimme tavallisen läppäpuhelimen, jolla oli minimaalinen suunnitelma, jota käytettiin pääasiassa hätätilanteissa. Vuonna 2012 meillä oli tulipalo kotonamme ja olimme poissa melkein kolme kuukautta. Kaikki apuohjelmamme katkesivat, ja päätimme olla yhdistämättä lankapuhelintamme uudelleen, joten saimme älypuhelimen, joka oli mielestäni LG P-jotain. Tajusin, että se oli kuin minitietokone, ja päätin, että tarvitsen oman minitietokoneen, joten ostin HTC One V: n.

Koska kehitän ja muokkaan melkein kaikkea, huomasin heti XDA: n ja huomasin, että Android-puhelimet eivät pelkästään käytti Linuxia, vaan niitä voitiin ylikellottaa. Olen ollut Linux-käyttäjä pitkään, joten haaroitin yhden ytimistä ja jäin koukkuun. Pian hankin halvan Acer-tabletin ja aloin sekaisin sen laitteiston ja ytimen kanssa, koska halusin, että siinä on USB OTG. Kävi ilmi, että laitteisto ei toiminut, mutta näin aloin oppia lisää mobiililaitteistosta. En koskaan julkaissut julkisesti ydintä LG: lle, Acer-tabletille tai One V: lle, vaan rakensin kullekin omat ytimet ja asensin mukautettuja ROM-levyjä, jotka olivat tarpeen siihen aikaan, koska Android ei ollut vielä kypsä.

Kasvoin pian One V: stä ja vaihdoin HTC One XL: n, ja silloin ElementalX syntyi.

Mikä oli ElementalX: n tavoite alun perin, ja miten se on muuttunut viime vuosina?

ElementalX: n tavoitteena on aina ollut lisätä hyödyllisiä laitteisto-ominaisuuksia tinkimättä vakaudesta tai suorituskyvystä ja julkaista jotain, jonka tekemiseen ihmiset voivat luottaa. Asetan aina vakauden etusijalle, koska tarvitsen puhelimeni olevan luotettava. Ei satunnaisia ​​uudelleenkäynnistyksiä tai asioita, kuten kamera ei toimi. Filosofia on pysynyt samana vuosien saatossa. Pidän asiat yksinkertaisina ja lisään hyödyllisiksi katsomiani laitteistoominaisuuksia. Asiat, kuten herätyseleet, korkea kirkkaustila, tärinän säätö, äänenhallinta, tuki useille tiedostojärjestelmille, ohjaussauvat jne.

Työskentelen kovasti pitääkseni ytimeni ajan tasalla, helppo asentaa ja mahdollisimman laajalti yhteensopivia. Jotkut käyttäjät ovat pettyneitä siihen, että en lisää paljon korjauksia CAF: stä tai ylävirran Linuxista, mutta päätavoitteeni on toimittaa erittäin vakaa tuote ilman outoja ongelmia. Monet käyttäjistäni eivät ole ihmisiä, jotka julkaisevat paljon XDA: ssa, he ovat tehokäyttäjiä, joilla on tietty tarve tyydytetty mukautetun ytimen tai ihmiset, jotka pitävät toisinaan puuhailla laitteistonsa kanssa, mutta eivät ole vakavia flashaholics. Haluan, että ihmiset, jotka eivät seuraa kaikkia uusimpia Android-kehityksiä, voivat käyttää ElementalX: ää ilman ongelmia.

On monia muita ytimiä, jotka kokeilevat alkupään korjaustiedostoja. ElementalX: ssä käytän huolellisesti valittuja korjaustiedostoja ja optimointeja. Urallani Androidin ulkopuolella mittaan asioita, joita on vaikea mitata, ja käytän todisteita politiikan laatimiseen ja neuvojen antamiseen. Käytän samoja periaatteita ytimen kehittämiseen enkä yleensä käytä korjaustiedostoja, ellei siitä ole mitattavissa olevaa hyötyä. EX Kernel Managerin akkumonitori on esimerkki tästä. Se tarjoaa tavan mitata objektiivisesti akun säätöjen ja ytimen muutosten vaikutusta. DevCheckin kelluvat näytöt ovat toinen työkalu, jota käytän kehitykseen, enimmäkseen suorittimen valvontaan taajuuksia ja lämpötiloja eri käyttötilanteissa, kuten pelaamisen tai videoiden tai verkon katselun aikana selaamista.

Miten Androidin viime vuosien muutokset ovat vaikuttaneet työhösi?

Joskus on vaikea käsitellä monia turvallisuusmuutoksia, mutta ymmärrän ne. Jos en erehdy, Androidia käytetään nyt laajemmin kuin Windowsia, mikä tekee siitä kohteen. Pahat ihmiset aikovat käyttää mitä tahansa näkökulmaa käyttääkseen Android-käyttäjiä hyväkseen.

Järjestelmäosion muuttamisen estäminen on luonnollisesti avainasemassa laitteen eheyden suojaamisessa. Muistan, kun HTC aloitti tämän tekemisen vuonna 2012 tai 2013 ja se näytti maailmanlopulta. Siihen aikaan tarvittiin kirjoittamista /systemiin rootille, build.prop: n muokkaamiseen, etuoikeutettujen sovellusten asentamiseen, bloatwaren poistamiseen ja käytännössä kaikkiin suosituimpiin modeihin. Monet tuolloin tehdyt mukautukset sisälsivät muun muassa deodeksoinnin ja kehyksen muokkaamisen. HTC: ltä ei pitkään aikaan ollut saatavilla ydinlähdettä, joten tein ydinmoduulin järjestelmän kirjoitussuojauksen poistamiseksi varastoytimestä, jonka kehittäjänä tulin ensin tunnetuksi. Mutta ajan myötä, kun suojauksista, kuten todellisuus, tuli Androidin vakio-osa, se pakotti innovaatioita ja parempia ratkaisuja, kuten Chainfiren järjestelmätön root, ja nyt on Magisk, joka tekee kaikenlaisia ​​asioita järjestelmätöntä.

Toinen suuri on SELinux, joka aiheutti joukon sovelluksia lakkauttamasta toimimasta. Monet käyttäjät vihasivat sitä ja vielä tänäkin päivänä on ihmisiä, jotka käyttävät SELinuxia sallivassa tilassa, mikä on erittäin huono idea. Sanoisin, että SELinux on Androidin tärkein yksittäinen suojausominaisuus. Antaakseni esimerkin SELinuxin tärkeydestä, kun hankin ensimmäisen kerran Pixel XL: n, pääkäyttäjää ei ollut saatavilla, mutta Dirty Cow -hyökkäys teki uutisia. Olin innokas aloittamaan ytimen kehittämisen, mikä tarkoittaa sysfs-tiedostojen etsimistä tai muokkaamista, mikä vaatii rootin. Käänsin yhden Dirty Cow -käsitteiden todisteista ja pystyin suorittamaan komentoja pääkäyttäjänä, mutta SELinux esti minua tekemästä mitään mielenkiintoista. Minun piti muokata boot.img-tiedostoa tehdäkseni SELinuxin sallivan. Olisin ehkä saavuttanut täyden käyttöoikeuden ilman ydintä muokkaamatta, mutta se olisi kestänyt monta, monta tuntia. Jätä SELinux valvomaan, se on tärkein puolustuslinja haittaohjelmia vastaan. Opi käyttämään sepolicy-injectia muuttaaksesi tiettyjä käytäntöjä tarpeen mukaan.

Kun Nougat tuli käyttöön, lähes kaikki /sys ja /proc muuttuivat näkymättömiksi käyttäjien sovelluksille. Root on aina ollut välttämätön muutosten tekemiseen, mutta yhtäkkiä root tarvittiin yksinkertaisesti lukemaan /sys ja /proc. Niissä tiedostojärjestelmissä on varmasti tietoa, jota voidaan käyttää laitteen hyväksikäyttöön, joten rajoituksia oli tarpeen lisätä. Mutta on myös paljon tietoa, joka käyttäjien pitäisi voida nähdä. Miksi rootin pitäisi vaatia nykyisen i/o-ajastimen tai GPU-taajuuden tai paneelilaitteiston tyypin näkemistä? Minun piti tehdä paljon muutoksia DevCheckiin käsitelläkseni tätä, ja monet käyttäjät olivat ymmällään siitä, miksi tiedot eivät enää olleet saatavilla Nougatiin päivityksen jälkeen. Lopulta osa sysfs-polkujen rajoituksista poistettiin.

Muutoin sovelluskehityksen näkökulmasta pidän useimmista Androidin API-muutoksista, vaikka ne pakottavat minut tekemään paljon muutoksia sovelluksiin. Nämä muutokset ovat yleensä parempaan päin.


Katso tämän haastattelun osa 2!