Breaking: Chainfire avalikustas täna versiooni SuperSU Beta 2.27, mis eemaldab vajaduse kerneli ramdisk muudatuste järele, et kasutada Android 5.0 juurjuurdepääsu
Siiani, kui tahtsite Android 5.0 juures juurutada, pidite mõne SELinuxi piirangu ületamiseks oma seadmesse viima muudetud kerneli. XDA tunnustatud vanemarendaja Aheltuli hiljuti välja antud varem vajalik CF-Auto-Root pakett, mis tegi vajalikud kerneli ramdisk muudatused, et eemaldada SELinuxi piirangud AOSP skriptilt install-recovery.sh. Täna hommikul tõi Chainfire aga naeratuse paljudele nägudele, nagu ta ise teatas Twitteris et seda poleks edaspidi enam vaja.
Kuni tänaseni oli Chainfire plaaninud automaatselt välja anda automaatse ZIP-põhise paikamistööriista paika kerneli kujutised TWRP taastamisest, kuni ta leidis sobiva meetodi vajaduse kõrvaldamiseks see.
See ilmutus tähendab, et Android 5.0 kasutajad ei pea SuperSU (või muude juurlahenduste) kaudu juurjuurdepääsu saamiseks enam modifitseeritud kernelit käivitama. Kuigi see ei olnud avatavate alglaaduritega Nexuse seadmete puhul suur probleem, oli vajadus mäluketta muutmise järele puudutab paljusid alglaaduriga lukustatud seadmete kasutajaid, mille jaoks pole avamist saadaval (jah, kahjuks on olemas). Vastus nende palvetele on nüüd käes ja me saame esitada eksklusiivse selgituse vajalike muudatuste kohta. Vähemalt praegu (kuni/kui Google seda ei paranda) on võimalik hankida juurjuurdepääs ning seejärel installida ja kasutada SuperSU-d Android 5.0 põhiseadmesse ilma kerneli ramdisket muutmata. Selle põhjuseks on vajadus, et SuperSU käivitaks teenust administraatorina, et võimaldada SELinuxiga kaitstud seadmetes piiramatut juurjuurdepääsu.
Varem kasutas SuperSU eelinstallitud AOSP-d flash_recovery teenus (kasutatakse AOSP-s taastamise värskendamiseks pärast OTA installimist), et käivitada SuperSU deemon (mis tegelikult annab juurõigused seda taotlevatele rakendustele). Lollipopi väljalaskmisega lisati see teenus piiratud SELinuxi konteksti, mis tähendab, et sellel ei ole enam süsteemile täielikku juurdepääsu. Varasemad kerneli muudatused püüdsid eemaldada sellelt skriptilt SELinuxi piirangud.
Chainfire'i uusim SuperSU beetaversioon lahendab selle, kasutades põhiteenust "Zygote" (vastutab kõigi Java-teenuste ja seega kõigi seadmesse installitud rakenduste käivitamise eest). Kuna Zygote on üks ainsatest Android L-s saadaolevatest teenustest, mis käivitatakse rakenduses root kasutajana piiramatu "init" SELinuxi kontekstis, teeb see peamiseks sihtmärgiks kasutamiseks SuperSU. Pärast alglaadimist viiakse Zygote'i teenuse SELinuxi "init" kontekst üle lõplikku (piiratud) "Zygote" konteksti. Chainfire on suutnud Zygote'i faile edukalt muuta, et käivitada koodi juurkasutajana, piiramatus "init" kontekstis, tuues seega SuperSU tagasi Android L-i ilma tuumata modifikatsioonid.
See pole esimene kord, kui Chainfire pöördub nende probleemide lahendamiseks Zygote'i poole; varasem 2.23 beetaversioon kasutas Zygote'i vahendina, et vältida mõningaid muid SELinuxi probleeme (mis põhjustas Android L-i juurrakenduste purunemise). See võimaldas mõnel (kuid mitte kõigil) mittetöötavatel rakendustel töötada – ülejäänud vajavad arendajatelt mõningaid värskendusi. Kahjuks selgus 5.0 AOSP koodiga tutvumisel, et Google oli selle Zygote teenuse ülevõtmise meetodi juba rikkunud. Arvestades, et kõik tema varasemad katsed Zygote'i üle võtta olid ebaõnnestunud, on see paljutõotav samm edasi.
Chainfire soovis juhtida tähelepanu sellele, et SuperSU on juba pikka aega suutnud muuta SELinuxi reegleid töötavas süsteemis (ja hoiatab selle kasutamise lihtsuse osas milliseid OEM-i saab selle keelata ja tõeliselt takistada sisulist ja lihtsat juurjuurdepääsu) ning kuidas tuleb teha Zygote'is tehtud muudatusi. hoolikalt, kuna teenust juhitakse erinevatest kontekstidest erinevate ülesannete jaoks, ja see suurendab mitmete (vastikute) peened ebaõnnestumised. See uus SuperSU beetaversioon 2.27 on loodud entusiastidele ja teistele tehnikatundjatele mängimiseks, et teada saada, mis puruneb. Püsikesed – ootamatuid vigu ei esine ja see on elujõuline tee edasi.
Pange tähele – isegi kui see beeta töötab ja Zygote on eelistatud viis juurjuurdepääsu saamiseks, on edaspidi kogu protsess vaid üherealine muudatus eemal sellest, et Google neid purustaks, mis muudaks paigatud kerneli ramdiskid Androidi juurjuurdepääsu tulevikuks (välistades seega alglaaduri lukustatud juurjuurdepääsu seadmed). Tõepoolest, uus protsess ei pruugi isegi täielikult ajakohastatud AOSP järgu puhul töötada mõne üsna suure SELinuxi tõttu. muudatused viimaste kuude jooksul, mida jaemüügiseadmetes ei sisaldunud, kuid mis on kahtlemata olemas ka tulevikus vabastab. Varem või hiljem näib siiski tõenäoline, et muudetud kerneli ramdiske on juurkasutaja jaoks vaja, kuid see uus beetaversioon võib pakkuda lühikest täitmisaega, enne kui peame selles suunas liikuma.
Kontrollige väljalaskemärkmed lisateabe saamiseks selle testimisega kaasnevate riskide ja linkide kohta. Arendajad peaksid ka teadma, et Chainfire teeb praegu kõvasti tööd Juhend "How-To SU". (täielikult värskendatud Android 5.0 jaoks), mis peaks olema saadaval järgmise paari päeva jooksul.
[Suur tänu Chainfire'ile siin tehtud töö ja abi eest selle artikli ettevalmistamisel.]