Bueno, después de varios meses lo hemos logrado; ahora suenan mis canciones favoritas como ringtone en mi Alcatel One Touch Fire. Esto lo conseguimos gracias a dos tutoriales que encontramos en la red, el primero del blog simpicuitico y el seguido el de gnulinuxvagos. Aclaramos que esta es una solución temporal pues para la versión 1.3 ya tendremos la personalización incorporada; pero como no podíamos esperarnos este fue un interesante y divertido ejercicio de aprendizaje.

 

También tenemos que dar las gracias a Manita, quien fue la que encontró el tutorial de gnulinuxvagos y que sirvió para que nos picara el "bichito" de rootear al Alcatel OTF. Para esto estuvimos leyendo diversos tutoriales, pero primero la mayoría eran para ZTE y utilizaban un exploit diseñado específicamente para este modelo de móvil; y segundo implicaban instalar una imagen rooteada y pues... aún no nos sentimos tan arriesgados.

Primero hay que preparar el entorno

Eso implica instalar adb-tools; un conjunto de herramientas utilizados por los desarrolladores para Android, Replicant y claro, ahora los de Firefox OS. Estas herramientas permiten acceder al móvil como si estuviésemos en una consola de GNU/Linux, teniendo en cuenta que evidentemente tanto Android como Firefox OS son un GNU/Linux debajo de todo.

Las herramientas adb-tools se encuentran ya incorporadas en algunas distribuciones, en otras basta con descargarlas de el sitio de Android. Si es un paquete, el gestor se encargará de todo, si ese descargan se deben descomprimir en la carpeta habitual para colocar herramientas no convencionales de GNU/Linux: En /opt. Hay que crear vínculos simbólicos a los dos binarios que necesitaremos:

ln -s /opt/[versión del adb-tools]/sdk/platform-tools/adb /usr/bin
ln -s /opt/[versión del adb-tools]/sdk/platform-tools/fastboot /usr/bin

Fastboot, nos servirá para modificar los archivos en el arranque de nuestro móvil y adb nos permitirá manipular el sistema operativo como si fuera nuestro GNU/Linux.

Más vale la seguridad

Como somos algo cobardes con esto de manipular el móvil, preferimos sacar copias de seguridad; así que aquí nos basamos en lo que nos enseñó el blog simpicuitico. Entonces primero, descargamos la imagen del hamachi clockword recovery; es Hamachi porque así consideran al Alcatel OTF al momento de compilar las imágenes de Firefox OS.

Luego de bajarlo, reiniciamos el celular en modo bootloader: Primero retiramos la batería 5 segundos y luego cuando la coloquemos y para encenderlo presionamos al tiempo el botón de bajar el volúmen y el botón de encendido durante 5 segundos. Sabremos que el móvil está en modo bootloader porque se queda congelado en la imagen que muestra que dice Alcatel One Touch.

Procedemos a conectarlo al computador, y digitamos el comando:

fastboot devices

Debe mostrarnos nuestro móvil entre los dispositivos conectados. Lo listará como MSM7627A. Si no es listado es posible que haya un problema al reconocer el dispositivo, esto se puede corregir creando el archivo 51-android.rules en la ubicación /etc/udev/rules.d/ dentro se deben colocar las líneas que corresponden al fabricante del móvil:

SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666", GROUP="plugdev"

Si nos reconoció correctamente el celular, nos ubicamos en el directorio donde descargamos la imagen de Hamachi y flasheamos dicha imagen a nuestro móvil:

fastboot flash recovery hamachi_clockworkmod_recovery.img

Si todo salió bien nos mostrará un mensaje de confirmación de escritura de la imagen y ya estamos cerca de sacar la copia de los archivos. Es recomendable tener suficiente espacio en la tarjeta SD para no tener problemas.

En el blog simpicuitico recomiendan quitar la batería para no reiniciar el celular, pues cuando se reinicia se borra la imagen flasheada en los pasos anteriores. Se retira por 5 segundos y podemos iniciar el celular en modo recovery, es decir para encenderlo lo hacemos presionando el botón de subir el volúmen y el botón de encendido durante 5 segundos, esto ocasionará que inicie el clockwordmod como indica la imagen.

Si elegimos la opción "backup and restore", nos dejará elegir la opción "backup" y hará una copia de nuestros archivos y nuestro sistema en la ubicación /sdcard/clockworkmod/backup allí hará una carpeta nombrada con la fecha y hora de la copia. El programa realizará la copia mostrándonos a que le ha ido sacando copia y cuando termina mostrará un "Backup Complete"; como lo explica el blog simpicuitico estos backups se pueden recuperar luego que instalemos imágenes nuevas de Firefox OS, para mantener nuestros datos y configuraciones. Recordemos no restaurar la partición system para no sobreescribir nuestro nuevo sistema.

Terminado el backup, podemos elegir la opción Go Back y reboot system now; luego seguimos la instrucción e iniciamos el celular.

