Rootanje Androida
Pojam "rootanje" dolazi iz svijeta Linuxa, odnosno Unixa gdje "root" predstavlja jedinstvenog korisnika s administratoskim ovlastima, odnosno onoga sa svim ovlastima na cijelom sustavu. Kako je Android baziran na Linuxu, "rootanje" se u kontekstu Androida odnosi na dobivanje administratorskih ovlasti na uređaju koje proizvođači nisu voljni dodjeliti korisniku pod izlikom da bi korisnici mogli nešto "sprčkati", a pravi je razlog što tim postupkom ograničavaju korisnike kako bi dodatno naplaćivali "nove" mogućnosti i olakšali si svoj posao tehničke podrške.
Upravo zbog toga, proizvođači postupak "rootanja" kažnjavaju gubitkom garancije na uređaj, makar se samim posjedovanjem "root" ovlasti ne može ništa uništiti ili pokvariti. No kako "root" ovlasti dopuštaju da korisnik radi što god hoće s uređajem, moguće je i s neopreznim korištenjem učiniti određenu štetu na samom uređaju. To je gotovo isto kao da proizvođač zabrani nošenje mobitela blizu vode jer se može dogoditi da uređaj padne u vodu i pokvari se. Ponovno: imati "root" ovlasti ne oštećuje uređaj, ali korištenje "root" ovlasti da bi se na primjer procesor uređaja overclockirao na višu radnu frekvenciju može nepovratno uništiti uređaj.
Srećom, dobivanje "root" ovlasti isključivo je softverski postupak, pa je gotovo uvijek moguće i vraćanje na tvorničke postavke kako proizvođač nikad nebi ni znao da je "prekršen" garancijski ugovor.
Sadržaj
Zašto rootati?
Prvo pitanje - zašto uopće rootati Android? Najlakše bi bilo odgovoriti apstraktno: da korisnik uistinu posjeduje uređaj i sve njegove mogućnosti, a ne da ovisi o proizvođaču i njegovoj milosti ili cjeniku. Konkretno, rootanjem Androida dobivaju se neke zgodne nove funkcionalnosti, kao pretvaranje uređaja u bežičnu pristupnu točku (en. AP - access point), izradu sigurnosne kopije cijelog mobitela (npr. jednostavni c/p!), instalaciju programa na SD karticu, brisanje nepotrebnih aplikacija koje dolaze sa samim uređajem, stavljanje novijih verzija Androida koje proizvođač ne podržava ili kasni po godinu dana s updateom, razno razne modifikacije za ubrzanje uređaja, "shell" pristup cijelom uređaju itd.
Možda za većinu korisnika ovo ne zvuči previše "napeto", ali ni ne treba - danas i većina korisnika desktop GNU/Linuxa rijetko koriste root ovlasti. Root ovlasti nisu tu da se svakodnevno koriste. No ponekad je root pristup neophodan da bi se učinila određena radnja ili omogućila određena funkcionalnost, pa nema smisla da se jednostavno kaže "to se ne može" iako uređaj to tehnički može.
Rijetko se mijenjaju žarulje ili presvlake za sjedala u automobilu, a opet, bilo bi vrlo neugodno da sam korisnik za te radnje mora voziti automobil u servis i posebno plaćati te usluge kad ih može promijeniti sam. Zamislite kad bi ih promijenio sam - izgubio bi garanciju! Upravo je pravo da to smiju raditi direktna posljedica što posjeduju uređaj (makar i u automobilskoj industriji stvari idu u suprotnom smjeru - ograničavanja korisnika).
Općenito o procesu
Cijeli se proces kod svih uređaja svodi na par koraka, iako su nekad dostupne i Android aplikacije koje cijeli proces odrade u jednom kliku.
Napomena: Ovo nije postupak koji će raditi na određenom uređaju, već samo pregled kako postupak mora općenito izgledati i što se u njemu "zbiva". Moguće su varijacije, a sve ovisi o pojedinom proizvođaču, uređaju i verziji Androida, osim toga, za svaki su uređaj potrebne drugačije datoteke u samom procesu, stoga je preporuka potražiti postupak za specifičan uređaj na Internetu (npr. na adresi forum.xda-developers.com).
Iako postoje i drugi načini rootanja, ovaj je najosnovniji pa i najkompliciraniji, no šanse za uspjeh su najveće.
Prvi je korak obično instalacija odgovarajućih alata za razvoj Android aplikacija (tzv. Android SDK) koji uključuje program adb. Android Debug Bridge (adb) omogućuje spajanje na uređaj preko naredbenog retka što pak omogućuje pokretanje raznih naredbi na samom uređaju koje nisu dostupne iz klasičnog sučelja uređaja. Da bi spajanje bilo moguće, potrebno je uključiti opciju "USB debugging" u postavkama uređaja (ili nekog sličnog naziva).
Drugi je korak skidanje odgovarajućih exploita s Interneta (programa koji iskorištavaju sigurnosne propuste u sustavu) i njihovo slanje na uređaj u neki privremeni direktorij. Tada se exploitu daju ovlasti za izvršavanje (standardno chmod 755 ime_datoteke) te ga se izvrši. Ako je exploit valjan korisnik će nakon upisivanja naredbe "su" u tom trenu dobiti root ovlasti (naredbena će linija počinjati s "#", a ne "$").
Da bi mobitel bio trajno "rootan", s tim root ovlastima potrebno je "remountati" sistemski direktorij tako da se u njega može pisati i onda prekopirati par datoteka u /system/bin (novi su, busybox) i Superuser.apk u /system/app. Na novo kopirane datoteke u /system/bin direktoriju potrebno je postaviti ovlasti za izvršavanje (chmod 6755).
Nakon toga, potrebno je ponovno pokrenuti uređaj (naredba reboot ili isključi/uključi). Ako je proces protekao dobro, korisnik će tada imati rootan Android uređaj.
Instalacija i korištenje Android SDK-a
Android SDK može se skinut s ove stranice, potrebno je samo odabrati verziju za odgovarajući operacijski sustav na kojem će se adb pokretati.
Paket je zatim potrebno instalirati, odnosno otpakirati, npr. na GNU/Linux sustavu:
tar xvf android-sdk*
Kako Android SDK više ne dolazi sa svim korisnim alatima, potrebno je s programom android koji se nalazi unutar otpakiranog direktorija android-sdk-linux_86/tools/ instalirati Platform-tools (u kojem se nalazi i adb). Nakon te instalacije iz Androidovog repozitorija, adb se nalazi unutar direktorija android-sdk-linux_86/platform-tools.
Neke uobičajene i korisne naredbe:
- ./adb devices - ispisuje sve Android uređaje spojene na računalo
- ./adb push IME_DATOTEKE /sdcard/ - slanje datoteke s diska računala na SD karticu uređaja
- ./adb pull /sdcard/IME_DATOTEKE . - slanje datoteke s SD kartice uređaja na diska računala
- ./adb shell - prostupanje shellu uređaja (konzola/terminal/cmd kao na računalu, samo se ova pokreće unutar uređaja i sve akcije koje se unutar nje naprave vrijede za uređaj)
- ./adb reboot - restart uređaja (dodatne opcije: bootloader, recovery)
- ./adb logview - log/zapis s uređaja (korisno za situaciju kada nešto pođe krivo)
Za ostale mogućnosti vidjeti ./adb help.
Mogući problemi
Ako adb nema ovlasti pristupiti USB-u:
$ ./adb devices List of devices attached ???????????? no permissions
rješenje je isključiti adb daemon (./adb kill-server) i pokrenuti ga kao root korisnik (sudo ./adb start-server ili su -c'./adb start-server' ), no pravo bi rješenje bilo srediti dozvole za pristupanje USB uređajima običnim korisnicima.
Traženje exploita
Slanje datoteka pomoću adb-a
Pokretanje exploita i postavljanje novih datoteka
Linkovi i reference
- forum.xda-developers.com - zajednica koja se bavi modifikacijama smartphonea između ostaloga i Androida
- Sokac.net: Zašto rootat Android uređaj
- Android.com.hr - domaća stranica posvećena Android uređajima