Breaking: Chainfire on tänään julkistanut SuperSU Beta 2.27 -version, joka poistaa tarpeen tehdä ytimen muistilevyn muutoksia, jotta Android 5.0:n pääkäyttäjän oikeuksia voidaan käyttää
Tähän asti, jos halusit saada rootin Android 5.0 -käyttöjärjestelmässä, sinun on täytynyt flash-muisti laitteellesi kiertää joitakin SELinux-rajoituksia. XDA: n vanhempi tunnustettu kehittäjä Ketjutuli äskettäin julkaissut aiemmin välttämättömän CF-Auto-Root paketti, joka teki tarvittavat ytimen ramdisk-muutokset SELinux-rajoituksen poistamiseksi AOSP: n install-recovery.sh-komentosarjasta. Tänä aamuna Chainfire toi kuitenkin hymyn monille kasvoille, kuten hän ilmoitti Twitterissä että tätä ei enää tarvita jatkossa.
Tähän päivään asti Chainfire oli suunnitellut julkaisevansa automaattisen ZIP-pohjaisen korjaustyökalun automaattisesti Korjaa ytimen kuvia TWRP-palauttamisesta, kunnes hän löysi sopivan menetelmän tarpeen poistaa Tämä.
Tämä paljastus tarkoittaa, että Android 5.0 -käyttäjien ei enää tarvitse käyttää muokattua ydintä saadakseen pääkäyttäjän SuperSU: n (tai muiden juuriratkaisujen) kautta. Vaikka se ei ollut suuri ongelma Nexus-laitteissa, joissa on lukitsemattomat käynnistyslataimet, tarve muuttaa muistilevyä oli koskee monia käyttäjiä käynnistyslataimella lukituilla laitteilla, joille ei ole mahdollista avata lukitusta (kyllä, valitettavasti olla olemassa). Vastaus heidän rukouksiinsa on nyt täällä, ja voimme esittää eksklusiivisen selityksen tarvittavista muutoksista. Ainakin toistaiseksi (kunnes/ellei Google korjaa tätä) on mahdollista hankkia pääkäyttäjän oikeudet ja sitten asentaa ja käyttää SuperSU: ta varastossa olevaan Android 5.0 -laitteeseen ilman ytimen ramdisk-säätöä. Syynä tähän on SuperSU: n tarve suorittaa palvelu pääkäyttäjänä, jotta SELinux-suojatuilla laitteilla on rajoittamaton pääsy pääkäyttäjään.
Aikaisemmin SuperSU hyödynsi esiasennettua AOSP: tä flash_recovery palvelu (käytetään AOSP: ssä päivittämään palautus OTA-asennuksen jälkeen) käynnistämään SuperSU-daemonin (joka itse asiassa tarjoaa pääkäyttäjän oikeudet sovelluksille, jotka sitä pyytävät). Lollipopin julkaisun myötä tämä palvelu on lisätty rajoitettuun SELinux-kontekstiin, mikä tarkoittaa, että sillä ei enää ole luvatonta pääsyä järjestelmään. Aiemmat ytimen muutokset pyrkivät poistamaan SELinuxin rajoitukset tästä komentosarjasta.
Chainfiren uusin SuperSU: n beetaversio ratkaisee tämän käyttämällä Zygote-ydinpalvelua (vastaa kaikkien Java-palvelujen ja siten kaikkien laitteeseen asennettujen sovellusten käynnistämisestä). Koska Zygote on yksi ainoista palveluista, jotka ovat saatavilla Android L: ssä, joka käynnistetään pääkäyttäjänä rajoittamattoman "init" SELinux-kontekstin, tämä tekee siitä ensisijaisen kohteen käytettäväksi SuperSU. Käynnistyksen jälkeen Zygote-palvelun SELinuxin "alku"-konteksti siirtyy lopulliseen (rajoitettuun) "Zygote"-kontekstiinsa. Chainfire on onnistunut muokkaamaan Zygote-tiedostoja voidakseen suorittaa koodin pääkäyttäjänä, rajoittamattomassa "alku"-kontekstissa, mikä tuo SuperSU takaisin Android L: lle ilman ydintä muutoksia.
Tämä ei ole ensimmäinen kerta, kun Chainfire kääntyy Zygoten puoleen ratkaistakseen nämä ongelmat; aikaisempi 2.23 beta käytti Zygotea keinona mahdollisesti kiertää joitain muita SELinux-ongelmia (jotka aiheuttivat juurisovellusten rikkoutumisen Android L: ssä). Tämä mahdollisti joidenkin (mutta ei kaikkien) toimimattomien sovellusten toiminnan - loput vaativat joitain päivityksiä kehittäjiltä. Valitettavasti, kun 5.0 AOSP-koodia tutkittiin, kävi ilmi, että Google oli jo rikkonut tämän menetelmän ottaa haltuunsa Zygote-palvelu. Koska kaikki hänen aiemmat yrityksensä hallita Zygotea olivat epäonnistuneet, tämä on lupaava askel eteenpäin.
Chainfire halusi huomauttaa, että SuperSU on pitkään pystynyt muokkaamaan SELinux-käytäntöjä käynnissä olevassa järjestelmässä (ja varoittaa mikä OEM voisi poistaa tämän käytöstä ja todella estää merkityksellisen ja yksinkertaisen pääkäyttäjän pääsyn) ja kuinka Zygoteen tehdyt muutokset on tehtävä huolellisesti, koska palvelua ajetaan useista eri yhteyksistä eri tehtäviin, ja tämä nostaa mahdollisuuden useisiin (ilkeisiin) hienovaraisia epäonnistumisia. Tämä uusi SuperSU beta 2.27 on suunniteltu harrastajille ja muille tekniikan asiantuntijoille, joiden kanssa he voivat leikkiä saadakseen selville, mikä rikkoutuu. Sormet ristissä – ei ole odottamattomia show-stopper-virheitä, ja tämä on varteenotettava tapa edetä.
Huomaa - vaikka tämä beta onnistuisi ja Zygote on ensisijainen tapa hankkia pääkäyttäjän oikeudet, koko prosessi on vain yhden rivin muutos. poissa Googlen rikkomasta, mikä tekisi korjatuista ytimen ramdiskeistä tulevaisuuden pääkäyttäjän käytölle Androidissa (täten sulkee pois root-järjestelmän käynnistyslataimen lukituksesta laitteet). Varoitus: uusi prosessi ei välttämättä edes toimi täysin ajan tasalla olevalla AOSP-versiolla, johtuen melko suuresta SELinuxista. Muutaman viime kuukauden aikana tapahtuneet muutokset, jotka eivät sisältyneet vähittäiskaupan laitteisiin, mutta joita epäilemättä tulee olemaan tulevaisuudessa julkaisut. Ennemmin tai myöhemmin näyttää kuitenkin todennäköiseltä, että muokatut ytimen muistilevyt ovat välttämättömiä pääkäyttäjälle, mutta tämä uusi beta voi tarjota lyhyen suoritusajan, ennen kuin meidän täytyy mennä siihen suuntaan.
Tarkista julkaisutiedot Lisätietoja tämän testaamiseen liittyvistä riskeistä ja linkkejä. Kehittäjien tulee myös olla tietoisia siitä, että Chainfire työskentelee tällä hetkellä kovasti "How-To SU" -opas (täysin päivitetty Android 5.0:lle), jonka pitäisi olla saatavilla lähipäivinä.
[Suuri kiitos Chainfirelle hänen työstään täällä ja avusta tämän artikkelin valmistelussa.]