Root a la orden

Luego de la copia de seguridad, pasamos al rooteo. Descargamos root alcatel signed, esta es una actualización del sistema y un busybox que es como una especie de utilitarios de consola que nos permitirá expandir nuestras posibilidades de manipulación de nuestro móvil. Para colocar el zip dentro del móvil, tenemos dos alternativas: La primera es colocarlo usando adb, para ello primero digitamos adb devices que nos dará un resultado similar al del fastboot devices. Recordemos que el móvil debe estar en modo de depuración remota, lo cual podemos hacer yendo en nuestro móvil a: Ajustes - Información - Más información - Desarrollador - Depuración remota; o sino no nos permitirá conectarnos con el adb.

Luego de verificar la conectividad con adb, copiamos el archivo a la tarjeta sd con el comando:

adb push root_alcatel-signed.zip /sdcard/update.zip 

Recordemos que debemos estar en la carpeta donde descargamos el archivo .zip. El comando mostrará el resultado de bytes copiados en la tarjeta dentro del móvil. La segunda forma es activar el modo USB del móvil y copiar el archivo como si fuera un pendrive y luego renombrarlo como update.zip.

Reiniciamos en modo recovery como vimos anteriormente, para que vuelva a iniciar el clockworkmod. Si no inicia el clockworkmod, es posible que se haya borrado y debemos repetir los pasos donde lo instalamos. Si lo logramos iniciar elegimos la opción install zip from sdcard, luego apply /sdcard/update.zip, y Yes – Install /sdcard/update.zip. Nos mostrará el desarrollo de la instalación y el final feliz de la instalación, luego reiniciamos como lo hicimos al hacer el backup y el móvil es nuestro.

Personalizando

Conectamos de nuevo el móvil al computador, y probamos conectividad con adb devices. Ahora entramos al móvil con adb shell. El prompt de la consola cambiará mostrándonos que estamos dentro del móvil, podremos preguntarle whoami como en GNU/Linux tradicional y nos dirá lo que esperábamos: root.

La estructura interna es familiar para l@s usuari@s de GNU/Linux aunque hay ciertas cosas que son distintas. Existe una partición /system que es donde se encuentran todas las aplicaciones que hemos ido instalando (espero aprender y compartirles como pasarlas a la tarjeta SD como he oído que se hace en Android). Dentro de /system está b2g (Back2Gecko) es decir las aplicaciones que vienen con el sistema operativo, allí está webapps y es ahí donde encontraremos los ringtones y los sonidos de las notificaciones.

Siguiendo la ruta está settings.gaiamobile.org, allí dentro hay un archivo application.zip que contiene los archivos de audio en formato ogg y un archivo json que lista dichos archivos. Para poder sacar el archivo de allí se pueden usar las opciones de adb.

Si seguimos dentro del móvil podemos escribir exit y esto nos llevará de vuelta a nuestro equipo. Como vimos anteriormente para copiar archivo al móvil usamos adb push, para sacarlos del móvil y llevarlos al computador usamos adb pull:

adb pull /system/b2g/webapps/settings.gaiamobile.org/application.zip

Esto llevará el archivo a nuestro computador donde podemos "jugar" con el, aunque yo sugiero sacarle una copia por si se hacen demasiados estragos. Dentro del zip, hay que llegar a la ruta /shared/resources/media allí encontraremos las carpetas ringtones y notifications. Las dos tienen estructuras similares así que la idea será agregar los archivos que queremos incorporar como ringtones o notificaciones. Estos archivos deberían ser archivos .ogg (no probé con .mp3 además que en este sitio no patrocinamos ese formato :P ), deben ser de un tamaño inferior a 1.5 MB (con tamaños mayores no lo toma el sistema, aunque se puedan agregar) y la idea es que no duren más de 25 segundos que es lo que realmente dura un ringtone. Luego de agregados los archivos se debe editar el archivo list.json y incorporar una nueva entrada dentro del listado con el nombre exacto del archivo. Esto lo podemos hacer de forma similar para las notificaciones.

Luego de editado el zip, lo sobreescribimos en nuestro móvil, pero tendremos problemas por permisos así que primero tendremos que hacer un truco. Para esto entramos con adb shell, montamos la partición con

mount -o remount,rw /system

salimos del adb shell con exit y hacemos el adb push:

adb push application.zip /system/b2g/webapps/settings.gaiamobile.org/application.zip

Bastará reiniciar el móvil y ya tendremos nuestros tonos y notificaciones personalizadas. Si les pica la curiosidad como a mí, pueden cambiar los tonos para las alarmas del reloj del sistema. Estos tonos están dentro de un archivo application.zip similar que está en /system/b2g/webapps/clock.gaiamobile.org/application.zip

 La mayor parte de este tutorial y las imágenes son gracias al blog Simpicuitico

 Las licencia de las adb-tools es Apache License y del clockworkmod es CreativeCommons y es descargable de github