--- layout: post title: !binary |- QWdnaW9ybmFyZSBmaXJtd2FyZSBBbmRyb2lkIHN1IEhUQyBEcmVhbSBHMSBU aW0gdGVzdGF0byBhIEFuZHJvaWQgMS42IEN5YW5vZ2VuTW9k created: 1258809683 comments: true categories: !binary |- aGFyZHdhcmUgaXRfaXQ= --- UPDATE: ho pubblicato un aggiornamento per Android 2.1 + CyanogenMod 5.x Questo lunedì mi è arrivato l'HTC Dream marchiato Tim che in questi giorni si trova scontato al Mediaworld (289 euro, di listino sta a 349). Purtroppo, come spesso capita con gli smartphone che montano un software modificato dagli operatori, la versione è vecchia, non più mantenuta e spesso priva di alcune applicazioni "strategiche" (google talk, chat, sincronizzazione contatti gmail). Con Tim inoltre, non è possibile accedere nativamente come utente root e poter riflashare liberamente il proprio Android. Quindi, prima di poter aggiornare il software, è necessario sfruttare una qualche falla per potere accedere come utente privilegiato. Girovagando per la rete, ho scoperto una comunità italiana Android in cui, oltre ad un blog, mettono a disposizione un wiki con diverse istruzioni sul come aggiornare il proprio droid, incluso il mio. Peccato che le immagini Android che mettono a disposizione sian piuttosto obsolete e anche le istruzioni mi son sembrate, con il senno di poi, più complesse del dovuto. Cercherò qui di ricostruire i passi da effettuare per poter mettere una versione di Android decentemente aggiornata e funzionale. Hardware:
$ ./tools/adb devices
List of devices attached
HT935NG08417 device
Se il vostro device viene riportato, siete pronti per poter utilizzare Fastboot
$ wget http://blog.scorpionworld.it/wp-content/uploads/2009/11/boot.zip
$ unzip boot.zip
Accendi il telefono utilizzando il tasto Power + Camera
$ ./tools/fastboot boot boot.img
Attendi il caricamento di Android...
$ ./adb shell
Adesso sei collegato al tuo Android con privilegi di root:
# id
uid=0(root) gid=0(root)
Passiamo il filesystem /system da sola lettura a lettura/scrittura, e creiamo una copia della shell però con il flag setuid attivo (che ci permetterà di avere una shell root senza esser root)
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
# cat /system/bin/sh > /system/bin/su
# chmod 4755 /system/bin/su
# exit
Adesso siamo pronti per poter flashare il nostro device con un versione di Android custom.
Così a naso, sembra che il miglior Android mantenuto dalla comunità è CyanogenMod, e anche qui c'è un nutrito wiki con la procedura per installarlo (upgrade da firmware con root).
$ ./tools/adb shell
# su
# flash_image recovery /sdcard/cm-recovery-1.4.img
# exit