Libertad para Moto G (2014) desde Linux

Después de trastear con el teléfono de Ester, era más que evidente que el mío no se iba a librar.

Moto G (2014)
Motorola Moto G (2ª generación).

El artículo se centra en el Moto G de segunda generación, concretamente el modelo XT1068 (el de Dual SIM), en la versión de Android 4.4.4 (KitKat) y cubre los siguientes temas:

  1. Desbloquear el cargador de arranque (bootloader).
  2. Acceso root al teléfono.

Quizás os extrañe que no haya comentado la instalación de un sistema de recuperación alternativo (como el TWRP o CWM), esto es porque hay una manera de hacer root al teléfono sin tener que cargarnos (flashear) el recovery propio del teléfono, y seguir teniendo acceso a las actualizaciones oficiales vía OTA. Aunque es una verdad a medias, ya que sí que lo usaremos, pero de forma temporal. Continuad leyendo ;-)

Ingredientes

  • Paciente: Moto G 2ª generación (modelo XT1068)
  • Herramientas fastboot y adb para Linux.
  • Cable USB.
  • Una pizca de línea de comandos.

Los programas fastboot y adb se incluyen en el SDK de Android, que a día de hoy son unos 170 MB, a los que hay que sumar la posterior descarga de fastboot y adb.

Afortunadamente, las distribuciones más populares incluyen paquetes con estas dos herramientas:

  • Arch linux: paquete android-sdk-platform-tools.
  • Debian: android-tools-adb y android-tools-fastboot.
  • Fedora: android-tools.

¿Cómo decís? ¿Que si hay una manera universal de conseguirlos? Bueeeno, venga, porque me lo pedís con educación. Veamos lo que tendríamos que hacer para conseguir estas herramientas en cualquier distribución Linux:

  1. Descargar SDK Android para Linux.
  2. Descomprimir.
  3. Desde el terminal, navegamos hasta la carpeta tools.
  4. Lanzamos el siguiente comando: ./android sdk y se abrirá el Android SDK Manager.
  5. En la sección Tools, marcamos Android SDK Platform-tools.
  6. Presionamos en Install 1 package....
  7. Decimos que sí a todo el bla, bla, bla.
  8. Instalación completada ;-)

Android SDK Manager

Vamos a la carpeta donde descomprimimos el SDK de Android y tendremos una nueva carpeta llamada platform-tools con… ¡tachán! ¡fastboot y adb!

Contenido del SDK de Android para Linux

adb

No es mi idea explicar en detalle estas herramientas, pero no viene mal saber qué son. adb (Android Debug Bridge) se utiliza para comunicar un equipo Android con un PC o portátil. Podemos utilizarlo para copiar archivos de teléfono a ordenador y viceversa, por ejemplo.

fastboot

Este programa se utiliza para manipular las particiones flash de un teléfono Android. También puede arrancar el teléfono utilizando una imagen de kernel o sistema de archivos root que resida en otra máquina, en lugar de el teléfono. Esta característica nos vendrá de perlas ;-)

Conexión entre PC y móvil

Este tutorial no tiene sentido si el ordenador no se puede comunicar con el teléfono. Si habéis probado, al enchufar el teléfono al ordenador, nos dejará solamente material multimedia (fotos, vídeos, audio…), pero no acceder al sistema de archivos.

En el teléfono, hay que activar las opciones de desarrollo: AjustesAcerca del teléfono y pulsamos 7 veces sobre Número de compilación.

De nuevo en Ajustes, en la sección Sistema veremos un nuevo menú: { } Opciones de desarrollo. Si entramos en él, veremos una opción llamada Depuración USB. La activamos.

Enchufamos el móvil al ordenador por USB y el comando lsusb nos devolverá algo como:

Bus 004 Device 004: ID 22b8:2e76 Motorola PCS 
...

Pinta bien ;-)

Vamos a establecer una comunicación con el programa adb:

$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
AA1B22C3DD  unauthorized

Los números y letras responden al número de serie del teléfono. Eso de unauthorized no parece algo bueno, pero si nos fijamos en el teléfono, nos habrá aparecido un mensaje solicitando nuestro permiso para autorizar la depuración USB.

Solicitud de depuración USB

Tras aceptar, si lanzamos de nuevo el comando de arriba, el resultado debería ser:

$ adb devices
List of devices attached 
AA1B22C3DD  device

Perfecto, PC y móvil se entienden correctamente ;-)

Si tienes problemas, quizás tengas que crear reglas para udev. Puedes echar un vistazo a esta wiki o preguntar en los comentarios para que te eche una mano.

Desbloquear bootloader

Advertencia: Este proceso restaura el teléfono a su estado de fábrica, así que se perderá todo lo que haya en la memoria interna del teléfono.

