Razlika između inačica stranice Rootanje Androida

Izvor: HrOpenWiki
Skoči na: orijentacija, traži
m (Instalacija Android SDK-a)
m (Instalacija Android SDK-a)
Redak 29: Redak 29:
 
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.
 
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 Android SDK-a ===
+
=== Instalacija i korištenje Android SDK-a ===
  
 
''Android SDK'' može se skinut s [https://developer.android.com/sdk/index.html ove] stranice, potrebno je samo odabrati verziju za odgovarajući operacijski sustav na kojem će se '''adb''' pokretati.
 
''Android SDK'' može se skinut s [https://developer.android.com/sdk/index.html ove] stranice, potrebno je samo odabrati verziju za odgovarajući operacijski sustav na kojem će se '''adb''' pokretati.
Redak 37: Redak 37:
  
 
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''').
 
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''').
 +
 +
==== 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''' ===
 
=== Traženje '''exploita''' ===

Inačica od 16:22, 14. travnja 2012.

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.

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).

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

Korištenje adb-a i slanje datoteka

Pokretanje exploita i postavljanje novih datoteka

Linkovi i reference