Como actualizar un Android rooteado con una actualización oficial (OTA) sin perder los datos y manteniendo el root, o quitándolo si lo prefieres.

Lo primero a comentar es que al tener el móvil rooteado, no era capaz de actualizarlo con la OTA de Google. Yo poseo un Nexus 5, y cuando intentaba instalar el update oficial a través del TeamWin, me saltaba un error que venia a decir que la versión de Android que tenia, no era la que esperaba la actualización. Esto tanto utilizando el menú del TeamWin, como haciéndolo la actualización por comandos adb desde el SDK de Android en el PC.

Después de darme un buen pateo por internet, y de leer varias páginas y foros donde se decía que tenia que actualizarlo con la imagen de fabrica y perder así todos los datos de usuario, me encontré con esta página de Stephan Schmitz en GitHub, en la cual explica como hacerlo sin perder nada.

android-marshmallow-ota-updateDoy fe de que el método explicado por Stephan funciona perfectamente, el cual voy a pasar a continuación a explicar en castellano y para Newbies como yo:

1.- Descarga de ficheros:

1.1.- Lo primero que hice fue descargar e instalar las SDK tools, las cuales utilizaremos mas adelante para flashear el terminal desde nuestro PC.

Si ya las tenéis instaladas, actualizadlas a la última versión para aseguraros de que el adb funcionará con la versión de Android de vuestro teléfono.

1.2.- Luego hay que bajarse la actualización oficial de Google (OTA) correspondiente. Para bajar la versión correcta, echad un vistazo a que versión de Android tenéis. Esto se hace en el menú Ajustes > Información del Teléfono (la última opción) > Número de Compilación (otra vez la última opción).

Ya sabiendo el número de compilación, buscad aquí cual es la OTA siguiente a la misma:

A continuación busqué en Google: “download OTA XXXXX”, lo que a mi me llevo a está página:.

Pero seguramente vosotros ni tendréis la misma compilación que yo, ni puede que esta web para cuando leáis esto esté actualizada, o ni siquiera exista, pero estoy seguro que si hacéis una búsqueda similar a la mía, Google os mostrará en su lugar otras webs perfectamente válidas.

Renombra el fichero descargado a update.zip <—No se si esto es realmente necesario, pero por si las moscas lo hice.

1.3.- Ahora toca bajar la imagen completa de la compilación que tenemos en nuestro móvil actualmente. Importante, la actual. En el paso 1.2 nos bajamos la OTA de la siguiente versión.

Esta imagen completa pesa bastante, y viene comprimida en .tgz. Se descarga de aquí.

Una vez descargada, tenemos que sacar de ella tres ficheros: recovery.img, boot.img y system.img.

Para hacerlo, como el fichero de la imagen viene comprimido, debemos utilizar un descompresor. Mi recomendación es usar 7zip, pero cualquier otro que abra ficheros .tgz puede valeros.

Abrimos el .tgz y nos mostrará un fichero .tar; cliqueamos doble sobre el .tar, entramos en la carpeta hammerhead-xxxx, después entramos en image-hammerhead-xxxxxx.zip, y por fin llegamos a los ficheros mencionados anteriormente, los cuales debéis extraer.

1.4.- Ahora copiamos todos estos ficheros a la carpeta platform-tools del Android SDK, la cual se suele encontrar en: C:\Program Files (x86)\Android\android-sdk\platform-tools o C:\Program Files\Android\android-sdk\platform-tools dependiendo de si nuestro Windows es de 32 o 64 bits.

Los movemos a esta carpeta, porque es donde se encuentra el binario del adb, y así nos será más fácil lidiar con los comandos después.

Estos son los ficheros que debemos haber movido a dicha carpeta:

[Importante], si queremos mantener el root en el terminal, leed el apartado 3 en este momento.

..
boot.img
recovery.img
system.img
update.zip

2.- Comandos

Ahora vienen los comandos. Nos situamos con el explorador de Windows dentro de la carpeta platform-tools, y con la tecla shift pulsada, hacemos click derecho sobre el fondo vacío de la carpeta y seleccionamos: Abrir ventana de comandos aquí.

Ahora toca meter los comandos, que son los que van detrás de “>”, los que van detrás de “#” son comentarios:

# Asegúrate de que reconoce el dispositivo.

> adb devices

# Entra en el modo bootloader.

> adb reboot bootloader

# Una vez dentro del modo bootloader, asegúrate otra vez de que el dispositivo es reconocido.

> fastboot devices

# Flashea la stock recovery imagen XXXXX.

> fastboot flash recovery recovery.img

# Flashea la stock system imagen XXXXX.

> fastboot flash -S 512M system system.img

# Flashea la stock boot imagen XXXXX.

> fastboot flash boot boot.img

 

Cuando el flasheo esté confirmado, usa los botones de volumen para elegir en la parte superior del móvil “Recovery mode”, y confirma con el botón de encendido.

Cuando veas al pequeño Androide tumbado con el triangulo rojo de warning sobre él, con el botón de encendido presionado pulsa el botón de subir volumen para entrar en las opciones de recuperación (recovery options).

Cuando estés en las opciones de recuperación, selecciona ‘apply update from ADB’ usando los botones de volumen para moverte por el menú, y el botón de encendido para seleccionar.

Cuando el terminal indique que está esperando comandos, introducimos el siguiente comando desde el PC:

> adb sideload update.zip

Selecciona la opción de reboot, y arrancará el móvil con la actualización hecha, y sin root ni custom recovery.

Pero con un par de comandos más, puedes hacerlo para que el móvil conserve tanto el root como el custom recovery, solo que yo preferí quitarle el root, ya que no le estaba sacando partido, y me complicaba la vida con las actualizaciones.

En su día hice el root al teléfono para ver si podía conseguir aumentar la autonomía de la batería, lo cual no conseguí y esta acabo muriendo, lo que solucioné cambiándole la batería por una nueva, ya que por un coste muy bajo, vuelves a los primeros días del móvil a lo que autonomía se refiere.

Si estás interesado en saber donde comprar y como hacer el cambio de la batería en el Nexus 5, puedes verlo aquí.

 

3.- Mantener el Root

Volviendo a lo que estábamos, si queremos mantener el root en el terminal, hay un par de ficheros más que nos deberíamos haber descargado y llevado a la carpeta de las platform-tools:

SuperSU flashable zip –> (UPDATE-SuperSU-v2.46.zip)

La última imagen de recuperación del TWRP para hammerhead (a cual a fecha de la escritura de este tutorial se puede descargar del siguiente enlace –> twrp-2.8.7.1-hammerhead.img

Y después de hacer el adb del update.zip (OTA), en vez de reiniciar el terminal normalmente, hay que seleccionar que reinicie en modo bootlader.

Una vez hecho esto, hay que introducir el siguiente comando desde el PC:

> fastboot flash recovery twrp-2.8.7.1-hammerhead.img

Cuando el flasheo este confirmado, usa los botones de volumen para seleccionar en la parte superior del terminal “Recovery mode” y confirma con el botón de encendido.

Ahora en el menú de recuperación del TWRP, elije 'Advanced' > 'adb sideload', y marca las opciones clear 'Dalvik-Cache' and 'Clear Cache' y desplaza la barra para entrar en el modo sideload. Cuando el terminal indique que está esperando comandos, introduce el siguiente comando desde el PC:

> adb sideload UPDATE-SuperSU-v2.46.zip

Cuando acabe, confirma que quieres reiniciar y ya tendrás el terminal actualizado manteniendo el root y el custom recovery.