Como ocurría con Huawei, también en Motorola hay que solicitar el código de desbloqueo para el cargador de arranque. Para que nos lo den, tenemos que mandarles la información sobre el bloqueo, que es particular de cada teléfono. A continuación veremos cómo se consigue:

Reiniciar el teléfono en modo fastboot. Este modo no es más que arrancar el programa de recuperación del teléfono. Lo podemos lograr de dos maneras:

  • Con el teléfono apagado: Mantener pulsados los botones de encendido y Vol- a la vez.
  • Con el teléfono encendido y enchufado al ordenador, tecleamos: adb reboot bootloader.

En cualquiera de los dos casos, llegaremos a una pantalla de esas que dan miedo, fea y sin botones. Bienvenido al programa de recuperación ;-)

Vamos a conseguir el código que nos pide Motorola para poder darnos la clave de desbloqueo. Importante hacerlo con permisos de súperusuario (al menos en mis pruebas):

sudo fastboot oem get_unlock_data
...
(bootloader) 3A35230516826176#00000000000000
(bootloader) 00000000585431303638000000#DC3D
(bootloader) AEBCF02DA78E6A024C5693179FA77BB
(bootloader) 5E6D1#C38943060F000000000000000
(bootloader) 0000000
OKAY [  0.152s]
finished. total time: 0.152s

Ahí lo tenemos. Nos queda hacer un último ajuste, pues Motorola lo quiere limpito, es decir, sin espacios ni el texto (bootloader), así que podemos hacerlo a mano o ejecutar este otro comando:

(sudo fastboot oem get_unlock_data 2>&1 | grep bootloader | sed 's/^.* \(.*\)$/\1/g' | tr -d '\012' && echo "")

Vamos al formulario de solicitud de código de desbloqueo, nos leemos los riesgos que podemos correr (la versión en español también está, pero da error en un punto) y avanzamos.

Nos pide registrarnos, pero podemos usar nuestra cuenta de Google (la que hemos utilizado para configurar el móvil, por ejemplo). En la siguiente página nos explica el proceso para obtener el identificador de nuestro móvil. Como ya lo hemos hecho, vamos al punto 6 donde escribiremos esa ristra de números y letras y pulsando sobre Can my device be unlocked. Si todo va bien, en la parte inferior de la página veremos un botón REQUEST UNLOCK KEY. En unos instantes, tendremos un correo (a la cuenta de Gmail que pusimos antes) con el código de desbloqueo.

Aplicar el código de desbloqueo

El código de desbloqueo está formado por una serie de 20 números y letras.

  1. Conectamos el teléfono al ordenador por USB.
  2. Iniciamos el teléfono en modo fastboot.
  3. Comprobamos la comunicación entre ambos: fastboot devices.
  4. Aplicamos el código de desbloqueo:
sudo fastboot oem unlock ABCDEFGXIJ12KLMNOPQR
...
(bootloader) Unlock code = ABCDEFGXIJ12KLMNOPQR

(bootloader) Unlock completed! Wait to reboot

El teléfono se habrá reiniciado y ahora aparecerá siempre un mensaje informando sobre los peligros de tener un cargador de arranque desbloqueado:

Advertencia: bootloader desbloqueado

Y comprobarás que el teléfono vuelve a pedir que lo configuremos pues, como advertía, se habrá borrado todo.

Cambiar la imagen de advertencia

No tenía pensado comentarlo en este artículo, pero como imagino que a más de uno le molestará ver el dichoso aviso cada vez que encienda el teléfono, veremos cómo eliminarlo. Bueno, realmente la palabra correcta sería sustituirlo.

  1. Descargar el logo original (gracias al estupendo foro XDA-Developers)
  2. Descomprimir.
  3. Iniciar desde el cargador de arranque: adb reboot bootloader
  4. Desde la carpeta donde tengamos el fichero logo.bin tecleamos: sudo fastboot flash logo logo.bin.
  5. Reiniciar: sudo fastboot reboot.

Listo, acabamos de reemplazar la imagen de advertencia por la original de Motorola.

También se puede hacer desde TWRP con el zip, sin descomprimirlo. Os queda de tarea ;-)

A por el root

Requisitos

  • Bootloader desbloqueado (¡hecho!).
  • Activar depuración USB.
  • Herramientas adb y fastboot.
  • Tarjeta microSD (externa, no la que incorpora el móvil).
  • TWRP.
  • SuperSU.

Nos descargamos al PC el recovery TWRP. La versión que probé fue la 2.8.4.0.

Descargamos también la última versión de SuperSU. La que yo probé fue la 2.35.

Metemos en la tarjeta SD el fichero con el SuperSU tal cual lo hemos descargado, sin descomprimir, es decir, en mi caso: UPDATE-SuperSU-v2.35.zip.

