Šta je novo?

ROOT-ovanje

SuperStarr

Moderator
Super Moderator
Učlanjen(a)
25.07.2002
Poruke
9,424
Poena
1,025
Moja oprema  
CPU & Cooler
AMD X4 @ 3,5Ghz
Matična ploča
GA-990FXA-UD3
RAM
32Gb DDR3 @ 1666Mhz
GPU
Strix RX480 8Gb
Storage
256Gb 850Pro + couple of AliExpress SSD's
Zvuk
Creative
PSU
Zalman ZM600-HP (Heat-Pipe :) )
Kućište
Alexander Weiss (glass front + glass side)
Monitor
AOC 32" IPS
Miš & tastatura
G602 & Drevo 87 key (Red Switch)
Mobilni telefon
Moto G9 Plus
Pristup internetu
  1. Kablovski internet
Ne vidim da ima tema o ROOT-ovanju u globalu...

Mene kao nekoga ko se prvi put ozbiljno sreće sa Androidom (nisam zadovoljan samo sa korišćenjem, hoću da naučim da ga ispodešavam) a nikada ranije nisam koristio Linux, sada u početku najviše zbunjuju termini koji se koriste.

1) ROOT-ovanje je dakle dobijanje "dozvole" super-administratora?
U prevodu trebalo bi da znači da može bilo koji fajl da se obriše / izmeni?

2) ROM bi trebalo da predstavlja OS?
Znači samo sa ROOT-ovanim telefonom bi mogao da čačkam po ROM-u?

3) Šta je Kernel u svemu ovome?

4) Šta znači "Unlock your bootloader"? Mislim imam predstavu ali gledajući iz ugla nekog ko je ceo život proveo uz Win i DOS (C64 nećemo da računamo :) ) i zašto na nekim telefonima "bootloader" ne može da se otključa?

5) Šta je Android SDK i kakvu on ulogu u svemu ovome ima?



Eto toliko za početak. :)
 
Odmah da kazem da nisam ekspert za android, ali manje-vise upoznat sam sa materijom..

Sve sto si pitao, ima dosta veze jedno sa drugim. Za pocetak root predstavlja to sto si rekao, u praksi bi znacilo pristup mnogo vecem broju aplikacija ( narodne verzije, apk. koje zahtevaju root itd..). Takodje root ti omogucava da stavljas kuvane romove ( romovi koji su modovani), bar na telefonima koje sam ja imao. Kada telefon root-ujes mozes da stavis na njega CWM preko kojeg opet flesujes ROM-ove koji ti se svidjaju i sve to radis preko telefona- bez racunara. Otkljucavas (sim), klokujes itd .... ROM, to jeste OS, tj. razne verzije jednog OS. Koji ROM izabrati, zavisi od licnih afiniteta, ali svakako je jedna od prednosti androida sirok izbor verzija, jer je meni glupo to da svako treba jedan te isti OS da koristi i da nema mogucnosti da ga prilagodi sebi. Neki romovi imaju bolju bateriju, neki rade brze, neki izgledaju sjajno, neki sve to, sve zavisi od ukusa. Kernel, koliko sam ja shvatio ustvari bi se mogao nazvati driver, on je u stvari spona izmedju hardvera i softvera, takodje ima dosta uticaja na performase telefona. . Bootloader, daje ti mogucnost, kada je otkljucan da sa telefona flesujes romove.. Uglavnom su zakljucani jer svaki proizvodjac ima i svoj softver, ali posto se vecini ne svidja stock, bootloader ( CWM ) se otkljucava da bi mogli da se flesuju Romovi koji ti vise odgovaraju. SDK, ne znam tacno, ali koliko se secam pomaze u komunikaciji telefona i racunara, to je isto u vezi menjanja Rom-ova na telefonu ali putem racunara. Davno bese kada sam to odradio, jos za prvi galaxy i7500, stvarno se ne secam.

Mislim da nisam puno pogresio, ispravice me forumasi koji ovo imaju u malom prstu ( ima ih dosta takvih) ..
 
Kao sto te win7 UAC pita za dozvolu ako pokusas da promenis nesto u sistemu ili da kopiras neki file u neki zastoceni direktorijum, pitace te i telefon kada ga rootujes. Ako ga ne rootujes, sve te akcije nisu moguce. ndroid out-of-box pruza mnogo i veliki broj korisnika nema potrebu za root-om.
Memorija telefona je podeljena na particije. Jedna od particija gde je smesten OS je podesena na read-only i niko, pa ni OS nema mogucnosti da je prebaci u read-write. Tek sa root privilegijama je moguce u letu prebaciti read-only u read-write i cackati po OS-u.
Kernel je srce OS-a. U njemu se nalazi sve, od task managera pa do drivera za sve uredjaje u telefonu. Kernel se obicno nalazi na posebnoj particiji gde ne postoji file system vec je to samo blok podataka koje bootloader ucitava prilikom startovanja telefona.
Bootloader je opet particija na kojoj se nalazi program za ucitavanje kernela. Zbog raznih (po meni besmislenih zastita) zakljucani bootloader vrsti porveru kernela pre ucitavanja. Ako je kernel potpisan sa kljucevima proizvodjaca, onda ce dozvoliti dalji rad. Ukoliko kernel nema potpise, telefon se nece startovati. Bootloader ima jos jednu svrhu, a to je da upravlja telefonom dok traje instalacija novog ROM-a. Bootloader ce podatke koji stizu sa USB-a kopirati na neku od particiju telefona. Zakljucani bootloader ce zahtevati da kriptovani podaci koji stizu sa USB-a budu potpisani sa kjucevima proizvodjaca da bi i uopste upisao na neku od particija.

Android je u stvari virtuelna Java masina koja se vrti u linuxu i zove se Dalvik. Prostije receno, Linux kernel po ucitavanju, pokrece Dalvik VM, koji dalje pokrece Java programe, itd. Dalvik VM je wraper izmedju Jave i Linux servisa/drivera. Android SDK je skup dokumentacija i alata sa primerima kako praviti programe za Android. Cesto se koristi za "hakovanje" po telefonu zbog programa ADB koji omogucava otvaranje remote konzole sa telefona na PC-u.
 
@SS, verovao ili ne, taman sam hteo nesto slicno da pitam :)

Posto sam se sreo sa potrebom za rootovanjem na dva modela razlicith proizvodjaca (gde se izgleda prilicno razlikuje), da dodam i ova pitanja:
- Sta su boot, kernel, system (i sta jos ima?) u fastboot komandi? (tipa fastboot flash boot boot.img i slicno). kernel je ocligledan naravno
- Koliko je recimo System deo za neki telefon specifican za taj telefon? Recimo Kernel je sigurno specifican za jedan konkretan model (mozda moze na maltene isti model da radi, tipa Arc->ArcS ali vidim da se ne preporucuje i sa E210S->E210K Galaxy 3 koji su u stvari isti skroz telefoni :))
Ovo pitam jer me zanima koliko je moguce prosto staviti korektan kernel a flashovati System od nekog sasvim drugog telefona?
 
To je kernel generalno, ali sta je Boot i System?:)
 
Dakle, "Windows native" korisnici bi kernel mogli nazvati i BIOS-om:

Kernel:
The kernel is actually the core of the operating system on your phone. The kernel/core is build on a linux environment.
Info:
Every Android device has a kernel which can't be exchanged between differrent devices. While booting your device, the kernel will load and setup your device. For example, when you want to use you hardware keys, Android needs to know how to make them to work. The drivers necessary for this are loaded from the kernel. Audio, Speakers, Screen, ... Every little piece of hardware needs to have the correspondong drivers and will be controlled by the kernel.
Because every device has some differnet hardware, you need to have a specific kernel for your device. So this means you can't use a Sony kernel on a Samsung or HTC device.
MQEVd.jpg

Bolje upućeni, slažete li se? :)
 
E sad je pitanje gde stoje razni libs (koliko sam shvatio razliciti su potrebni za razlicite kernele za wifi recimo?)? Kernel, system, nesto trece?
 
u Linuxu ne postoje driveri kao sto postoje u windowsu. Kod linuxa, svi driveri za sve uredjaje su u kernelu.Konkretno kod telefona, zna se koji hw ima u sebi tako da kernel ima spakovano samo ono sto mu treba + opisi za razne USB uredjaje .
Biblioteke (libs) su shared objects tj kao dll u windowsu. Aplikacija moze da linkuje te biblioteke ukoliko joj trebaju.
Dalvik je Java VM. To je aplikacija koja u letu pretvara java bytecode u native i izvrsava. Dane bi gubio puno vremena, Dalvik kesira prevedene aplikacije u dalvik cache tako da sledeci put ne mora da se ponovo bavi tim poslom.
Radi povecanja brzine a i ubrzanja razvijanja platforme, mnoge open source biblioteke su iskoriscene u Androidu. To je uradjeno tako sto su napravljeni Java wraperi za te biblioteke koriscenje JNI. Npr. opengl es, video codeci, socket api, ...
 
lepa tema. ljudi pisite jos. dugo sam vec korisnik androida a nikako ne mogu da sklopim celu sliku. na xda ima mnogo smeca, tesko je iskopati sustinu. evo ovde u 9 postova dosta sam saznao.
 
+1 sto se tice XDA :) Oci me bukvalno zabole pre nego sto ista nadjem tamo :)

@yooyo, a sta dodju ostali delovi ROM-ova? Ne znam u stvari da li je recimo ROM za Sony i Samsung isti (posto sam samo sa Sony-em radio), ali pretpostavljam da svi imaju boot, kernel, system i TA deo? Sta bi bio system, i koliko je specifican konkretnom modelu ili proizvodjacu?
 
Mene zanima evo konkretno na SGSu. Ima 2 particije (memorije) oneNAND kapaciteta 512MB i iNAND kapaciteta (8GB je model). U specifikaciji navode na gsmareni nekih 2GB ROM. Sta je to :)
 
- Sta su boot, kernel, system (i sta jos ima?) u fastboot komandi? (tipa fastboot flash boot boot.img i slicno). kernel je ocligledan naravno
- Koliko je recimo System deo za neki telefon specifican za taj telefon? Recimo Kernel je sigurno specifican za jedan konkretan model (mozda moze na maltene isti model da radi, tipa Arc->ArcS ali vidim da se ne preporucuje i sa E210S->E210K Galaxy 3 koji su u stvari isti skroz telefoni :))
Ovo pitam jer me zanima koliko je moguce prosto staviti korektan kernel a flashovati System od nekog sasvim drugog telefona?

fastboot je ime programa koji trebas da instaliras (pored ADB drajvera) da bi mogao da flesujes kernel. flash boot je komanda za fleshovanje kernela. boot.img je samo ime kernela. Njega mozes da nazoves kako hoces (tipa alfaunits.img) i da posle komanda za flesovanje bude fastboot flash boot boot.img

Kernel je, konkretno za svaki model iz Sony game slican, ali ja nikada ne bih flesovao kernel ili rom za jedan model na nekom drugom modelu iz jednog prostog razloga-mozes od telefona da napravis brick (ciglu). Postoji soft brick i hard brick. Soft brick mozes i sam da popravis, kao sto i samo ime kaze to se softver shebo, a hard brick znaci da ti je hardverski riknulo nesto (najcesce je to ploca) i da moras da posetis servis. Inace, Sony je prakticno unbrickable, nisam video nikog na XDA sa hard brickom na proslogodisnjim Xperijama, (dok se kod nekih drugih proizvodjaca to cesto desava), ali se ja opet ne bi zezao sa tim.



+1 sto se tice XDA :) Oci me bukvalno zabole pre nego sto ista nadjem tamo :)

@yooyo, a sta dodju ostali delovi ROM-ova? Ne znam u stvari da li je recimo ROM za Sony i Samsung isti (posto sam samo sa Sony-em radio), ali pretpostavljam da svi imaju boot, kernel, system i TA deo? Sta bi bio system, i koliko je specifican konkretnom modelu ili proizvodjacu?

Ono sto sam rekao za kernel vazi i za ROM-ove, za sve Sony-jeve modele su slicni, cak mislim da ROM-ovi od Arca rade npr na mom Neo-u (zato sto su, osim prednje kamere telefoni hardverski identicni), ali za svaki slucaj ubacujem samo romove iz XDA odseka za moj telefon, jer 99% romova iz Arc odseka postoji i u odseku za Neo.* Koliko sam zapazio, jedino Sony stancuje dosta modela pod slicnim hardverom, sto olaksava developerima da ROM sa jednog telefona lako i brzo, uz minimalne modeifikacije, portuju na drugi telefon.

