SuperSU BETA: Root Android Lollipop pe Stock Kernel

Breaking: Chainfire a anunțat astăzi SuperSU Beta 2.27, eliminând necesitatea modificărilor discului ram al nucleului pentru a utiliza accesul root pe Android 5.0

Până acum, dacă doreai să obții root pe Android 5.0, trebuia să flashezi un nucleu modificat pe dispozitiv pentru a rezolva unele restricții SELinux. Dezvoltator senior recunoscut XDA Lanț de foc a lansat recent ceea ce era necesar anterior CF-Auto-Root pachet, care a făcut modificările necesare pe discul ram al nucleului pentru a elimina restricția SELinux din scriptul install-recovery.sh pe AOSP. În această dimineață, însă, Chainfire a adus zâmbete pe multe fețe, ca el a anunțat pe Twitter că acest lucru nu va mai fi necesar în continuare.

Până astăzi, Chainfire plănuia să lanseze un instrument de corecție automat bazat pe ZIP, pentru a fi automat patchează imaginile nucleului din cadrul recuperării TWRP, până când a găsit o metodă potrivită pentru a elimina necesitatea acest.

Această revelație înseamnă că utilizatorii Android 5.0 nu mai trebuie să ruleze un nucleu modificat pentru a obține acces root prin SuperSU (sau alte soluții root). Deși nu este o problemă uriașă pe dispozitivele Nexus cu încărcătoare de boot deblocabile, necesitatea modificărilor discului ram a fost îngrijorător pentru mulți utilizatori ai dispozitivelor blocate cu bootloader pentru care nu este disponibilă nicio deblocare (da, din păcate o fac exista). Răspunsul la rugăciunile lor este acum aici și putem prezenta o explicație exclusivă a schimbărilor necesare. Cel puțin deocamdată (până/cu excepția cazului în care Google corectează acest lucru), este posibil să obțineți acces la rădăcină și apoi să instalați și să utilizați SuperSU pe un dispozitiv Android 5.0 stoc, fără nicio modificare a discului ram al nucleului. Motivul pentru aceasta este necesitatea ca SuperSU să ruleze un serviciu ca root, pentru a permite accesul root neconstrâns pe dispozitivele protejate de SELinux.

Anterior, SuperSU folosea AOSP preinstalat flash_recovery serviciu (utilizat în AOSP pentru a actualiza recuperarea după o instalare OTA) pentru a porni demonul SuperSU (care oferă de fapt privilegiile root pentru aplicațiile care îl solicită). Odată cu lansarea Lollipop, acest serviciu a fost adăugat la un context SELinux restrâns, ceea ce înseamnă că nu mai are acces nealterat la sistem. Modificările anterioare ale nucleului au căutat să elimine restricțiile SELinux din acest script.

Cea mai recentă versiune beta a SuperSU a Chainfire rezolvă acest lucru prin utilizarea serviciului de bază „Zygote” (responsabil pentru lansarea tuturor serviciilor Java și, prin urmare, a tuturor aplicațiilor instalate pe un dispozitiv). Deoarece Zygote este unul dintre singurele servicii disponibile pe Android L, care este pornit ca root în cadrul contextul SELinux „inițial” nerestricționat, aceasta îl face o țintă principală pentru utilizare în operarea SuperSU. După pornire, serviciul Zygote are contextul „inițial” SELinux trecut la contextul „Zygote” final (restricționat). Chainfire a reușit să modifice cu succes fișierele Zygote, pentru a rula cod ca utilizator root, în contextul „inițial” nerestricționat, aducând astfel SuperSU înapoi la Android L, fără kernel modificări.

Nu este prima dată când Chainfire apelează la Zygote pentru a rezolva aceste probleme; versiunea anterioară 2.23 beta a folosit Zygote ca mijloc de a evita eventual alte probleme SELinux (care determinau ruperea aplicațiilor root pe Android L). Acest lucru a permis ca unele (dar nu toate) aplicațiile nefuncționale să funcționeze - restul necesită unele actualizări de la dezvoltatorii lor. Din păcate, atunci când a fost consultat codul AOSP 5.0, a reieșit că Google a rupt deja această metodă de preluare a serviciului Zygote. Având în vedere că toate încercările sale anterioare de a prelua Zygote au eșuat, acesta este un pas promițător înainte.

Chainfire a fost dornic să sublinieze că SuperSU a reușit de mult să modifice politicile SELinux pe un sistem care rulează (și avertizează cu privire la ușurința cu care un OEM ar putea dezactiva acest lucru și să împiedice cu adevărat accesul root semnificativ și simplu) și cum trebuie făcute orice modificări aduse Zygote cu atenție, având în vedere că serviciul este rulat din diferite contexte diferite, pentru sarcini diferite, iar acest lucru ridică posibilitatea unui număr de (urât) eșecuri subtile. Acest nou SuperSU beta 2.27 este o versiune pentru entuziaști și alți tehnicieni cu care să se joace, pentru a afla ce se întrerupe. Încrucișăm degetele - nu există erori neașteptate care stopează spectacolul și aceasta este o cale viabilă de urmat.

Rețineți - chiar dacă această versiune beta funcționează și Zygote este calea preferată pentru a obține acces la rădăcină, în continuare, întregul proces este doar o schimbare pe o singură linie departe de a fi rupt de Google, ceea ce ar face ca discurile ram corectate ale nucleului să fie viitorul pentru accesul root pe Android (excluzând astfel root pentru bootloader-locked dispozitive). Într-adevăr, ca avertisment, este posibil ca noul proces să nu funcționeze nici măcar pe o versiune AOSP complet actualizată, din cauza unor SELinux destul de mari. modificări din ultimele luni, care nu au fost incluse în dispozitivele de vânzare cu amănuntul, dar care vor exista fără îndoială în viitor eliberează. Totuși, mai devreme sau mai târziu, se pare că vor fi necesare discuri ram modificate ale nucleului pentru root, dar această nouă versiune beta poate oferi o scurtă perioadă de execuție înainte de a trebui să mergem în această direcție.

Verifică notele de lansare pentru mai multe informații despre riscurile implicate în testarea acestui lucru și pentru link-uri. Dezvoltatorii ar trebui să fie, de asemenea, conștienți de faptul că Chainfire lucrează în prezent din greu la Ghid „Cum să SU”. (actualizat complet pentru Android 5.0), care ar trebui să fie disponibil în următoarele câteva zile.

[Mulțumiri imense lui Chainfire pentru munca sa aici și pentru asistență în pregătirea acestui articol.]