Hej!
UPDATE: Nu på Wiki:n i bättre form!
Tänkte dela med mig av ett litet trick som gjorde att jag kunde roota min orginal 3 ROM utan att flasha eller förlora inställningar etc...
Först, lite bakgrund:
För att få "root" så behöver man ett unix/linux kommando som heter "su" (super user). Det man alltså behöver göra är att meka in detta i sin telefon på rätt ställe (med rättigheter så att alla kan köra det). För att kunna ändra i "/system/bin" (där man vill ha detta kommando) måste man ju vara root...här har vi ett problem! Lösningen på detta är att ändra i filen (default.prop) så att den tillåter root från adb-shell. Denna fil (default.prop) ligger ju i ram-filsystemet, och alltså i "boot.img".
Så...det jag gjorde var att:
1. Installera Android SDK och verifier att alla drivers etc funkar. (USB Debug etc...) Detta finns det andra tutorials/trådar om så jag förutsätter att ni klarar detta.
2. Sedan laddade jag hem "daldroid" ROM:en för orginal Magic från 3. Plockade ut "boot.img" ur denna och kopierade till "SDK-tools" directory under namnet "daldroid-boot.img". Ladda även hem "su.zip" i från denna tråd och packa upp detta i samma directory!.
3. Startar telefonen i "fastboot", dvs starta med "BACK+POWER" så ni ser att bootloader (som alltså också är orginal...inte ändrad) hamnar i "Fastboot USB".
4. Sedan kör man "fastboot boot daldroid-boot.img". Detta kommer att starta om telefonen, men inte använda "boot.img" från flash utan den ni just startade. Så det ni gör här är alltså att bara vänta klart tills ni kommer till "PIN-code" för SIM etc.
5. Starta ett debug-shell med: "adb shell" från SDK tools.
6. Här skall man nu "mounta om" filsystemet så att man kan ändra på det, dvs få "rw" rättigheter. I rutan nedanför ser ni också att jag gjort ett test genom att skriva ut "default.prop". I denna ser vi att "ro.secure" är "0", detta betyder att "adb shell" skall få root access...väldigt bra! :-D
Code:
# cat default.prop
cat default.prop
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=0
ro.allow.mock.location=0
ro.debuggable=1
persist.service.adb.enable=1
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
# exit
Sedan gör ni det ni ser i rutan ovan, dvs mount:a om filsystemet...och sedan "exit" ut ur "adb shell".
7. Kopiera upp en "su" till rätt ställe i filsystemet enligt nedan:
Code:
C:\android-sdk-windows-1.5_r2\tools>adb push su /system/bin/su
604 KB/s (86944 bytes in 0.140s)
8. Dags att starta en "adb shell" igen för att sätta lite rättigheter på filen vi laddade upp.
Code:
C:\android-sdk-windows-1.5_r2\tools>adb shell
# cd /system/bin
# chmod 6755 su
# sync
# reboot
9. Klart! :-D Nu kan du vänta på att den startar om (och använder din orginal boot.img utan root). Efter detta funkar det att ladda hem MarketEnabler och köra den enligt andra instruktioner...
Om ni vill testa att det funkar med att "få" root genom "su" så kan ni starta ett "adb shell" efter att den startat om och skriva in detta:
Code:
C:\android-sdk-windows-1.5_r2\tools>adb shell
$ cat default.prop
cat default.prop
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=1
ro.allow.mock.location=0
ro.debuggable=0
persist.service.adb.enable=0
$ su
su
#
Här ser ni att "ro.secure" åter igen är "1"...vi har en $-prompt i stället för en #-propmt...dvs ingen root. Skriver man sedan "su" så blir det som i vanlig Unix/Linux...dvs man får ett nytt shell med root access.
Edit: Om man alltid vill ha root access i "adb shell" kan man ju flasha in "daldroid-boot.img" permanent. Det kan också göras med "fastboot". Typ med "fastboot flash daldroid-boot.img". Detta har jag dock inte gjort och bör testas på egen risk.
Lycka till!
Gruffy