Sam sistem je za sve modele isti (verzija Androida-2.3, 4.0.4, 4.1.1.), ali su svi telefoni hardverski razliciti i jedan ROM sa Samsunga nikada nece raditi na Sony-ju.



*da budem u potpunosti iskren, stavljao sam ROM od Neo V u moj Neo, i radilo je sve osim kamere (koja je prakticno jedina razlika izmedju ova dva modela). Medjutim, u temi za rom koji trenutno koristim pise da njega ne treba stavljati na Neo L (koji je isti kao i obican Neo, samo za kinesko trziste). Tako da tu nema nekih pravila, ko ce mu ga znati... :smash:
 
A koja je onda razlika izmedju fastboot flash boot i fastboot flash kernel? Zar nije boot DL, a kernel kernel?:)
Kopka me da isprobam da pokrenem Arconium na Xperia S sa S kernelom samo...
 
A koja je onda razlika izmedju fastboot flash boot i fastboot flash kernel? Zar nije boot DL, a kernel kernel?:)
Kopka me da isprobam da pokrenem Arconium na Xperia S sa S kernelom samo...

Razlika je u tome sto fastboot flash kernel komanda ne postoji :). Kernel+initrd = boot.img a sa fastboot mozes da pises samo kompletne particije. Imas jos jednu zanimljivu mogucnost ako to je da boot-ujes kernel sa kompa bez flash-ovanja na telefon.

fastboot boot <kernel> <ramdisk>

Znaci, kopiras zImage i initrd u sdk/tools folder i odatle ih download-ujes na telefon bez trajnog flesovanja.

Pogledaj kompletan opis fastboot komande na CM wiki
wiki.cyanogenmod.com/wiki/Fastboot

Sto se tice drajver-a u androidu...mogu biti kompajlirani unitar kernela ili mogu biti u formi eksternog modula (.ko). Nemam predstavu zasto je to tako al' npr wifi drajver se po pravilu radi kao eksterni loadable modul.
 
I jos jedna stvar...funkcional, otkljucan bootloader u kome je omogucen fastboot ti je dovoljan da vratis povratis telefon iz bilo kog stanja sjebavanja. Mozes da flesujes kernel, system kompletan rom (zip format) tako da...ako si raspolozen za eksperimentisanje samo opusteno :)
 
Heh, negde sam video flashboot flash kernel kernel.img komandu, a nisam primetio da nije moguca :)
Malkice sam experimentisao sa ArcS-om posto na njemu mogu da izvucem bateriju ako se zaglavi boot, ali nemam predstavu kako da flashujem telefon kod koga ne moze da se vadi baterija, ako se zaglavljuje boot? Znam kako da recimo rebootujem telefon (kroz hardverske tastere), ali kako da pokrenem fastboot/flash mod posle toga, ne mogu da stignem da pritisnem pravo dugme i povezem microUSB na vreme?
 
Morao bi da ima nekakav mehanizam na power tasteru koji moze da resetuje uredjaj. Na mom tabletu (ne vadi se baterija) drzanje power dugmeta 10 sec radi force power down. Cini mi se da je slicno izvedeno na iPad-u tako da zakljucujem da verovatno svi uredjaji na kojima je onemoguceno vadjenje baterije moraju imati slicnu izvedbu
 
Da, da, to ima, ali kako da ga posle dovoljno brzo ubacim u fastboot/flash mode? (tipa bilo drzanje Home/Back/Meni, Vol Up/down tastera dok se ubacuje USB - dok ja stignem da ubacim USB kablic, vec se startovao :D)
 
Heh, negde sam video flashboot flash kernel kernel.img komandu, a nisam primetio da nije moguca :)

Pa odgovorio sam ti na ovo već, kernel se umesto boot.img zove kernel.img, pa zato komanda izgleda tako. Proguglaj malo, ima Xperia S neku caku za restart pomoću power tastera, mislim da trebaš da držiš power dugme i volume up 10 sekundi, a posle toga uđeš u cmw isto kao što si ušao i prvi put (na mojoj Xperiji je držanje volume down)
 
Ali sta ako je i CWM bricked ili ako ga nema?:)
 
Onda ga kacis ponovo na računar, držiš back taster kad se pali fon, dok se ne ne upali plava notification led, pa pokušaš da flešuješ kernel preko fastboot-a. Ako računar ne prepoznaje fon i fon ne reaguje na komande, onda je hard brick.
 
Fastboot je funkcija bootloader-a i funkcionise i ako nemas recovery ili kernel.
 
Imas jos jednu zanimljivu mogucnost ako to je da boot-ujes kernel sa kompa bez flash-ovanja na telefon.

fastboot boot <kernel> <ramdisk>

Kako ovo konkretno funkcionise? Recimo ako hocu da flashujem CWM kernel koji ne moze da bootuje ROM (takav je slucaj za Xperia S), da li mogu da ga "pokrenem" sa kompa, uradim backup, i kada restartujem telefon on ce pokrenuti obican kernel koji je vec bio?
Sta konkretno da kucam za <ramdisk> deo? Nisam nigde nasao primer za ovo na netu.
 
CWM kernel verovatno sadrzi boot.img image spreman za flash-ovanje iz recovery. E sad...par stvari...boot particija ima raw format. Nema klasicnog file sistema. U skladu sa tim, pravi se image koji se u celosti pise na tu particiji. Nema "klasicnog" kopiranja fajlova kao sto je to slucaj sa flash-ovanjem drugih particija. Taj boot.img sadrzi kernel (zImage) i ramdisk (initrd.gz). Struktura ovog image-a nije takva da bi ga mogao samo raspakovati uz pomoc nekog arhivera vec je potrebna skripta koja ce da procita header boot.img i da prepozna koji deo arhive je zImage a koji je initrd.gz. na xda i na jos x mesta moze da se pronadhe perl skripta za raspakivanje boot.img tako da, ako si vican sa linuksom i skriptama, ovo ti je nacin da dodjes do kernela i ramdiska u formatu pogodnom za fastboot (google unpack boot.img). Ono sto jos mozes da uradis je da smaras developera da ti da raspakovani kernel

I jos nesto...fastboot boot komanda nista ne upusuje na flash memoriju. jednostavno se u ram memoriju upusuje kernel sa harda umesto onog sa boot particije
 
Poslednja izmena:
Probao sam sa 3 kernela koje sam nasao za XpS, fastboot boot kernel.elf (promenio kernel.elf naravno u ime fajla) - u sva tri slucaja kad dodje do Booting dela, dobijam:

Kod:
OKAY [  0.305s]
booting...
FAILED (remote: Wrong range:0x10008000-0x108cf474. Ok:0x40200000 - 0x42efff
finished. total time: 0.349s

Sva tri su kerneli koji se inace flashuju sa flashboot flash boot kernel.elf

EDIT: fastboot -b 40200000 kaze OKAY, ali samo zamrzne telefon, tj. nista se ne desava pa mora reset.
 
Poslednja izmena:
Aj da idemo od onog najjednostavnijeg dela, obicno tu ljudi najvise grese:
1) da li ti je bootloader otkljucan kako treba? To kod Xperije S proveravas na sledeci nacin:
Dial *#*#7378423#*#* . Then go to -> "Service Info" -> "Configuration". If there is:
Bootloader unlock allowed - Yes << this means that your Bootloader is Locked
Bootloader Unlocked - Yes << this means that your bootloader is unlocked
2) da li su ti ADB drajveri i fastboot instalirani kako treba?
3) da li ti je kernel koji si skinuo u istom folderu gde se nalazi fastboot.exe ?
4) da li telefon normalno ulazi u fastboot mod?

Edit:
Evo detaljnog objasnjenja sta ti sve treba i kako se fleshuje kernel na tom telefonu: http://forum.xda-developers.com/showpost.php?p=23181182&postcount=7
 
Poslednja izmena:
1.2.4. Da
3. ne, vec u trenutnom, a fastboot je u PATH-u :)

Nije mi ideja da flashujem custom kernel vec da uradim hotboot (fastboot BOOT, ne fastboot flash boot).
Flash kernela radi - ali ne radi hotboot kernela.
 
Poslednja izmena:
forum.xda-developers.com/showthread.php?t=1659584

Treba da raspakujes kernel.elf i da dobijes kernel i ramdisk da bi mogao da koristis fastboot boot
 
Nazad
Vrh Dno