Sadržaj:
Volimo dobiti vaša pitanja. Uvijek je dobra stvar kada si možemo pomoći, a i sami učimo stvari dok tražite odgovore. Iako ne možemo pronaći vremena da odgovorimo na sve njih, ponekad se postavi dovoljno pitanja koja zaslužuju detaljan odgovor.
"Što znači korijen?" jedno je od tih pitanja. Koncept je za neke od nas možda jednostavan, ali za mnoge ljude koji nisu provodili vrijeme baveći se Androidom ili bilo kojim drugim operacijskim sustavom temeljenim na dozvolama, potrebno je postaviti neko pitanje. Pokušat ću im odgovoriti na sve najbolje što mogu.
dozvole
Prije nego što definiramo korijen, važno je razumjeti zašto postoji i kako funkcionira. To je zato što Android koristi dopuštenja (tačnije Linux-ova dopuštenja) u strukturi datoteka. Svaka datoteka, svaka mapa i svaka particija ima skup dozvola. Ta dopuštenja određuju tko može čitati datoteku (pogledati ili pristupiti sadržaju bez promjene), zapisati u datoteku (biti u stanju promijeniti sadržaj te datoteke ili stvoriti novu datoteku u mapi ili particiji) i izvršiti datoteku (pokrenite datoteku ako je tip koji se može pokrenuti, poput aplikacije). To se vrši na temelju korisnika i dozvola - određeni korisnici imaju pristup, dok korisnicima koji nemaju prava dopuštenja onemogućen je pristup.
Kada prvi put postavite telefon i prvi put ga uključite, dodjeljuje vam se korisnički ID. Ako se drugi korisnik prijavi putem Googlea, dodjeljuje mu se drugi korisnički ID. Kada se aplikacija instalira na vaš telefon, također joj je dodijeljen korisnički ID. Sam sustav je korisnik i drugi procesi koji se trebaju pokrenuti na vašem telefonu mogu imati vlastiti korisnički ID. Korisnik je sve što može učiniti bilo kojom datotekom na vašem Androidu.
Sustav korisnika i dozvola kako Android prati tko može što učiniti.
Recimo da instalirate aplikaciju za razmjenu poruka. Kad ga instalirate, dodjeljuje mu se korisnički ID. To također dobiva mjesto na vlastitoj particiji podataka, kojoj samo on ima pristup. Imate dopuštenja za izvršavanje aplikacije, a kada se aplikacija pokrene ima dozvolu za pristup vlastitoj mapi podataka i datotekama. Aplikacija također može zatražiti dozvolu za pristup stvarima poput vašeg adresara ili SD kartice ili biblioteke fotografija. Ako ovim zahtjevima kažete da (ili ako pristajete na dozvole starijih verzija Androida), korisnički ID aplikacije daje dozvolu za podatkovne datoteke tih stvari, što znači da može pogledati mapu podataka i njezin sadržaj i eventualno se promijeniti njih ili dodajte nove datoteke. Aplikacija ne može pristupiti nijednoj datoteci podataka na koju nema dozvolu pregledavanja. To znači (u našem primjeru) da ne može raditi stvari poput pregleda baze podataka ili pristup mapi s podacima druge aplikacije. Za to se često koristi izraz pijeska - aplikacije su u pakovanju u pijesku i mogu se reproducirati samo u kutijama za pijesak za koje imaju dozvolu ulaska.
Za datoteke koje su programi i mogu se pokrenuti (poput aplikacija), primjenjuje se isti model dozvola. Vaš korisnički ID ima dozvolu za pokretanje aplikacija koje ste instalirali dok ste prijavljeni. Korisnik sustava ima dozvolu za pokretanje istih, a drugi korisnici na razini sustava mogu imati pristup aplikacijama ili određenim procesima koje aplikacije koriste. Ostale aplikacije ne mogu pokrenuti aplikacije za koje nemaju dozvolu za pokretanje. Ako ste dodali sekundarnog korisnika, oni nemaju pristup vašim aplikacijama ili datotekama i obrnuto. Na vašem telefonu postoje datoteke, mape i aplikacije za koje vaš korisnički ID nema dozvolu za pregled, izmjenu ili pokretanje. Ti dijelovi Androida zahtijevaju dopuštenja na razini sustava (ID korisnika sustava) da bi učinili bilo što, a vi niste korisnik sustava ili korisnik koji ima dopuštenja na razini sustava.
Prebacivanje dopuštenja
Iako je tehnički moguće promijeniti način na koji se pokreće telefon i datoteke koje koristi za pokretanje pokretanog sustava i dodjeljivanje povišenih dozvola vašem korisničkom ID-u, to nije sigurno niti praktično. Ali Android (i većina sustava temeljenih na Unixu ili Linuxu) imaju ono što se naziva root korisnik i podržavaju SubstituteUser binary (razmišljajte o binarnom obliku kao maloj aplikaciji) za promjenu korisničkih ID-ova. Oni se koriste za administraciju sustava na temeljnoj razini.
Budući da ljudi koji su napravili vaš telefon ne žele da imate lagan pristup korijenskom korisničkom ID-u - i nisu svi razlozi sebični jer štiti i vas i vaše privatne podatke - binarni zamjenik SubstituteUser nije uključen u većinu sastava Android. Bez SubstituteUser ne možemo prebaciti naš korisnički ID. Većina stvari na Android sustavu ima usput i jednostavna imena. Jezgrena sigurnost (datoteke u programu za pokretanje programa i / ili u samoj jezgri) također su izgrađene na način da vam onemoguće prebacivanje korisničkih ID-ova kao dijela SELinux-a (S ecurity- e nhanced Linux - rekao vam je da su imena jednostavna) kernel module, Neki telefoni (Samsungov Knox pada na pamet) imaju dodatnu zaštitu, a gotovo sve tvrtke koje proizvode Androide zahtijevaju da bi, da bi izvršile promjene, program za pokretanje sustava trebao biti otključan kako bi se te datoteke mogle mijenjati i omogućiti vam izmjenu korisničkih ID-ova, Neki telefoni, poput BlackBerry Priv-a, idu čak i korak dalje i neće se pokrenuti ako nešto promijenimo (čak i ako bismo mogli).
Da biste postali root, potreban vam je način za promjenu vašeg korisničkog ID-a.
Jednom kada prođemo kroz sve to - bilo otključavanjem pokretača punjenja ovlaštenim sredstvima ili upotrebom neke vrste iskorištavanja - možemo smjestiti SU binarni uređaj (SubstituteUser) na mjesto koje može pokrenuti kad se zove pokrenuti - to se zove PATH. Ako se neka aplikacija nalazi u PATH-u vašeg korisničkog ID-a, pokrenut će se bez da točno kaže sustavu gdje se nalazi. Morate se također uvjeriti da se SU binarna datoteka nalazi na mjestu gdje vaš korisnički ID ima dozvolu za izvršavanje (pokretanje) datoteka. Bilo koja druga aplikacija (Google Play ima mnogo aplikacija za koju su potrebna korijenska dopuštenja) također će trebati isti pristup. Kada koristite metodu za korijenje svog telefona, sve je to izdvojilo narod koji je izgradio korijensku metodu.
Nakon što sve bude na mjestu, možemo pokrenuti SU binarnu datoteku (ili neka druga aplikacija može pokrenuti SU binarnu datoteku).
Dobivanje korijenskog pristupa
Tu dolazi korijen. Binarni program SU upotrebljava zastave kada je pokrenut kako bi rekao sistemu na koji korisnički ID želite prebaciti se. Na primjer, ako na svom Ubuntu računalu pokrenem SU binarnu datoteku poput ove "su Jim -c nano", izvršavat ću nano naredbu kao korisnik Jim (nakon unošenja Jimove lozinke). Ako pokrećete SU binarnu datoteku bez zastava ili argumenata, prebacuje vas na root korisnika. Obično biste trebali unijeti lozinku, ali budući da je "root" neiskorišteni korisnik na Androidu, on nema lozinku. Izvođenjem naredbe "su" prebacit će vas na korisnički korijen i dodijeliti vam korisnički ID od 0 i smjestiti vas u korijensku skupinu. Sada ste Super korisnik.
Kao Super Korisnik na bilo kojem Androidu možete učiniti bilo koju datoteku, mapu ili particiju. Pod bilo čime, mislimo doslovno bilo što. Možete ukloniti velike programe, a također možete ukloniti ključne sistemske datoteke koje prekidaju vaš telefon. Možete i učiniti hardverom stvari poput promjene frekvencije CPU-a i zauvijek uništiti telefon.
Root je super korisnik, koji može sve. A mi išta mislimo.
Aplikacije mogu učiniti istu stvar. SU se nalazi tamo gdje je to u aplikaciji PATH i svaka aplikacija ga može nazvati i pokrenuti. Aplikacija tada ima dopuštenja za Super korisnika i može bilo što učiniti na bilo kojoj datoteci na bilo kojem mjestu na vašem telefonu. Zbog toga ljudi koji su napravili vaš telefon ne žele da imate tu razinu pristupa, a tvrtke koje vam dopuštaju da otključate program za pokretanje sustava i promijene stvari još uvijek ne postavljaju SU binarnu datoteku na vaš telefon. Pristup korijenu bez načina da se nadzire tko ili što ga može koristiti opasno je za softver i vaše osobne podatke.
Zbog toga morate instalirati aplikaciju koja vas prisiljava da omogućite korijenski pristup kad god se bilo koja ili druga aplikacija pokuša pozvati na Super User dopuštenja. U većini slučajeva kada koristite root metodu za svoj telefon, bit će uključena jedna, zajedno s nekim drugim korisnim binarnim datotekama kao što je set alata BusyBox. Ako ste stvari radili ručno, morat ćete je sami instalirati. SuperSU by Chainfire na Google Playu je dobar početak.
Parčići
Mnogi telefoni i neke korijenske metode rade nešto drugačije (Android 4.3 donio je puno promjena) i zahtijevaju skripte ili daemon (vidjet ćete riječi poput daemonsu ili su.d spomenutog), umjesto da samo baci SU na svoje mjesto. Koriste se za pozivanje SubstituteUser tako da se možete prebaciti na korijenskog korisnika baš kao i sirova binarna metoda. Ljudi koji su smislili kako iskoristiti vaš telefon, sve su to izdvojili i to će raditi isto na strani okrenutoj prema korisniku.
Također je moguće "temp-root" neke androide. To znači da možete imati Super User dozvola i napraviti nekoliko stvari koje morate učiniti, ali ponovno pokretanje uklanja root pristup. Isto tako, možete imati "root-root" gdje samo korisniku root-a možete pristupiti putem adb sa svog računala.
Na kraju, želim naglasiti da ako imate ovih pitanja, morate razmisliti jeste li spremni imati ukorijenjeni Android. Nismo se šalili kad smo rekli da je lako upropastiti telefon SuperUser pristupom. Nema razloga da vas se stidi da morate malo pročitati ili postaviti još nekoliko pitanja prije nego što napravite stvari koje vam mogu pokvariti telefon ili dati nekoj slučajnoj aplikaciji rouge pristup svim svojim podacima.
Zbog toga smo ovdje.