Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save anibal/742799 to your computer and use it in GitHub Desktop.
Save anibal/742799 to your computer and use it in GitHub Desktop.
Guía de Actualización del Motorola Milestone a Android 2.2.1 (Froyo) con CyanogenMod 6.0.1 (Movilnet)

Guía de Actualización del Motorola Milestone de Android 2.0.1 a 2.1 a 2.2.1 (Cyanogenmod) para Movilnet

Tabla de contenidos

  • Actualizaciones a este documento
  • ¿Por qué actualizar tu celular a Froyo?
  • Overview
  • Honor a quien honor merece
  • Disclaimer
  • ¿Cómo colaborar?
  • Antes de empezar
  • Instalación de sbf_flash en nuestra PC
  • Flasheamos con el firmware Movilnet 2.1 FULL
  • Flasheamos con el firmware Telus Service 2.03.11 SERVICE
  • Flasheamos el Vulnerable (rooteable) Recovery
  • Instalamos Open Recovery (Androidiani)
  • Nandroid Backup
  • Instalamos CyanogenMod 6.1.0 for Milestone
  • Solución a problemas
  • Enjoy! :)

Actualizaciones a este documento

  • 21 de Diciembre del 2010. Agregada tabla de contenidos para dar una idea general del proceso.
  • 17 de Diciembre del 2010. Mergeado el fork 742799 de milmazz que incluye:
    • Agregada sección a solución de problemas (acceso a buzón de mensajes voz con *99)
    • Clarificación de las instrucciones para iniciar el modo Recovery.
    • Abundantes correcciones menores de descripciones y formateos.

¿Por qué actualizar tu celular a Froyo?

Después de la actualización sólo les puedo decir que no lo dejen para mañana,
el teléfono se siente más rápido, y se comporta mucho mejor. Se siente mucho
más fluido, en sentido en que no se queda “pegado” y el rendimiento de la batería
mejora dramáticamente.

Por otra parte Froyo está lleno de una cantidad de pequeños detalles que corrigen,
o mejoran nuestra experiencia usuario en forma dramática. En serio, el upgrade
vale la pena sin lugar a dudas.

Overview

El Motorola Milestone a diferencia del Droid tiene un bootloader crippled que
sólo iniciará Kernels firmados criptográficamente por Motorola (Gracias NOT!)

Esta limitación había hecho imposible instalar ROMs customizados, hasta que se
descubrió y explotó una vulnerabilidad que permite cargar un sistema modificado
desde la partición de recovery del teléfono. Y a través de este modo de recovery
se logra la instalación de actualización de CyanogenMod en su versión para
Milestone.

El camino largo a casa de abuela pues, cortesía de Motorola.

Honor a quien honor merece

Todo esto no me lo inventé yo, esta guía está basada _principalmente en la información
publicada en:

Disclaimer

Este procedimiento me funcionó a mí, esto no es garantía de que te funcione, ni
es mi responsabilidad cualquier desperfecto que pueda sufrir tu equipo.

Por otra parte no soy un experto en el tema, es posible que esta guía sufra de
errores, omisiones y muy probablemente para cuando la leas ya no esté al día con
la tecnología. Correcciones, contribuciones y críticas constructivas serán bien
recibidas.

¿Cómo colaborar?

Esta guía es un gist de Github es decir, básicamente un repositorio bajo
control de versiones, que adicionalmente puedes forkear, y actualizar para
posteriomente hacer un pull request si es tu gusto.

Por otra parte siéntete en libertad de escribirme a anibal@rojas.com.ve o
contactarme por Twitter en @anibal donde intentaré en la medida
de lo posible incorporar cualquier correción o mejora.

Y finalmente pueden dejar su comentario abajo, aunque requiere que se registren.

Antes de empezar

Chequea que:

  • Dispones de un PC ejecutando el Sistema Operativo GNU/Linux. En mi caso Ubuntu 9.04.
  • Tienes familiaridad básica con la línea de comandos en Linux.
  • Tienes un celular con la versión 2.0.1 del ROM oficial de Movilnet. Funciona también desde 2.1,
    omitir los pasos obvios.
  • Dispones de un cable USB para conectar el celular a tu PC.

Por otra parte, como vamos a descargar varios archivos y a descomprimirlos en el
proceso, vamos a crear una carpeta para dejar todo en un solo sitio.

$ cd
$ mkdir milestone
$ cd milestone/

Todos los comandos en esta guía asumen su ejecución desde esta carpeta a menos
que se especifique lo contrario.

Instalación de sbf_flash en nuestra PC

sbf_flash es la contrapartida Linux para el programa RSDLite de Windows,
que permite flashear la ROM nuestro Milestone a partir de la imagen contenida en un
archivo .sbf.

La primera referencia a esta herramienta la conseguí en Flashear Milestone desde Linux
publicada en el foro de AndroidVe. Más información en OPTICALDELUSION

Bueno, mucha charla así que manos a la obra. Lo primero será descargar el archivo:

$ wget http://dl.opticaldelusion.org/sbf_flash
--2010-12-11 18:12:19--  http://dl.opticaldelusion.org/sbf_flash
Resolving dl.opticaldelusion.org... 74.125.113.121
Connecting to dl.opticaldelusion.org|74.125.113.121|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: http://dl.opticaldelusion.org/sbf_flash?attredirects=0 [following]
--2010-12-11 18:12:19--  http://dl.opticaldelusion.org/sbf_flash?attredirects=0
Connecting to dl.opticaldelusion.org|74.125.113.121|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: http://8523743799584214644-a-opticaldelusion-org-s-sites.googlegroups.com/a/opticaldelusion.org/dl/sbf_flash?attachauth=ANoY7craQz_2xUOJhMtUY6HNVRT6hg67-je8Xt9XgMzQOrJK2MzXt_wX4uSj0m5eLWJwbOG6rO2X33QCaIo8LwXFYtq2ymO4Er2lqPTngQhppjXhhDIaSS8AuvPOwrQamDHLOv3ClKP7km6jgrfZpEsoRfVJC6aRUcnO8-dlFz01orgA2DBNJC-tpRVs2qSIzK2enLqiPwVa&attredirects=0 [following]
--2010-12-11 18:12:20--  http://8523743799584214644-a-opticaldelusion-org-s-sites.googlegroups.com/a/opticaldelusion.org/dl/sbf_flash?attachauth=ANoY7craQz_2xUOJhMtUY6HNVRT6hg67-je8Xt9XgMzQOrJK2MzXt_wX4uSj0m5eLWJwbOG6rO2X33QCaIo8LwXFYtq2ymO4Er2lqPTngQhppjXhhDIaSS8AuvPOwrQamDHLOv3ClKP7km6jgrfZpEsoRfVJC6aRUcnO8-dlFz01orgA2DBNJC-tpRVs2qSIzK2enLqiPwVa&attredirects=0
Resolving 8523743799584214644-a-opticaldelusion-org-s-sites.googlegroups.com... 74.125.157.137
Connecting to 8523743799584214644-a-opticaldelusion-org-s-sites.googlegroups.com|74.125.157.137|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://8523743799584214644-a-opticaldelusion-org-s-sites.googlegroups.com/a/opticaldelusion.org/dl/sbf_flash?attachauth=ANoY7craQz_2xUOJhMtUY6HNVRT6hg67-je8Xt9XgMzQOrJK2MzXt_wX4uSj0m5eLWJwbOG6rO2X33QCaIo8LwXFYtq2ymO4Er2lqPTngQhppjXhhDIaSS8AuvPOwrQamDHLOv3ClKP7km6jgrfZpEsoRfVJC6aRUcnO8-dlFz01orgA2DBNJC-tpRVs2qSIzK2enLqiPwVa&attredirects=0 [following]
--2010-12-11 18:12:20--  https://8523743799584214644-a-opticaldelusion-org-s-sites.googlegroups.com/a/opticaldelusion.org/dl/sbf_flash?attachauth=ANoY7craQz_2xUOJhMtUY6HNVRT6hg67-je8Xt9XgMzQOrJK2MzXt_wX4uSj0m5eLWJwbOG6rO2X33QCaIo8LwXFYtq2ymO4Er2lqPTngQhppjXhhDIaSS8AuvPOwrQamDHLOv3ClKP7km6jgrfZpEsoRfVJC6aRUcnO8-dlFz01orgA2DBNJC-tpRVs2qSIzK2enLqiPwVa&attredirects=0
Connecting to 8523743799584214644-a-opticaldelusion-org-s-sites.googlegroups.com|74.125.157.137|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 23722 (23K) [application/octet-stream]
Saving to: `sbf_flash'

Cambiamos los permisos para que el script sea ejecutable:

$ chmod +x sbf_flash

Y verificamos que funcione:

$ ./sbf_flash -v
SBF FLASH 1.11 (mbm)
Usage: ./sbf_flash <filename>

Flasheamos con el firmware Movilnet 2.1 FULL

¿Por qué el Movilnet 2.1 FULL? Primero porque mi celular vino con 2.0.1, y
realmente no me interesa conservar nada de lo que tengo en él.

¿Es indispensable? No estoy seguro, sencillamente la versión 2.1 parecía ser
la más popular en las diferentes referencias que encontré para ir a los MODs
Froyo.

Sin embargo, de acuerdo a nadlabak ( http://android.doshaska.net/rootable ) no
es necesario, y el .sbf SHOLS_U2_01.14.0 puede ser aplicado a
cualquier versión del firmware del Milestone

De cualquier manera, el procedimiento funciona para los que quieran mantener su
celular dentro de las actualizaciones “oficiales”.

Así que lo primero que haremos es descargar el archivo correspondiente:

$ wget https://rsddownload.motorola.com/download/SHLA_U2_03.05.0_USASHLSMNTVZLA02D.0R_PDS002_USASHLSMNTVZLAT_P032_A029_HWp2a_WIG136882_1FF.sbf.gz
--2010-12-14 22:47:21--  https://rsddownload.motorola.com/download/SHLA_U2_03.05.0_USASHLSMNTVZLA02D.0R_PDS002_USASHLSMNTVZLAT_P032_A029_HWp2a_WIG136882_1FF.sbf.gz
Resolving rsddownload.motorola.com... 173.223.81.223
Connecting to rsddownload.motorola.com|173.223.81.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104358920 (100M) [application/x-gzip]
Saving to: `SHLA_U2_03.05.0_USASHLSMNTVZLA02D.0R_PDS002_USASHLSMNTVZLAT_P032_A029_HWp2a_WIG136882_1FF.sbf.gz'

100%[======================================>] 104.358.920  119K/s   in 15m 37s 