Con móvil y PC conectados por USB, iniciamos en modo fastboot (a estas alturas ya sabemos cómo, ¿verdad?). Y ahora vamos a mandarle el recovery que nos descargamos antes para que inicie, de forma temporal, desde él: sudo fastboot boot /ruta/al/fichero/openrecovery-twrp-2.8.4.0-titan.img

sudo fastboot boot openrecovery-twrp-2.8.4.0-titan.img 
downloading 'boot.img'...
OKAY [  0.395s]
booting...
OKAY [  0.219s]
finished. total time: 0.615s

Comprobaremos que el teléfono se reinicia de nuevo, pero esta vez nos aparece otro recovery, el TWRP. Ahora toca instalar el SuperSU: Install -> External card. Seleccionamos el fichero UPDATE-SuperSU-v2.35.zip y deslizamos donde pone Swipe to Confirm Flash.

Cuando termine, pulsamos en Reboot system.

Y ya está. Somos root :-) ¿Cómo comprobarlo? Podemos instalar, por ejemplo, Root Validator, pulsar sobre Do i have root? y:

Comprobar si somos root

¡Ya somos los jefes! Aunque como bien indica el programa, en el idioma de Shakespeare, no está instalado el binario BusyBox, herramienta que necesitan muchas aplicaciones que hacen uso de los terminales con acceso root. Así que, ya sabéis, a instalarla.

¿Qué hago con mis súperpoderes?

A partir de ahora ya no hay límites (para lo bueno y para lo malo). Aunque me gustaría comentar una aplicación, es vuestro turno de bucear por la red, leer y experimentar. Sí, tocará otro artículo centrado en herramientas para root ;-)

Xposed Framework

Esta maravilla de utilidad permite realizar cambios en el sistema sin tener que instalar una ROM personalizada.

Por sí mismo no hace nada, sino que son necesarios unos módulos. Veamos primero cómo instalar el framework.

Como realizaremos la instalación de una aplicación que no está en la tienda oficial (Google Play), es necesario ir a AjustesSeguridad y activar Orígenes desconocidos.

Con el navegador del móvil, descargamos el apk (un instalador) desde http://dl.xposed.info/latest.apk y lo instalamos. Cuando finalize, tendremos un icono llamado Xposed Installer. Lo lanzamos y pulsamos en la sección Framework. Dentro nos aparecerá el botón Install / Update.

Instalador de Xposed

Reiniciamos y tenemos listo el framework. Ahora solo queda ir instalando módulos que nos permita sacar todo el partido de la ROM.

Su uso siempre es el mismo:

  1. Abrir el Xposed Installer.
  2. Ir a la sección Descarga.
  3. Buscar e instalar el módulo.
  4. Ir a la sección Módulos y activarlo.
  5. Reiniciar.
  6. Disfrutar.

GravityBox

Creo que es el módulo más conocido por la cantidad de cosas que nos deja hacer.

La instalación es muy sencilla desde el propio Xposed Installer. Vamos a la sección Descarga y buscamos GravityBox[KK] (importante lo de KK, ya que buscamos la versión compatible con nuestra ROM, KitKat). Pulsamos en ella y vamos al apartado Versiones, donde veremos una lista de las versiones y un botón para instalar la que queramos.

Instalar el módulo GravityBox

Una vez instalado, volvemos al Xposed Installer, esta vez a la sección Módulos y activamos GravityBox[KK]. Reiniciamos el teléfono y listo.

Tendremos un nuevo icono llamado GravityBox[KK], lo lanzamos y a personalizar todo lo que queráis. ¿Como qué? Una pequeña muestra:

  • Añadir acceso directo a aplicaciones desde el anillo de desbloqueo.
  • Cambiar el icono de la batería.
  • Añadir más opciones en el menú de volumen.
  • Añadir más opciones en el menú de apagado del teléfono.
  • Botón para eliminar tareas recientes (aplicaciones abiertas).
  • Configurar acciones al conectar y desconectar los auriculares.
  • Establecer un tiempo para el apagado de la linterna.
  • Cambiar el efecto al apagar la pantalla.
  • Y muchas más.

Otros módulos

  • YouTube AdAway: elimina la publicidad de YouTube.
  • BootManager: permite escoger qué aplicaciones se ejecutan al inicio.
  • App Settings: configura cada aplicación por separado (idioma, permisos, tamaño del texto, etc.)
  • RootCloak: esconde la característica de root a ciertas aplicaciones que no continúan si el teléfono tiene acceso root (normalmente las de comercio electrónico o bancos, por seguridad, se entiende).

Maravilloso el entretenimiento que nos proporciona un teléfono con Android ;-)

2 thoughts on “Libertad para Moto G (2014) desde Linux

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *