Op mijn HTC Desire heb ik meer en meer apps
geïnstalleerd ... en liep daarmee tegen de grenzen van het interne geheugen
aan. Het is mogelijk om dit op te lossen door een deel van je SD-kaart te
gebruiken als extensie op het interne geheugen, maar hiervoor moet je je
toestel 'rooten'. Dit is het verkrijgen van 'root'-rechten, dit zijn
beheerdersrechten waarmee je meer kan dan met de normale gebruikersrechten op
de HTC. Voorbeelden hiervan zijn de
geheugenindeling veranderen, speciale apps installeren, screen capture doen,
proxy gebruiken, of zelfs andere versies van Android (custom ROMS)
installeren.
Ps: alle besproken handelingen zijn volledig op eigen
risico! Werk in uitvoering; en heb zelf alleen nog maar optie 1
gedaan.
Van een collega kreeg ik onderstaand recept:
Hi Kees, hieronder wat info over het rooten van je HTC Desire.
Ten eerste kun je het beste de openingspost van dit topic
doorlezen. Hier wordt o.a. het volgende uitgelegd:
Het verschil tussen alleen rooten en S-off. Kort gezegd komt
het er op neer dat je in het eerste geval root access krijgt, maar een aantal
dingen nog niet mogelijk zijn. Zo is de 'systeempartitie' read-only en kun je
daar dus niets in wijzigen. Ook kun je geen andere HBOOT (partitie-indeling
intern geheugen) installeren. Met S-off (security off, zie 'What
is S-off') heb je volledig toegang tot alle delen van je telefoon.
De verschillende manieren om data naar SD kaart te verplaatsen (A2SD,
A2SD+, D2EXT, Data++).
Een optie die hier niet genoemd wordt, is overigens AD2SDX. Deze optie heb
ik echter alleen nog maar gezien in kombinatie met de ROM die ik nu gebruik.
Meer info over AD2SDX vind je hier: http://forum.xda-developers.com/showpost.php?p=18911182
"Nandroid" backups: dit zijn volledige backups van de ROM, incl. alle data,
apps, contacts, settings etc. Zo'n backup kan vanuit het zogenaamde recovery
menu worden gemaakt of teruggezet (meer hierover later).
Zoals al eerder aangegeven heb je grofweg twee opties: 1) alleen rooten en
data naar SD kaart verplaatsen; 2) all-the-way gaan, een uitgebreidere/nieuwere
ROM kiezen en evt. een andere HBOOT (partitie-indeling).
Optie 1:
Alleen Rooten
Je huidige Froyo ROM (Android 2.2) kan je vervangen door een geroote versie
van dezelfde ROM, waarna je dan A2SD (apps to SD card) kunt installeren.
Hiermee is in ieder geval je ruimtegebrek opgelost. Je hebt dan slechts root
access nodig en een pre-rooted ROM (S-off is niet nodig).
[Kees] Ik heb deze (simpelste) optie gekozen, omdat voor mij alleen de grootte
van het interne geheugen van belang was; extra features heb ik op het moment
nog niet nodig. Zal vast nog wel eens komen (zoals ook bij mijn Odys tablet)... Wel heb ik de iets nieuwere Gingerbread ROM
(Android 2.3) gekozen.
Voorbereiding
Download de pre-rooted stock ROM image (Froyo 2.2, of als
je dat zou willen de Gingerbread 2.3
versie) en sla deze op je SD-kaart op:
Gingerbread
2.3: Download de "3.14.405.1 INIT.D ROM" zip file
(3.14.405.1-signed.zip, 136 MB, md5: de99e70682971b183ed65abc6e2fc62d) plus de
bijhorende "5.17.05.23 radio ROM" (32.56.00.32U_5.17.05.23-signed.zip, 11MB,
738a94c891a6a10082c8bf9f5c4884ba), en de file "add_a2sd-gb-1-signed.zip" en evt
alignment-ext4.zip
[Windows only] Verwijder de HTC tools van je PC.
Alternatief (wat ik gedaan heb) is dat je er voor zorgt dat de tools bij
het booten van je PC niet automatisch opstarten en dus niet in de weg zitten
bij het rooten)
[Windows only] Installeer de fastboot driver op je PC (download),
zodat de telefoon later door je PC herkend wordt als deze in het zogenaamde
fastboot menu zit.
SD-kaart
formatteren
Heb een 4 GByte SD-kaart, die ik in twee partities heb gesplitst (vanaf mijn
Ubuntu Linux-computer waar ik het SD-kaartje in heb gestoken). De kaart is bij
mij zichtbaar als /dev/sdf en dus niet als de genoemde
/dev/mmcblk0 (da's in de Android omgeving).
Voor het formatteren van de SD_kaart had ik eerst het recept op deze
SDcard
formatting HOWTO gebruikt, maar dat leek toch niet helemaal te werken...
Dan maar gewoon met gparted. Daarna op de HTC het
alignment-ext4.zip script geïnstalleerd om de alignment optimaal
te zetten, en er op de PC weer een ext3 van gemaakt (deze ROM ondersteunt nog
geen ext4). Kan vast handiger...
2.5GB is nu nog steeds als SD-kaart/USB memory-stick zichtbaar (FAT32
formatted), de resterende 1 GB is nu een ext3 partitie 'sd-ext'
voor extra geheugen voor Android apps.
Van te voren had ik alle data even naar de PC gekopieerd (ook de
verborgen/hidden files!), daarna de belangrijke data teruggezet: alles is er
weer!
Het echte
werk
Root je telefoon m.b.v. de tool "unrevoked" (download, uitleg). Run
unrevoked, deze geeft je tijdelijke root toegang in je huidige ROM en
installeert ook een andere recovery image (ClockworkMod) die je later de
mogelijkheid geeft om andere ROMS te installeren
[Kees] En helaas, mijn HTC wilde niet. Eerst de melding "ERROR: n = -1,
errno = 19 (No such device)", en daarna "Error: failed to get
root. Is your firmware too new?" Had ik toch pas niet die 2.29.405.14
update binnen moeten halen. Dat houd in dat ik ofwel een oude ROM met versie
405.5 terug moet zetten met een RUU (al mijn data
weg); ofwel aan de slag moet met Revolutionary. Eerst maar eens de RUU route (ook
handig om te weten hoe ik terug kan naar de officiële ROM), zie Terug naar vroeger... Daarna werkte
unrevoked prima.
Maak (nu je root access hebt) een backup van al je programma's,
instellingen, SMSjes, contacten, etc. naar de SD kaart. Ik gebruik hiervoor My
Backup pro, maar Titanium Backup of een ander programma volstaat vast ook.
[Kees] Die stap heb ik (door de RUU route) dus even gemist... Vond ik overigens
helemaal niet erg; zo een keer per jaar grote schoonmaak kan helemaal geen
kwaad (de echt belangrijke data heb ik uiteraard gebackup'd, en ik weet wel
welke programma's ik heb geïnstalleerd, zie mijn HTC
pagina).
Gebruik een of ander partitioneringsprogramma (gparted?) om de huidige
FAT32 partitie op je SD kaart te verkleinen en maak daarna een EXT3 partitie
aan achter de FAT32 partitie. Alternatief is om alles van je SD kaart even naar
je PC te kopiëren en daarna de bestaande partities weg te gooien en
achtereenvolgens een FAT32 en een EXT3 partitie aan te maken.
Schakel je telefoon uit
Schakel je telefoon weer aan en druk meteen de volume down button in. Je
komt dan in het fastboot menu uit. Met de volumetoetsen kun je dan door de
opties in het menu lopen, selecteer in het menu de optie "recovery". Met de
power button bevestig je de optie. Je komt vervolgens in het recover menu
(ClockworkMod). Hier heb je meerdere opties. Wederom kun je hier met de
volumetoetsen (of met de trackball) doorheen lopen. Bevestigen doe je hier door
op de trackball te drukken (en uit een submenu kom je teug in het hoofdmenu met
de back button). Kies achtereenvolgens de opties:
Kies "backup and restore" -> "backup": hiermee maak je een volledige
(nandroid) backup van je hele ROM incl. alle apps en data. Deze backup komt op
je SD kaart (FAT32 partitie) te staan. Terugzetten kan later vanuit hetzelfde
menu.
Vervolgens wis je alles m.b.v. de opties "wipe data/factory reset", "wipe
cache partition" en "advanced" -> "wipe dalvik cache"
Je kunt een zip file (die een ROM image of een bepaalde mod bevat)
installeren m.b.v. de optie "install zip from sdcard". Je krijgt dan een
browser te zien, wederom gebruik je de volume button, de trackball en de back
button voor de navigatie. Door de zip te selecteren (druk op de trackball)
installeer je deze.
Installeer optioneel de alignment mod (zie attachment, ik weet niet meer
waar deze vandaan komt). Dit doet twee dingen: het verandert de ext3 partitie
op je SD kaart in een ext4 partitie zonder journalling; tevens zorgt het ervoor
dat de sectoren in je partitie netjes aligned zijn met de blocks van de Flash
kaart. Al met al levert het een beetje extra performance op.
Installeer achtereenvolgens de nieuwe ROM image en de A2SD mod
[Kees] Ik heb voor de Gingerbread ROM gekozen (zie bovenaan); heb de
eerder genoemde zip file (plus de radio zip en de a2sd zip) op de sdcard in de
normale FAT partitie gezet; en vanuit recovery eerst de Gingerbread ROM, toen
de radio ROM, en toen de a2sd ROM geïnstalleerd.
Na installatie reboot je de telefoon (optie "reboot system now" in het
recovery menu)
De nieuwe ROM boot, dit kan enige tijd duren (gemiddeld zo'n 10 min)
[Kees] Eerste keer booten duurt wel even (sowieso voor alles de tijd nemen).
Checken (Settings -> About phone -> Software information): ja, Android
version 2.3.3 (in plaats van 2.2.2) plus nieuwe radio!!!
Zet als de ROM geboot is, je backup van je data, apps etc terug
[Kees] Om de een of andere reden lukte het allemaal niet in een keer, in de zit
dat de ext3-partitie niet direct zichtbaar leek. Maar, ondertussen zie ik (in
Titanium Backup Root) toch dat er wel degelijk effect is: ik heb de meeste
apps weer teruggezet; en toch is er nog 100 Mbyte intern geheugen over, terwijl
de free space op de SD card ext3 partitie van 1024 Mbyte naar 860 Mbyte is
gegaan (alleen Angry Birds en Angry Birds seasonal nemen samen al meer dan 40
Mbyte).
A2SD, wat doet dat?
[Kees] Enkele details bekeken op de PC met behulp van QuickSSHd,
makkelijker dan op zo'n klein schermpje in
Android Terminal Emulator werken (kan wel, en met su - kan je
als root werken). Met mount is nu te zien dat de sd-ext
partitie is gemount (met wat speciale instellingen, om het schrijven naar de
SD-kaart te minimaliseren):
En als ik een ls -al /data doe zie ik onder andere de redirects
naar de sd-ext partitie zoals aangemaakt door a2sd. De data
hierin zijn door a2sd gekopieerd van /data naar
/sd-ext, waarna er door a2sd links in /data
naar deze gekopieerde mappen is gemaakt. Hiermee denkt Android (en elk Linux
systeem) dat onderstaande mappen gewoon in /data in intern
geheugen staan, maar in werkelijkheid staan deze dus op je sd-kaart. Mocht je
je overigens afvragen wat het a2sd script nu precies doet; je kan hem
vinden als /etc/init.d/04apps2sd.
Vandaag (Feb 2014): app 73 MByte, dalvik-cache 90 MByte, en
app-private 4 MB; dit heb je dus met a2sd uitgespaard.
/data/data wordt niet verplaatst, en is bij mij (na ook
onderstaande truk) nu 90 MByte (check met commando du -d 1
/data/data); heb ik zo'n 50 Mbyte vrij.
Je kunt (op eigen risico) handmatig mappen verplaatsen naar de
ext3 partitie, bijvoorbeeld mappen in /data die
niet door a2sd meegenomen worden. Zo gebruik ik TuneIn
Radio als radioplayer, maar deze gebruikt zo'n 37 MByte... en dat in
intern geheugen. Dus verplaatst naar de /sd-ext folder in een voor
dit doel gemaakte folder handcopied, op de onderstaande manier (en
daarna werkt TuneIn gewoon :-) ).
# Vanuit QuickSSHd; ga in Android
Terminal Emulator eerst naar root mode met: su -
mkdir /sd-ext/handcopied
chmod 777 /sd-ext/handcopied
mv /data/data/tunein.player /sd-ext/handcopied
ln -s /sd-ext/handcopied/tunein.player /data/data/tunein.player
ls -al /data/data/tunein.player
# lrwxrwxrwx 1 0
0 32 Feb 16 15:50 tunein.player ->
/sd-ext/handcopied/tunein.player
Hetzelfde gedaan voor NU.nl (10
MB) en Dropbox
(7 MB). Wel zijn de apps vanaf SD-kaart flink trager, Skype heb ik niet
overgezet uit angst voor verlies in spraakkwaliteit (toch eens proberen?).
Optie 2:
S-off
Maak je telefoon S-off en kies een willekeurige ROM (bijv. uit de lijst van
dit
topic). Zelf gebruik ik de Runnymede ROM
(in rood de stappen die anders zijn t.o.v. optie
1).
[Kees] Ik heb deze optie dus niet zelf
uitgetest!!!!!
Voorbereiding
Download een ROM die je leuk lijkt, bijvoorbeeld uit
de lijst van dit topic.
Zoals gezegd gebruik ik zelf de Runnymede
ROM.
Verwijder de HTC tools van je PC.
Alternatief (wat ik gedaan heb) is dat je er voor zorgt dat de tools bij
het booten van je PC niet automatisch opstarten en dus niet in de weg
zitten).
Installeer de fastboot driver op je PC (download),
zodat de telefoon later door je PC herkend wordt als deze in het zogenaamde
fastboot menu zit.
Het echte
werk
Root je telefoon m.b.v. de tool "revolutionary"
(download). Run revolutionary en
genereer op de web sit evan revolutionary een key. De tool geeft je volledige
toegang tot je telefoon en installeert ook een andere recovery image
(ClockworkMod) die je later de mogelijkheid geeft om andere ROMS te
installeren. Iets meer uitleg over de procedure vind je
hier.
Maak nu je root access hebt een backup van al je programma's, instellingen,
SMSjes, contacten, etc. naar de SD kaart. Ik gebruik hiervoor My Backup pro,
maar Titanium Backup of een ander programma volstaat vast ook.
Gebruik een of ander partitioneringsprogramma (gparted?) om de huidige
FAT32 partitie op je SD kaart te verkleinen en maak daarna een EXT3 partitie
aan achter de FAT32 partitie. Alternatief is om alles van je SD kaart even naar
je PC te kopiëren en daarna de bestaande partities weg te gooien en
achtereenvolgens een FAT32 en een EXT3 partitie aan te maken.
Schakel je telefoon uit
Schakel je telefoon weer aan en druk meteen de volume down button in. Je
komt dan in het fastboot menu uit. Met de volumetoetsen kun je dan door de
opties in het menu lopen, selecteer in het menu de optie "recovery". Met de
power button bevestig je de optie. Je komt vervolgens in het recover menu
(ClockworkMod). Hier heb je meerdere opties. Wederom kun je hier met de
volumetoetsen (of met de trackball) doorheen lopen. Bevestigen doe je hier door
op de trackball te drukken (en uit een submenu kom je teug in het hoofdmenu met
de back button). Kies achtereenvolgens de opties:
Kies "backup and restore" -> "backup": hiermee maak je een volledige
backup van je hele ROM incl. alle apps en data. Deze backup komt op je SD kaart
(FAT32 partitie) te staan. Terugzetten kan later vanuit hetzelfde menu.
Vervolgens wis je alles m.b.v. de opties "wipe data/factory reset", "wipe
cache partition" en "advanced" -> "wipe dalvik cache"
Installeer optioneel de alignment mod (zie attachment, ik weet niet meer
waar deze vandaan komt). Dit doet twee dingen: het verandert de ext3 partitie
op je SD kaart in een ext4 partitie zonder journalling; tevens zorgt het ervoor
dat de sectoren in je partitie netjes aligned zijn met de blocks van de Flash
kaart. Al met al levert het een beetje extra performance op.
Je kunt een zip file (die een ROM image of een bepaalde mod bevat)
installeren m.b.v. de optie "install zip from sdcard". Je krijgt dan een
browser te zien, wederom gebruik je de volume button, de trackball en de back
button voor de navigatie. Door de zip te selecteren (druk op de trackball)
installeer je deze.
Installeer indien gewenst een andere HBOOT
image.
Let op: je moet een HBOOT image gebruiken die door de gekozen ROM
ondersteund wordt. Meestal is dit de stock HBOOT (dan hoef je niets te
veranderen), maar vaak ook de CM7r2, die je hier vindt. Sommige ROMs ondersteunen beiden, je moet
dan alleen wel de juiste ROM image downloaden.
Installeer de nieuwe ROM image en eventuele bijbehorende mods
Na installatie reboot je de telefoon (optie "reboot system now" in het
recovery menu)
De nieuwe ROM boot, dit kan enige tijd duren (gemiddeld zo'n 10 min)
Zet als de ROM geboot is je backup van je data, apps etc terug.
Terug
naar vroeger...
Mocht je terug willen naar de oude situatie: hier vind je de
originele HTC ROMS voor de Desire. Deze ROMs worden vanaf de PC geïnstalleerd
op je telefoon, middels de zogenaamde RUU (ROM upgrade utility); Als je optie 2
gekozen hebt, moet je waarschijnlijk wel eerst even de originele HBOOT image en
de geroote stock Froyo 2.2 ROM
(van optie 1) installeren vanuit het recovery menu, anders herkent de RUU tool
je telefoon niet als een HTC Desire.
[Kees] Ik werk normaal met Ubuntu/Linux, maar hiervoor ben ik even naar Windows
teruggegaan, was de makkelijkste route. Alle andere stappen heb ik vanuit
(32-bit!) Ubuntu gedaan, geen gedoe met gammele USB drivers en conflicten in
Windows.
Tenslotte
Het is ook handig om de ADB tool te installeren op je PC. Je vindt deze in
de Android SDK. Alternatief is dat je de tool los downloadt (je kunt deze als
je goed zoekt wel vinden), de tool werkt namelijk ook standalone (zonder SDK).
Met deze tool kun je bijvoorbeeld vanaf de PC de systeemlog ("adb
logcat") bekijken van je telefoon terwijl deze boot of gewoon
draait.
Ik ben vast nog het een en ander vergeten, maar je hebt nu alvast wat
leesvoer :-)