2010-12-14 23:02:58 (109 KB/s) - `SHLA_U2_03.05.0_USASHLSMNTVZLA02D.0R_PDS002_USASHLSMNTVZLAT_P032_A029_HWp2a_WIG136882_1FF.sbf.gz' saved [104358920/104358920]

Ahora descomprimimos el archivo:

$ gunzip -d SHLA_U2_03.05.0_USASHLSMNTVZLA02D.0R_PDS002_USASHLSMNTVZLAT_P032_A029_HWp2a_WIG136882_1FF.sbf.gz

Chequeamos rápidamente el archivo .sbf resultante:

$ ls -la *.sbf
-rw-r--r-- 1 anibal anibal 154567746 2010-06-14 22:10 SHLA_U2_03.05.0_USASHLSMNTVZLA02D.0R_PDS002_USASHLSMNTVZLAT_P032_A029_HWp2a_WIG136882_1FF.sbf

Ya tenemos todo lo que necesitamos para esta primera actualización.

Desconectamos el celular de la PC mediante el procedimiento ordinario, lo
apagamos y lo prendemos mientras mantenemos oprimido el cursor hacia arriba en
el D-Pad, hasta que la pantalla se energiza. Debe mostrar una pantalla similar a:

Bootloader
90.74

Battery OK
OK to Program
Connect to USB
Data Cable

Ahora conectamos el celular al PC mediante el cable USB, de la forma
convencional, y la pantalla cambia para mostrar:

Transfer Mode:
USB

Ejecutamos el comando:

$ sudo ./sbf_flash SHLA_U2_03.05.0_USASHLSMNTVZLA02D.0R_PDS002_USASHLSMNTVZLAT_P032_A029_HWp2a_WIG136882_1FF.sbf
SBF FLASH 1.11 (mbm)

=== SHLA_U2_03.05.0_USASHLSMNTVZLA02D.0R_PDS002_USASHLSMNTVZLAT_P032_A029_HWp2a_WIG136882_1FF.sbf ===
00: RDL03 0x82000000-0x8204CFFF 2FC7 AP
01:  CG31 0xB01C0000-0xB01C47FF 24FE AP
02:  CG33 0xD13FB000-0xD1BB783F E479 AP
03:  CG34 0xB03A0000-0xB03A47FF CC19 AP
04:  CG35 0xB07A0000-0xB0A607FF 1011 AP
05:  CG36 0xF0B7D000-0xF0C0183F DA20 AP
06:  CG37 0xE4034000-0xE40379BF 13C6 AP
07:  CG39 0xD1D64000-0xD9E4C83F EB96 AP
08:  CG40 0xDD2E4000-0xDD2E483F FDFF AP
09:  CG42 0xB06A0000-0xB06DFFFF 73E3 AP
10:  CG45 0xB0B20000-0xB0E207FF 4D87 AP
11:  CG47 0xB0EE0000-0xB12A07FF B7AF AP
12:  CG53 0xCFD80000-0xCFD807FF FDFF AP
13:  CG61 0xB0640000-0xB06607FF CBEC AP

Milestone found.
 >> uploading RDL03
Uploading: 100% OK
 >> verifying ramloader
 -- OK
 >> executing ramloader
Milestone found.
 >> sending erase
 >> uploading CG31
Uploading: 100% OK
 >> uploading CG33
Uploading: 100% OK
 >> uploading CG34
Uploading: 100% OK
 >> uploading CG35
Uploading: 100% OK
 >> uploading CG36
Uploading: 100% OK
 >> uploading CG37
Uploading: 100% OK
 >> uploading CG39
Uploading: 100% OK
 >> uploading CG40
Uploading: 100% OK
 >> uploading CG42
Uploading: 100% OK
 >> uploading CG45
Uploading: 100% OK
 >> uploading CG47
Uploading: 100% OK
 >> uploading CG53
Uploading: 100% OK
 >> uploading CG61
Uploading: 100% OK
 >> verifying CG31
 -- OK
 >> verifying CG33
 -- OK
 >> verifying CG34
 -- OK
 >> verifying CG35
 -- OK
 >> verifying CG36
 -- OK
 >> verifying CG37
 -- OK
 >> verifying CG39
 -- OK
 >> verifying CG40
 -- OK
 >> verifying CG42
 -- OK
 >> verifying CG45
 -- OK
 >> verifying CG47
 -- OK
 >> verifying CG53
 -- OK
 >> verifying CG61
 -- OK
 >> rebooting

Durante el proceso de actualización que dura algunos minutos, la pantalla del
celular muestra:

SW Update
In Progress..

El celular se reinicia automáticamente, y ya podemos usarlo con la versión 2.1.
Debido a que usamos un .sbf FULL el teléfono perdió culaquier
configuración previa que tuviera.

Si consultamos Home > Menu > Settings > About phone esto nos muestra:

Firmware version: 2.1-update1

Flasheamos con el firmware Telus Service 2.03.11 SERVICE

Desde nuestro browser (sorry!) descargamos el .sbf correspondiente
a el firmware Telus 2.1.3.11 Service desde http://www.megaupload.com/?d=MPADVYX9

A mí no me gustan mucho esas descargas apócrifas desde MegaUpload y similares, pero
no conseguí un enlace a un sitio “oficial”, así que no queda más remedio. De
todas maneras pueden verificar el hash md5 después de que terminen la descarga,
just in case:

$ md5sum GOT_U2_03_11\ TELUS-SERVICE.zip
9a44a86693e788ad7c62a367b164a97d  GOT_U2_03_11 TELUS-SERVICE.zip

Si el que les resulta a usted coincide con el mío 9a44a86693e788ad7c62a367b164a97d
pues mejor.

Recuerden que tenemos que moverlo a nuestra carpeta ~/milestone/
donde hemos estado trabajando, para entonces descomprimirlo:

$ unzip GOT_U2_03_11\ TELUS-SERVICE.zip
Archive:  GOT_U2_03_11 TELUS-SERVICE.zip
  inflating: GOT_U2_03_11 TELUS-SERVICE.sbf

Desconectamos el celular de la PC mediante el procedimiento ordinario, lo
apagamos y lo prendemos mientras mantenemos oprimido el cursor hacia arriba en
el D-Pad, hasta que la pantalla se energiza. Debe mostrar una pantalla similar a:

Bootloader
90.74

Battery OK
OK to Program
Connect to USB
Data Cable

Ahora conectamos el celular al PC mediante el cable USB, de la forma
convencional, y la pantalla cambia para mostrar:

Transfer Mode:
USB

Ejecutamos el comando (ojo con el backslash para escapar el espacio en blanco
en el nombre del archivo):

$ sudo ./sbf_flash GOT_U2_03_11\ TELUS-SERVICE.sbf
SBF FLASH 1.11 (mbm)

=== GOT_U2_03_11 TELUS-SERVICE.sbf ===
00: RDL03 0x82000000-0x8204CFFF 4B0B AP
01:  CG31 0xB01C0000-0xB01C47FF 24FE AP
02:  CG33 0xD13FB000-0xD1BB783F E479 AP
03:  CG34 0xB03A0000-0xB03A47FF CC19 AP
04:  CG35 0xB07A0000-0xB0A607FF 3105 AP
05:  CG36 0xF0B7D000-0xF0BE083F 4794 AP
06:  CG39 0xD1D64000-0xDB01683F 9272 AP
07:  CG40 0xDD2E4000-0xDD2E483F FDFF AP
08:  CG42 0xB06A0000-0xB06DFFFF 73E3 AP
09:  CG45 0xB0B20000-0xB0E207FF 6EE7 AP
10:  CG47 0xB0EE0000-0xB12A07FF 679E AP
11:  CG53 0xCFD80000-0xCFD807FF FDFF AP
12:  CG61 0xB0640000-0xB06607FF CBEC AP

Milestone found.
 >> uploading RDL03
Uploading: 100% OK
 >> verifying ramloader
 -- OK
 >> executing ramloader
Milestone found.
 >> sending erase
 >> uploading CG31
Uploading: 100% OK
 >> uploading CG33
Uploading: 100% OK
 >> uploading CG34
Uploading: 100% OK
 >> uploading CG35
Uploading: 100% OK
 >> uploading CG36
Uploading: 100% OK
 >> uploading CG39
Uploading: 100% OK
 >> uploading CG40
Uploading: 100% OK
 >> uploading CG42
Uploading: 100% OK
 >> uploading CG45
Uploading: 100% OK
 >> uploading CG47
Uploading: 100% OK
 >> uploading CG53
Uploading: 100% OK
 >> uploading CG61
Uploading: 100% OK
 >> verifying CG31
 -- OK
 >> verifying CG33
 -- OK
 >> verifying CG34
 -- OK
 >> verifying CG35
 -- OK
 >> verifying CG36
 -- OK
 >> verifying CG39
 -- OK
 >> verifying CG40
 -- OK
 >> verifying CG42
 -- OK
 >> verifying CG45
 -- OK
 >> verifying CG47
 -- OK
 >> verifying CG53
 -- OK
 >> verifying CG61
 -- OK
 >> rebooting

Durante el proceso de actualización que dura algunos minutos, la pantalla del
celular muestra:

SW Update
In Progress..

El celular se reinicia automáticamente, y ya podemos usarlo con la versión actualizada.
Debido a que usamos un .sbf SERVICE el teléfono conserva cualquier
configuración que tuviera previamente. En este caso la configuración de fábrica
de Movilnet.

Si consultamos Home > Menu > Settings > About phone esto nos muestra:

Firmware version: 2.1-update1
Build number: SHOLS_U2_03.11.0

Flasheamos el Vulnerable (rooteable) Recovery

Este .sbf sólo afectará la paritción de Recovery a partir de la que
podremos instalar el ROM custom de CyanogenMod. Para esto utilizaremos la última
recomendada por nadlabak en http://android.doshaska.net/rootable

Opcionalmente se puede usar el sbf que llega hasta el bootloader 90.74
dependiendo del bootloader que reporte el teléfono. No debería hacer diferencia.

También puedes revisar: http://modmymobile.com/forums/564-motorola-milestone-general/530112-new-sbf-flash-only-rootable-recovery.html

Apuntamos nuestro browser a: http://www.mediafire.com/?jzzjmmrvwkz

Lo que debe descargar el archivo: vulnerable_recovery_only_RAMDLD90_78.zip

De nuevo, por si acaso, verificamos el hash md5 del archivo descargado:

$ md5sum vulnerable_recovery_only_RAMDLD90_78.zip 
b075353a6e18ef3b515ed3d73d03e484  vulnerable_recovery_only_RAMDLD90_78.zip

Que movemos a nuestra carpeta ~/milestone/ donde hemos estado
trabajando, para luego decomprimirlo:

$ unzip vulnerable_recovery_only_RAMDLD90_78.zip
Archive:  vulnerable_recovery_only_RAMDLD90_78.zip
  inflating: vulnerable_recovery_only_RAMDLD90_78.sbf

Desconectamos el celular de la PC mediante el procedimiento ordinario, lo
apagamos y lo prendemos mientras mantenemos oprimido el cursor hacia arriba en
el D-Pad, hasta que la pantalla se energiza. Debe mostrar una pantalla similar a:

Bootloader
90.74

Battery OK
OK to Program
Connect to USB
Data Cable

Ahora conectamos el celular al PC mediante el cable USB, de la forma convencional,
y la pantalla cambia para mostrar:

Transfer Mode:
USB

Ejecutamos el comando:

$ sudo ./sbf_flash vulnerable_recovery_only_RAMDLD90_78.sbf
SBF FLASH 1.11 (mbm)

=== vulnerable_recovery_only_RAMDLD90_78.sbf ===
00: RDL03 0x82000000-0x8204CFFF F125 AP
01:  CG47 0xB0EE0000-0xB12A07FF 679E AP

Milestone found.
 >> uploading RDL03
Uploading: 100% OK
 >> verifying ramloader
 -- OK
 >> executing ramloader
Milestone found.
 >> sending erase
 >> uploading CG47
Uploading: 100% OK
 >> verifying CG47
 -- OK
 >> rebooting

Durante el proceso de actualización que dura algunos segundos, la pantalla del
celular muestra:


SW Update
In Progress..

El celular se reinicia automáticamente, sin dejar evidencia de que se haya
realizado ningún tipo de actualización. Esta es el último de los flasheos
“preliminares”

Instalamos Open Recovery (Androidiani)

Esto es un fork del Openrecovery de Skrilax_CZ para los Motorola Milestone,
realizado por 89luca89 and Azhad, actualizado al 25/11/2010 con soporte para
1.46, con lo que soporta las últimas versiones de Android de Motorola, en
particular Froyo 2.2.1 y CyanogenMod 6.

Hay otros forks del Open Recovery, esta la usé por tener bastante actividad en
Github, el proyecto se ve saludable y con desarrollo activo.

Para más información visita http://code.google.com/p/androidiani-openrecovery/

Descargamos el Open Recovery:

$ wget http://androidiani-openrecovery.googlecode.com/files/OpenRecovery-3_3.zip
--2010-12-12 09:05:50--  http://androidiani-openrecovery.googlecode.com/files/OpenRecovery-3_3.zip
Resolving androidiani-openrecovery.googlecode.com... 74.125.159.82
Connecting to androidiani-openrecovery.googlecode.com|74.125.159.82|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 26506715 (25M) [application/x-zip]
Saving to: `OpenRecovery-3_3.zip.1'

