UPDATE 27/10/2011: El contenido de esta guía puede estar desfasado para terminales nuevos con HBOOTS incompatibles con unrevoked. En este caso, se recomienda usar http://revolutionary.io/ que además de paso hace S-OFF. Guía en español para este método: http://www.elandroidelibre.com/2011/08/revolutionary-finalmente-trae-el-root-y-s-off-en-1-click-para-htc-desire-wildfire-sensation-evo-y-muchos-ms.html
Versión PDF disponible: http://www.multiupload.com/FVE06QO6PH
Esta guía va enfocada a todos aquellos poseedores de un HTC Desire con ganas de aprender y trastear un poco con tan maravilloso teléfono. No será necesario un gran conocimiento previo del funcionamiento del móvil, aunque sí se requerirán ciertos conocimientos generales de Ubuntu - ya se explicará esto más adelante.
Está basada en mi propia experiencia con el tema, de modo que intentaré ser lo más claro y conciso posible, tratando de dejar claros los puntos donde quizá yo tuve más complicación en su día. Seguro que siempre hay formas de explicarlo mejor, pero se hará lo que se pueda. Por supuesto se admiten sugerencias para mejorar este artículo.
Si lo que buscas es, en resumen, una guía para novatos, has venido al lugar indicado. OJO: los pasos que a continuación se indicarán NO son válidos para otros teléfonos, ya sean Nexus One, HTC Desire HD, HTC Desire Z, u otros. Únicamente funcionarán de forma adecuada en un HTC Desire. Empecemos pues aclarando algunos términos que usaremos posteriormente (si ya estás familiarizado con la terminología y estás decidido a rootear, salta al Paso 1).
-
Root: Denominamos rootear a "obtener acceso root" de nuestro terminal. Es algo heredado de los sistemas operativos basados en Linux/UNIX, y significa simplemente conseguir permisos de administrador que nos permiten hacer cosas que de otra forma no podríamos debido a las restricciones de Android.
-
A2SD+: Es el método más común en las roms hoy en día de instalar las aplicaciones en la SD. Utiliza un enlace simbólico entre carpetas para hacer creer al Sistema Operativo que están instaladas en la memoria interna. Es necesaria una partición ext.
-
ROM: Es una memoria de sólo lectura en la que se almacenan únicamente datos muy concretos, generalmente y como es el caso, el firmware del dispositivo. Al flashear una rom, lo que estamos haciendo es cambiar el contenido de esta memoria que, de otra forma, permanecería invariable.
-
Flashear: Se podría decir coloquialmente que es equivalente de instalar. Esto no es correcto técnicamente, pero en esencia el resultado es "instalar" otra rom (cambiar el firmware) en nuestro teléfono. Esto se realiza mediante el recovery.
-
Recovery: Es un modo de arranque al que se accede encendiendo desde el HBOOT. Hay varios recoverys, pero su función es la misma. Desde él podemos flashear nuevas roms, kernels, radios u otros archivos válidos, realizar backups completos de nuestra rom, particionar la sd, y varias opciones más que no conviene explicar ahora para no liar demasiado el asunto.
-
HBOOT: Es, más o menos, el equivalente en Android a la BIOS de un PC. Se accede a él encendiendo el teléfono con la combinación de teclas Volumen Abajo + Power. Desde aquí se accede, entre otras cosas, al recovery.
-
Backup: Copia de seguridad, ya sea de los datos de nuestras aplicaciones, de los ajustes del sistema, o total. Generalmente se usan aplicaciones de terceros para realizarlo.
-
Nandroid: Es un tipo especial de backup. Se trata de una copia de seguridad de todo el sistema, incluyendo la rom actual. Es lo más parecido a realizar un backup con el Norton Ghost en un PC.
-
OTA: Abreviatura para "Over The Air". Es el sistema de actualizaciones oficiales que se distribuyen automáticamente a través de WiFi o 3G.
-
Wipe: Término que se usa para hacer referencia a la "limpieza" de parte o la totalidad de los datos del teléfono, perdiendo así configuraciones, aplicaciones, etc. Se realiza generalmente en el cambio de una rom a otra desde el recovery.
-
Brickear: Del inglés "brick", que significa "ladrillo". Como el propio nombre indica, consiste en dejar el móvil completamente inservible y con la única función de pisapapeles. Con el método actual es prácticamente imposible brickear el teléfono, ya que en el 99'9% de los casos hay formas de recuperarlo.
-
Ext: Sistema de archivos propio de los sistemas basados en Linux/UNIX.
Vamos con otro apartado importante antes de comenzar el proceso de rooteo propiamente dicho. Quizá alguien aún esté indeciso y esto le puede ayudar a decantarse por el sí o por el no.
-
Poder instalar aplicaciones que de otra forma no podríamos.
-
Desinstalar aplicaciones indeseadas integradas por nuestro operador.
-
Hacer screenshots sin necesidad de aplicaciones de terceros.
-
Posibilidad de realizar backups completos del sistema.
-
Modificar la frencuencia de reloj de la CPU.
-
Y por supuesto, posibilidad de cambiar la rom por otra de nuestro agrado.
-
Dejaremos de recibir actualizaciones vía OTA.
-
Pérdida de garantía (no es del todo cierto puesto que el proceso es reversible)
Vistos los puntos explicativos anteriores (o no), ya va siendo hora de entrar en materia. Lo primero de todo quiero avisar de que para el tutorial usaré Ubuntu como Sistema Operativo. La razón es muy sencilla; El proceso de rooteo mediante Windows requiere varios pasos intermedios con la finalidad de reemplazar los drivers HBOOT de nuestro teléfono, y por tanto es un proceso bastante más laborioso y sobretodo, complicado para novatos.
Como ya he comentado, será necesario contar con Ubuntu para seguir este tutorial al pie de la letra. Si ya dispones de él, puedes saltar al punto siguiente, de lo contrario, continúa leyendo.
Nos dirigimos a la página de Ubuntu y seleccionamos en los desplegables la versión adecuada para nuestro ordenador; en mi caso, Ubuntu 10.10 y 64 bits. Posteriormente le damos al gran botón naranja de la derecha y comenzará la descarga.
Una vez tengamos la imagen del cd de Ubuntu, tenemos varias opciones:
-
Instalarlo en una Máquina Virtual usando VMWare o VirtualBox.
-
Instalarlo de forma paralela a nuestro Sistema Operativo habitual.
-
Utilizarlo como LiveCD sin necesidad de instalación y sin cambios permanentes en nuestro sistema (recomendado)
La instalación de Ubuntu es un tema que no voy a cubrir aquí. Hay multitud de guías en internet que explican fantásticamente cómo hacerlo sin riesgos. Asumiendo pues que ya tenemos Ubuntu preparado y funcionando con cualquiera de los tres métodos anteriores, podemos pasar al siguiente punto.
Desde Ubuntu, accedemos a la página web de unrevoked la cual debería identificar automáticamente que estamos bajo Linux. Hacemos click en Download for Linux y guardamos el archivo en la carpeta "Descargas" (guardarlo en Descargas no es estrictamente necesario, pero tomaremos como referencia esta carpeta para sucesivos pasos. Si estás familiarizado con el entorno de Ubuntu, siéntete libre de guardarlo donde más te convenga). Por último nos dirigimos a la carpeta donde hayamos descargado el archivo y veremos "reflash.tar.gz". Esto es un archivo comprimido, con lo cual simplemente damos doble click y lo descomprimimos en la misma carpeta, de forma que en la carpeta "Descargas" tengamos disponible el archivo "reflash".
Por otro lado, debemos también preparar el teléfono. Nos aseguraremos de que está marcado que al conectarse al pc, por defecto lo haga en modo carga y que no nos pregunte. Esto se hace en Ajustes -> Conectar a PC -> Tipo de conexión predeterminada -> Sólo cargar y desactivamos la opción "Preguntarme". Así mismo debemos activar el modo depuración, lo cual se hace en Ajustes -> Aplicaciones -> Desarrollo -> Depuración USB.
Con esto ya lo tenemos todo preparado para iniciar realmente el proceso de rooteo.
Una vez realizados los pasos previos, sólo nos quedan un par de cosas y ya tendremos nuestro flamante Desire rooteado. Veréis lo sencillo que es.
Comenzamos con el teléfono desconectado del ordenador. Abrimos una terminal de Ubuntu y nos colocamos en la carpeta donde hayamos descargado el archivo de unrevoked. En nuestro caso es la carpeta "Descargas", por tanto:
- cd Descargas
La terminal de Linux es case sensitive, es decir, aseguraos de escribir los nombres tal cual, incluyendo mayúsculas y minúsculas o de lo contrario no los reconocerá como válidos.
Ahora debemos ejecutar el archivo reflash con permisos de administrador, para ello hacemos:
- sudo ./reflash
Os pedirá la contraseña de administrador, la introducís (no veréis nada, ni asteriscos, pero no os preocupéis) y pulsáis Enter. Si como en mi caso os dice que la contraseña no es válida, haced lo siguiente:
- sudo sh
- Introducimos la contraseña y pulsamos Enter.
- sudo ./reflash
Si todo ha ido bien, veremos la siguiente ventana:
Vemos que abajo indica "Recovery image: ClockworkMod Recovery". Este es el recovery que se flashea por defecto en el proceso de root si nosotros no le indicamos lo contrario. Si deseamos flashear otro recovery, este es el momento. Los dos más usados son ClockworkMod y Amon-Ra. Personalmente me gusta más el Amon-Ra, pero la verdad es que es indiferente usar uno u otro. Si queréis cambiar el recovery al Amon-Ra, podéis bajarlo desde aquí y en unrevoked vamos a File -> Custom recovery y lo seleccionamos.
Ahora ya podemos conectar el teléfono mediante el cable USB (recordad tenerlo preparado como se ha explicado en el punto 1.2) y automáticamente comenzará por fin el proceso. Puede durar 2 o 3 minutos y el terminal se reiniciará un par de veces, esto es normal.
Si todo ha transcurrido sin problemas, deberíamos tener el teléfono rooteado, felicidades! Ahora puedes desconectarlo y entrar al módo recovery encendiendo el teléfono con la combinación de teclas Volumen Abajo + Power y posteriormente eligiendo "Recovery". Deberías entonces estar bien en ClockworkMod o Amon-Ra, según lo que hayas elegido en el paso previo.
Desde aquí tenemos acceso a multitud de funciones, algunas de las cuales nos serán de gran utilidad de cara a nuestro siguiente reto, flashear una nueva rom.
Imagino que si habéis hecho todo lo anterior no es por aburrimiento, sino que vuestra intención final es cambiar la rom para probar nuevas cosas, descubrir funcionalidades y trastear un poco. El proceso de flasheo en sí mismo no tiene ningún misterio, y una vez sepamos flashear roms, el procedimiento es prácticamente el mismo para flashear radios, kernels u otros archivos aceptados por el recovery como nuevos teclados o add-ons para nuestra rom. Dejémonos pues de rollos y vamos al lio.
La verdad es que lo más coñazo de flashear una rom es esta parte. Podríamos saltarla perfectamente, pero imagino que no queremos perder nuestros datos y aplicaciones en el cambio. Si a ti particularmente no te importa, puedes pasar al siguiente punto sin problemas.
Bien, lo primero que tenemos que hacer es un backup de nuestras apps, datos, sms y todas esas cosas que no queremos que se vayan al garete con el flasheo. Seguramente habréis oído hablar de Titanium Backup, una aplicación que sirve precisamente para esto, hacer copias de seguridad de todo con un click, con la desventaja de que necesita permisos de root. Y pensaréis: "eh, genial! Si ya soy root!". Pues sí pero no. Si intentáis instalar dicha aplicación os pedirá permisos root y al intentar concedérselos os dirá que tararí. Esto tiene una explicación, y es que a pesar de haber rooteado el teléfono, la rom que viene con el teléfono no es una rom rooteada; necesitamos ambas cosas, y la primera es necesaria para conseguir la segunda.
Por tanto necesitamos otra aplicación y, particularmente, soy fan de MyBackup Pro. Es de pago pero dispone de una versión demo de 30 días que para lo que nosotros queremos nos basta y nos sobra. Podemos bajarla de aquí o con el siguiente código QR.
De todas formas hay una pega: no guarda los datos de las aplicaciones, de forma que al restaurar tendremos las apps como si fuera su primer uso. La única que conozco que hace esto es Titanium Backup pero como ya he comentado, en el primer flasheo nos será de poca ayuda. Si de todas formas queréis probar suerte, podéis obtenerla aquí.
Hay que recordar que si tenemos nuestra cuenta de google sincronizada con Android (deberíais, ya estáis tardando si no la tenéis), no nos hará falta hacer backup de contactos ni del calendario, puesto que se encuentra en la nube.
Bien, supongamos que ya tenemos realizado el backup con MyBackup Pro. Lo siguiente que vamos a hacer es ir un paso más allá y realizar un backup de nuestra rom al completo - un nandroid. Para ello apagamos el teléfono y lo encendemos con la combinación Volumen Abajo + Power que ya deberíamos conocer. En el menú que nos aparece nos moveremos utilizando las teclas del volumen para subir y bajar y utilizaremos la tecla power para aceptar. Nos movemos hasta la opción "Recovery" y aceptamos.
Si al rootear no cambiamos el recovery, estaremos en este momento en el ClockworkMod (CWM en adelante); si por el contrario elegimos el Amon-Ra, este será el que veamos en pantalla. Voy a tomar como referencia el Amon-Ra porque es el que yo he usado, pero en CWM es muy similar. Para navegar por los menús del recovery usaremos el trackpad óptico, y para aceptar haremos click en él. Entramos en Backup/Restore y elegimos nand backup. Esperamos a que termine y ya tenemos nuestro terminal tal cual lo hemos dejado totalmente a salvo de posibles catástrofes futuras.
Con esto ya hemos terminado los preparativos y podemos proceder al siguiente paso.
- ¿A qué vienen el asterisco y los paréntesis, os preguntaréis? Este paso es únicamente necesario en ciertas circunstancias. Como estoy suponiendo que es el primer flasheo voy a explicarlo también, pero en el futuro, es muy posible que no haga falta (depende de la rom que flasheeis).
Como acabo de comentar, para cada rom habrá que particionar la SD de una u otra forma. Esto es algo que debéis averiguar por vuestra cuenta en el foro del que hayáis bajado la rom, en la página del autor, etc. Voy a explicar la forma de particionar que yo considero más extendida hoy en día (la cual consiste en una partición swap, una ext y una en fat) y suponiendo que lo hacemos sobre la tarjeta de 4GB que viene incluída con el Desire.
OJO: No es necesario realizar estos pasos desde el recovery como yo voy a explicar. Si lo preferís podéis usar cualquier software de PC/Mac que realice estas funciones como el GParted que viene con el LiveCD de Ubuntu usado previamente en esta guía para rootear. Este proceso eliminará todos los datos de la tarjeta, por lo que es altamente recomendable copiar todo su contenido en el ordenador para poder recuperarlo después.
Los pasos a seguir para hacer las particiones necesarias son los que siguen (usando Amon-RA):
Entramos al recovery encendiendo con Volumen Abajo + Power.
Seleccionamos Partition sdcard.
Seleccionamos Partition SD.
Seguimos las instrucciones que aparecen en pantalla y elegimos los siguientes valores:
o Partición swap: 32 o 64Mb serán suficientes.
o Partición ext2: 500Mb (es la partición en la que se instalarán las apps, podemos incrementar o disminuir este espacio en función de nuestras necesidades).
o Partición fat32: automáticamente el resto de la tarjeta sd se formateará en fat32.Desde el mismo menú que hemos particionado, hacemos un par de cosas más:
o Seleccionamos SD:ext2 to ext3 y completamos la acción.
o Seleccionamos SD:ext3 to ext4 y completamos la acción.Reiniciamos seleccionando Reboot system now y ya tendremos las particiones listas para usar.
Lo primero es, obviamente, elegir una rom. ShortyStyle ha recopilado una fantástica colección en este tema donde tendremos variedad a la hora de elegir. Recordad que según la rom que seleccionéis, es posible que debáis reparticionar vuestra SD acorde a sus requisitos.
Para esta ocasión, tal y como tenemos particionada la SD si hemos seguido los pasos anteriores, podemos elegir la MIUI-Au que es una modificación de una de las roms más usadas. Los pasos para flashear son siempre los mismos, y son los siguientes:
- Desde el recovery, seleccionamos la opción USB-MS toggle que activará el modo de almacenamiento masivo del teléfono.
- Conectamos el terminal al ordenador mediante el cable USB.
- Colocamos el archivo .zip de la rom en la raíz de la SD.
- Desconectamos el terminal y volvemos a pulsar en USB-MS toggle para desactivar el modo de almacenamiento masivo.
- En el recovery entramos en Wipe y hacemos wipe only /data, wipe only /cache y wipe only Dalvik-cache. (En nuestro caso este paso no habría sido necesario ya que al particionar la sd se borran todos los datos. Si además estás actualizando a una nueva versión de la misma rom, no será necesario hacer wipe data).
- Volvemos atrás y entramos en Flash zip from sdcard y seleccionamos el archivo que acabamos de copiar.
- Aceptamos y esperamos a que se complete el proceso.
- Volvemos atrás y reiniciamos (el primer reinicio puede tardar un par de minutos) y ya hemos terminado!
Si todo ha ido como debiera, deberíamos estar ya en nuestra nueva rom, por lo que sólo nos falta restaurar los backups que muy convenientemente habíamos hecho. Para ello echaremos mano a la copia completa de la sd que tenemos en nuestro ordenador, y copiaremos la carpeta "rerware" en el caso de que hayamos usado el MyBackup o "titaniumbackup" en el caso de éste último.
A continuación instalamos de nuevo la aplicación correspondiente desde el Market y procedemos a restaurar nuestros datos.
Y ahora sí, se acabó, ¿no era tan difícil verdad? Espero que haya servido y sirva de ayuda a la gente que no acaba de tener claro cómo realizar el proceso completo.
========================================================================
Los próximos pasos son completamente opcionales y añadidos posteriormente a la realización de la guía anterior.
Generalmente, cuando alguien se inicia en el mundo del rooteo y flasheo de su teléfono suelen ser suficiente con hacer lo anteriormente explicado. El resultado es un teléfono rooteado y con una rom distinta con nuevas funcionalidades y estética.
Sin embargo, en ocasiones este cambio tiene sus inconvenientes. Es posible que tengamos problemas de conectividad 3G, WiFi o de cobertura; es posible que tengamos problemas de rendimiento o de batería. Es en estos casos en los que debemos plantearnos los siguientes flasheos, según la circunstancia.
Cabe destacar que, cada vez que flasheamos una nueva rom, ésta sobreescribirá el kernel que tuviéramos previamente. Sin embago la radio permanecerá intacta entre flasheo de roms.
Tip of the day: ¿Cómo sé qué version de kernel tengo? ? Menú -> Ajustes -> Acerca del teléfono -> Kernel versión.
OJO: Esta sección es únicamente para usuarios con una rom AOSP (sin interfaz Sense) y Froyo. Los kernels aquí mencionados no funcionarán si tu rom tiene Sense o Android 2.3 Gingerbread.
El kernel es el corazón del sistema. De su buen funcionamiento depende gran parte del rendimiento de nuestro teléfono. Hay dos motivos principales para flashear un kernel distinto al que trae la rom que hayamos instalado:
Rendimiento: hay kernels específicos para maximizar el rendimiento del teléfono en los benchmarks. Son versiones overclockeadas que permiten llegar al procesador de nuestro teléfono a frecuencias más altas de lo que puede llegar de fábrica (esto es, 1000 Mhz). Es importante añadir que aunque permitan llegar, por ejemplo, a 1200 Mhz, no quiere decir que el procesador esté funcionando siempre a esa frecuencia (esto se controla con la app SetCPU).
Batería: son generalmente kernels que no buscan un rendimiento extremo y están optimizados para ahorrar la mayor cantidad de batería posible. Los hay incluso con undervolt, lo que significa que hacen trabajar al teléfono a menor voltaje para consumir menos batería todavía.
Por tanto, ¿cuándo es necesario flashear un nuevo kernel? Simple. Si estáis contentos con el rendimiento de vuestro teléfono en general y con el consumo de batería, quedaros como estáis. Más vale malo conocido que bueno por conocer. Si por el contrario notáis que podéis exprimir más al teléfono en el Quadrant o en juegos, o bien la batería os dura excesivamente poco, es el momento de cambiar el kernel.
Supongamos que estamos en el segundo caso; necesitamos cambiar el Kernel pero, ¿por cuál? Esta es la pregunta más común, e intentaré dar una respuesta concisa sin entrar en demasiados detalles. Hay principalmente 2 o 3 kernels distintos (de 2 o 3 creadores distintos, quiero decir), pero cada uno de ellos tiene un montón de versiones que suelen liar bastante a la hora de decidirnos por uno u otro porque, simplemente, no sabemos las diferencias.
Personalmente uso este y no me puedo quejar. A mí me da un buen rendimiento y una buena vida de la batería. Es un kernel estable y balanceado: mitad rendimiento, mitad consumo.
Para los que quieran maximizar la batería hay una opción mejor, que en realidad son 3 en 1. Son el mismo kernel pero con diferentes voltajes, ya que no todos los teléfonos pueden funcionar a un voltaje menor y seguir siendo estables, esto depende mucho de tu terminal en concreto. Lo que yo recomiendo es probarlos en el siguiente orden: Primero flasheamos este kernel y comprobamos que sea estable. Hay dos opciones: que sea estable, en cuyo caso flashearemos este otro y haremos la misma comprobación (volviendo al anterior si nos da problemas), o que no sea estable, en cuyo caso flashearemos finalmente este otro.
El resto de kernels los podéis encontrar en los foros de xda-developers, concretamente aquí:
- vorkKernel: http://forum.xda-developers.com/showthread.php?t=782875
- Coutts99: http://forum.xda-developers.com/showthread.php?t=893484
- EViollet: http://forum.xda-developers.com/showthread.php?t=883598
El proceso de flasheo en sí mismo no tiene ningún misterio. Simplemente reiniciamos en modo recovery, seleccionamos Flash zip from sdcard y elegimos el archivo del kernel en cuestión. No es necesario ningún tipo de wipe ni nada especial (eso sí, yo siempre recomiendo hacer un nandroid en cualquier tipo de flasheo por si las moscas, aunque no debería haber riesgo ninguno).
Tip of the day: ¿Cómo sé qué version de radio tengo? ? Menú -> Ajustes -> Acerca del teléfono -> Baseband.
Ya tenemos claro cuándo es necesario flashear un nuevo kernel pero, ¿qué hay de la radio? ¿Y qué cojones es el RIL? Por partes.
El principal motivo para flashear una nueva radio/RIL es que tengamos problemas con la cobertura, con la conectividad WiFi, con el 3G, con el GPS, etc. No afectará al consumo de batería (o al menos no lo suficiente como para apreciarlo), así que si eso es lo que buscas, vuelve al apartado anterior y échale un ojo a los kernels.
Toda radio tiene su RIL (Radio Interface Layer). Esto es simplemente el software que se encarga de comunicar la radio con el kernel, el paso intermedio entre ambos. Realmente no es un requisito indispensable que ambas cosas coincidan en la versión, una radio puede funcionar con cualquier RIL, pero ya que no supone ningún esfuerzo extra se recomienda flashear ambas cosas.
Podemos encontrar una lista completa de radios aquí. Para una lista un poco más reducida pero con sus correspondientes RIL, podemos ir aquí.
El método de flasheo es el siguiente:
- Descargamos la radio/RIL deseada y la colocamos en la raíz de la SD de nuestro teléfono.
- Con el terminal sin conectar al PC, arrancamos en modo recovery.
- Realizamos un nandroid backup por precaución.
- Seleccionamos Flash zip from sdcard y elegimos el archivo de la radio. Aceptamos y esperamos a que se complete el proceso.
- Seleccionamos Flash zip from sdcard y elegimos el archivo del RIL. Aceptamos y esperamos a que se complete el proceso.
- Reiniciamos y ya está hecho.
Páginas consultadas para la realización de esta guía:
http://myhtcdesire.com/
http://www.xda-developers.com/
http://www.htcmania.com/mediawiki/index.php/P%C3%A1gina_Principal
http://www.miui-au.com/
Si encontráis algún error o consideráis que algo se podría explicar mejor o algo así, postear para decirlo por favor.