Conectamos el celular al PC mediante el cable USB, de la forma convencional,
y seleccionamos la opción de acceso a la tarjeta SD. Tal y como si fueramos a
transferir un archivo convencional.

Ahora descomprimimos el contenido del archivo del Open Recovery en la raíz de
la tarjeta SD en nuestro celular. En mi caso el celular se monta en
/media/B8B7-2DDB/.

$ unzip OpenRecovery-3_3.zip -d /media/B8B7-2DDB/

Desconectamos el celular de la PC mediante el procedimiento ordinario, lo
apagamos. Ahora mientras mantenemos presionado el botón de la cámara le damos
al botón de encendido del teléfono, esperamos a que la pantalla se energize (aparece el logo de Mototorola) y soltamos los botones.

Esperamos hasta que salga un ícono de advertencia (un triángulo con signo de exclamación dentro) al lado de un ícono del celular, esto es lo que se conoce como modo de recuperación.

Una vez dentro del modo de recuperación debemos presionar el botón de volumen hacia arriba (incrementar) y el botón de la cámara a la vez, basta hacerlo una sola vez. En este momento en la pantalla del celular debe mostrar algo como:

Android system recovery <2e>

Use d-pad to highlight: center to select.

reboot system now
apply sdcard:update.zip
wipe data/factory reset
wipe cache partition

E:Can't open /cache/recovery/command

NOTA: Si no logras entrar en modo de recuperación te recomiendo ver el
siguiente video a partir del minuto 5, segundo 40.

No te preocupes por el mensaje E:Can't open /cache/recovery/command,
es sólo una advertencia.

Esto se conoce como el modo Recovery Lite, para acceder a todas las opciones que
te ofrece Open Recovery, tienes que aplicar el update, es decir la segunda opción.

Puedes navegar las opciones con el D-Pad, aunque alternativamente
puedes usar las teclas del volumen para subir y bajar en las mismas.

Una vez que hayas resaltado la segunda opción apply sdcard:update.zip
oprime el botón de selección del D-Pad. La pantalla mostrarará una secuencia de
mensajes que empiezan con algo similar a Install from SD card ...,
para rápidamente pasa a mostrar el menú completo de Open Recovery:

Motorola Milestone Open Recovery
version 1.46
Created by Skrilax_CZ
Use d-pad to highlioght: center to select.

Mod Created by 89luca89 & Azhad

Main Menu

Reboot System
Settings
USB Mass Storage Mode

----------------
Eclair Modding Menu
Froyo 2.2.1 Modding Menu
Menu Application Management
Menu Utility
Zipaligns Compatible with Eclair and Froyo
-----------------
Console
Change Baseband
Nandroid
Application menu
Root Phone
Run Script
Apply Update
Wipe Dalvik Cache
________________________________________________________________________________
Creating main menu...
Done.

¡Listo! Ya tenemos acceso a todo las opciones que nos ofrece Open Recovery.

Nandroid Backup

Antes de proceder a instalar CyanogenMod recomiendo hacer un respaldo completo,
cosa que podemos lograr con una de las opciones que ofrece Open Recovery. De
esta forma si tenemos un problema más adelante, podemos restablecer el respaldo
para devolvernos a un punto “estable”.

Para más información pueden consultar Android Rooted: What is Nandroid Backup?

En el menú de Open Recovery seleccionala opción ‘Nandroid’, ahora el menu
muestra las opciones:

Nandroid

Go Back
Backup
Restore
Delete

Selecciona la opción ‘Backup’, ahora el menu muestra las opciones:

Go Back
Backup All
Backup Selected
--------------------------------- Options --------------------------------------
[ ] Reboot when finished
[ ] Compress backup
-------------------------------- Partitions ------------------------------------
[ ] System
[ ] Data
[ ] Cache
[ ] Cust
[ ] Cdrom
[ ] Boot
[ ] Baseband Software
[ ] Linux Bootloader
[ ] Logo
[ ] Device Tree
________________________________________________________________________________
Calling initializer 00_dos2unix_scripts.sh file.
Creating main menu...
Done.

Marca las opciones ‘Reboot when finished’ y ‘Compress backup’. El último es
opcional, si están desesperados por terminar este proceso no la marquen.

[x] Reboot when finished
[x] Compress backup

Y ahora selecciona la opción ‘Backup All’, comprimir el backup es lento, te debe
dar chance me montar par de arepas, y se debe mostrar una secuencia similar a:

__ Shell script...
/bin/nandroid-backup_openrecovery.sh --all
+------------------------------------------------------------------------------+
+                                                                              +
+                        Open Recovery Nandroid Backup                         +
+                                                                              +
+------------------------------------------------------------------------------+
There is at least 400 MiB on the sdcard.
backup Directory:
/sdcard/nandroid/openrecovery/OR-BWL1dSDCcr-20101212-1438
boot: Dumping...done
boot: Generating MD5...done
bpsw: Dumping...done
bpsw: Generating MD5...done
lbl: Dumping...done
lbl: Generating MD5...done
logo: Dumping...done
logo: Generating MD5...done
devtree: Dumping...done
devtree: Generating MD5...done
system: Dumping...done
system: Generating MD5...done
data: Dumping...done
data: Generating MD5...done
cache: Dumping...done
cache: Generating MD5...done
cust: Dumping...done
cust: Generating MD5...done
cdrom: Dumping...done
cdrom: Generating MD5...done
ext2: Skipping.
Compressing the backup, may take a bit of time.
please wait

Al finalizar el proceso el teléfono se reinicia como fue especificado en las
opciones.

Importante: Los respaldos son particularmente útiles cuando se colocan en
un medio diferente del respaldado. Así que el siguien paso será copiar el
respaldo desde la tarjeta SD a nuestro PC.

Conectamos nuestro teléfono al PC, especificamos ‘Memory Card Management’ y
copiamos el directorio de respaldo, en mi caso:

$ cp -rp /media/B8B7-2DDB/nandroid/openrecovery/OR-BWLldSDCcr-20101212-1438/ ~/milestone/

Ya tenemos un respaldo del Movilnet 2.1 FULL con el SERVICE update de Telus,
incluyendo el Vulnerable Recovery.

Instalamos CyanogenMod 6.1.0 for Milestone

El home del fork de CyanogenMod para el Motorola Milestone es mantenido por
nadlabak en http://android.doshaska.net/cm6?page=4

¿Qué descargar? Visita el repositorio de código del proyecto
http://code.google.com/p/cyanogenmod4milestone/ y sigue el link ‘Download’

En nuestro caso:

$ wget http://cyanogenmod4milestone.googlecode.com/files/update-0.04-10.12.12-cm-6.1.0-Milestone-signed.zip
--2010-12-12 09:18:07--  http://cyanogenmod4milestone.googlecode.com/files/update-0.04-10.12.12-cm-6.1.0-Milestone-signed.zip
Resolving cyanogenmod4milestone.googlecode.com... 74.125.157.82
Connecting to cyanogenmod4milestone.googlecode.com|74.125.157.82|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 90218837 (86M) [application/x-zip]
Saving to: `update-0.04-10.12.12-cm-6.1.0-Milestone-signed.zip'

100%[========================================================================================================>] 90.218.837  71,3K/s   in 19m 26s 

2010-12-12 09:37:33 (75,6 KB/s) - `update-0.04-10.12.12-cm-6.1.0-Milestone-signed.zip' saved [90218837/90218837]

Las aplicaciones de Google vienen aparte, y las podemos descargar directamente
desde el sitio de CyanogenMod.

wget http://android.d3xt3r01.tk/cyanogen/gapps/gapps-mdpi-20101020-signed.zip
--2010-12-12 09:43:17--  http://android.d3xt3r01.tk/cyanogen/gapps/gapps-mdpi-20101020-signed.zip
Resolving android.d3xt3r01.tk... 89.46.240.254
Connecting to android.d3xt3r01.tk|89.46.240.254|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 17513908 (17M) [application/zip]
Saving to: `gapps-mdpi-20101020-signed.zip'

100%[========================================================================================================>] 17.513.908   119K/s   in 2m 31s  

2010-12-12 09:45:48 (114 KB/s) - `gapps-mdpi-20101020-signed.zip' saved [17513908/17513908]

Conectamos nuestro teléfono al PC, especificamos ‘Memory Card Management’ y
copiamos los archivos que acabamos de descargar. No es necesario descomprimirlos.
En mi caso:

$ cp update-0.04-10.12.12-cm-6.1.0-Milestone-signed.zip /media/B8B7-2DDB/OpenRecovery/updates/
$ cp gapps-mdpi-20101020-signed.zip /media/B8B7-2DDB/OpenRecovery/updates/

Desconectamos el celular de la PC mediante el procedimiento ordinario, lo
volvemos a apagar para acceder al Open Recovery con todas sus opciones, como
se decribió en “Open Recovery (Androidiani)”

Con el celular apagado, mientras mantenemos presionado el botón de la cámara le damos
al botón de encendido del teléfono, esperamos que salga el logo de Motorola y
dejamos de presionar el botón de encendido del teléfono, sin dejar de mantener
presionado el botón de la cámara, esperamos hasta que salga un ícono de un
triángulo y un signo de exclamación dentro, esto es lo que se conoce como modo
de recuperación
. Una vez dentro del modo de recuperación debemos presionar
el botón de volúmen hacia arriba y el botón de la cámara a la vez, basta
hacerlo una sola vez. En este momento en la pantalla del celular debe mostrar
el menú del Recovery Lite:

Android system recovery <2e>

Use d-pad to highlight: center to select.

reboot system now
apply sdcard:update.zip
wipe data/factory reset
wipe cache partition

E:Can't open /cache/recovery/command

Recuerda que el mensaje E:Can't open /cache/recovery/command,
es sólo una advertencia. No has echado nada a perder, deja de temblar.

Con la teclas del volumen o del D-pad resalta la segunda opción
apply sdcard:update.zip y oprime el botón de selección del D-Pad.

La pantalla mostrarará una secuencia de mensajes que empiezan con algo similar
a Install from SD card ..., para rápidamente pasa a mostrar el
menú completo de Open Recovery:

Motorola Milestone Open Recovery
version 1.46
Created by Skrilax_CZ
Use d-pad to highlioght: center to select.

Mod Created by 89luca89 & Azhad

Main Menu

Reboot System
Settings
USB Mass Storage Mode

----------------
Eclair Modding Menu
Froyo 2.2.1 Modding Menu
Menu Application Management
Menu Utility
Zipaligns Compatible with Eclair and Froyo
-----------------
Console
Change Baseband
Nandroid
Application menu
Root Phone
Run Script
Apply Update
Wipe Dalvik Cache
________________________________________________________________________________
Creating main menu...
Done.

Oculta al final del menú está la opción Wipe Data / Factory Reset
navega hasta esa opción y oprime el botón de selección del D-Pad. El menú debe
cambiar a algo similar a:

Confirm wipe of all user data?
  THIS CAN NOT BE UNDONE.
  
No
No
No
No
No
Yes -- delete all user data
No 
No

¿Adivinas cuál opción vas a seleccionar? Sí, es correcto, navega hasta la opción
Yes -- delete all user data y oprime el botón de selección del D-Pad.

Debe aparecer un mensaje similar a:


-- Wiping data

Que significa que cualquier dato asociado a tu configuración del celular acaba
de ser destruido, dejando el teléfono como de fábrica de nuevo. Eso incluye
cualquier configuración de fábrica de Movilnet, pero no te preocupes que ya la
vamos a recuperar.

De regreso en el menú anterior vas a seleccionar las opciones Wipe Dalvik Cache y después Wipe Cache Partition. Ninguna de estas dos
opciones require de confirmación ni tendrá ningún efecto sobre la configuración
de tu celular.

De regreso en el menú principal del Open Recovery, vamos a seleccionar la opción
Apply Update, lo que debe mostrar un nuevo menú, similar a:

Apply Update

Go Back

update-0.04-10.12.12-cm-6.1.0-Milestone-signed.zip
gapps-mdpi-20101020-signed.zip

Seleccionamos la primera opción de update
update-0.04-10.12.12-cm-6.1.0-Milestone-signed.zip'

Y Open Recovery nos pide la confirmación:

Confirm installing update package?
update-0.04-10.12.12-cm-6.1.0-Milestone-signed.zip

Yes
No

Después de haber llegado a este punto no tiene sentido acobardarse, así que
selección Yes. La pantalla muestra ahora:

-- Installing from sdcard...
Finding update package...
OPening update package...
Installing update...
Welcome to CyanogenMod 6.1.0-Milestone

Install from sdcard complete.

Y nos retorna al menú anterior. Desde donde aprovecharemos de instalar las
aplicaciones de Google. Seleccionando la opción gapps-mdpi-20101020-signed.zip
que también nos pide confirmación:

Confirm installing update package?
gapps-mdpi-20101020-signed.zip

Yes
No

Después de confirmar, la pantalla muestra:

-- Installing from sdcard...
Finding update package...
OPening update package...
Installing update...
Installing Google Apps..
Installation Complete!

Install from sdcard complete.

Ahora vas regresar al menú principal y vas a repetir la secuencia de los Wipes
que hicimos anteriormente:

  • Wipe Data / Factory Reset
  • Wipe Dalvik Cache
  • Wipe Cache Partition

Antes de reiniciar el teléfono, vamos a aprovechar de ajustar las bandas para
recuperar la configuración de Movilnet. Para esto en el menú principal
seleccionamos la opción Change Baseband.

Apply Country Basebands

Go Back
Argentina-Personal.zip
Brazil.zip
Canada.zip
French.zip
Germany.zip
Greece.zip
Israel-Calcomm.zip
Italy.zip
Singapore.zip
Telus.zip
Thai.zip
Venezuela-Mobilnet.zip

Ignoramos el error ortográfico y seleccionamos la opción
Venezuela-Mobilnet.zip, que nos solicita confirmación:

Confirm installing update package?
Venezuela-Mobilnet.zip

Yes
No

Seleccionan la opción Yes y la pantalla despliega:


-- Installing from sdcard...
Finding update package...
OPening update package...
Installing update...
Unpacking ...

Install from sdcard complete.

Ahora sólo queda reiniciar el teléfono, para ello seleccionamos Go Back en el menú actual (Apply Country Basebands) y posteriormente
seleccionamos la opción Reboot System desde el menú principal.

Dejamos que el teléfono se reinicie normalmente, nos maravillamos con el nuevo
splash screen que parece un espermatozoide indeciso alrededor de un óvulo
robótico y ya tenemos nuestro Motorola Milestone actualizado a Froyo
(Android 2.2.1) con CyanogenMod 6.1.0.

En este momento se le pedirá configurar su cuenta Google, para ello proceda como
indica el asistente.

Una vez finalizada la configuración de su cuenta Google si consultamos en
Home > Menu > Settings > About phone se nos muestra:

Android versiob: 2.2.1
Mod version: CyanogenMod-6.1.0-Milestone

En este punto deben tener conectividad con Movilnet a nivel de voz y datos,
incluyendo 3G.

Les recomiendo que repitan el respaldo con “Nandroid Backup” si van a seguir
experimentando con su teléfono, mediante el procedimiento descrito anteriormente.

Solución a problemas

Al momento de intentar llamar al buzón de voz obtuve un mensaje similar al siguiente:
Connection problem or invalid MMI code, para solventar la situación sustituye *9 en
Settings > Call settings > Voicemail settings > Voicemail number por *99

Enjoy! :)

Espero que esta guía les haya sido de utilidad, recuerden que pueden forkearla en
GitHub para corregirla, mejorar o actualizarla y no olviden hacer un pull request.

Saludos!


Aníbal Rojas – @anibalrojas
About me: http://www.google.com/profiles/anibalrojas
About my work: http://hasmanydevelopers.com

@Rossana04
Copy link

Hola, se me presento un inconveniente en el punto Flasheamos con el firmware Telus Service 2.03.11 SERVICE la respuesta que obtengo desde la consola es la siguiente:

./sbf_flash GOT_U2_03_11\ TELUS-SERVICE.sbf
SBF FLASH 1.19 (mbm)
http://opticaldelusion.org

=== GOT_U2_03_11 TELUS-SERVICE.sbf ===
00: RDL03 0x82000000-0x8204CFFF 4b0b AP
01: CG31 0xB01C0000-0xB01C47FF 24fe AP
02: CG33 0xD13FB000-0xD1BB783F e479 AP
03: CG34 0xB03A0000-0xB03A47FF cc19 AP
04: CG35 0xB07A0000-0xB0A607FF 3105 AP
05: CG36 0xF0B7D000-0xF0BE083F 4794 AP
06: CG39 0xD1D64000-0xDB01683F 9272 AP
07: CG40 0xDD2E4000-0xDD2E483F fdff AP
08: CG42 0xB06A0000-0xB06DFFFF 73e3 AP
09: CG45 0xB0B20000-0xB0E207FF 6ee7 AP
10: CG47 0xB0EE0000-0xB12A07FF 679e AP
11: CG53 0xCFD80000-0xCFD807FF fdff AP
12: CG61 0xB0640000-0xB06607FF cbec AP

Motorola AP Flash found.

uploading RDL03: 100%
verifying ramloader
-- OK
executing ramloader
waiting for phone:

Y se queda esperando... no se que hacer!

Agradeceria tu ayuda!

@abr4xas
Copy link

abr4xas commented Jan 2, 2013

Saludos, estoy siguiendo esta guía https://nasj.wordpress.com/2012/03/01/actualizar-motorola-milestone-cyanogenmod-7 para cambiar el bootloader del Motorola A853 y obtengo esos errores, alguna sugerencia?
Gracias.

[root@dx2500 android]# chmod +x sbf_flash 
[root@dx2500 android]# ./sbf_flash vulnerable_recovery_only_RAMDLD90_78.sbf
error unpacking ./sbf_flash
+ cd /tmp/sbf_flash_15198_7807
+ dd bs=11 skip=1
+ cpio -i
./sbf_flash: línea 3: cpio: no se encontró la orden
+ unzip -q /dev/stdin Linux
[/dev/stdin]
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
note:  /dev/stdin may be a plain executable, not an archive
unzip:  cannot find zipfile directory in one of /dev/stdin or
        /dev/stdin.zip, and cannot find /dev/stdin.ZIP, period.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment