ZTE Open con Firefox OS 1.2 o 1.3

Publicado el Martes, 11 de febrero de 2014
ZTE Open

ZTE Open

Desde hace unos meses soy el feliz poseedor de un ZTE Open, uno de los primeros dispositivos disponibles comercialmente con Firefox OS. En eBay se conseguía a $ 70 dólares en una época. Ahora parece que están revendiéndolos por hasta el doble...

Las dimensiones del  teléfono son de 114mm × 62mm × 12.5mm, con una pantalla de 3,5 pulgadas, Wi-Fi, Bluetooth, acelerómetro, GPS y procesador de un core. No es de gama alta, y todavía falta alguna que otra aplicación, por lo que no lo estoy usando como teléfono principal. De todas formas al vivir experimentando con él (creo que ya le flasheé el sistema operativo al menos 5 veces), no sería conveniente.

El teléfono venía con Firefox OS 1.0.0, una versión ya en el momento bastante vieja. El día mismo que tuve el teléfono en mis manos por primera vez procedí a remediarlo con bastante éxito. Desde entonces he ido probando varias versiones siempre sin inconvenientes.

Por suerte ha ido surgiendo mucho más información para este dispositivo desde que lo compré, así que hay mucho más de dónde sacar. La guía que usé y a la que volví en su momento fue: FirefoxOS 1.2 on ZTE Open. Hay más información en MDN: Firefox OS ZTE Open, y Mozilla Hacks - Upgrading your ZTE Open to Firefox 1.1 or 1.2 (fastboot enabled).

Lo más importante de tener Firefox OS hasta al menos la versión 1.2 es que podemos conectar nuestro teléfono al App Manager de Firefox. De esa forma podemos instalar y debuggear aplicaciones en nuestro teléfono desde las mismas herramientas web de desarrollo de Firefox.

Firefox OS con App Manager

Firefox OS con App Manager

Todas mis pruebas hasta ahora han funcionado, pero no me hago responsable por teléfonos bloqueados o rotos, experimentar a discreción:

El primer paso es actualizar a la nueva versión de Firefox OS provista por ZTE en este enlace. Ahora hay una versión bastante más nueva de FFOS 1.1, parece que hubo una actualización en Diciembre y otra en Enero. El archivo que descargamos ahí viene con las instrucciones necesarias para actualizar.

La guía que seguí es de Octubre y desde entonces algunas cosas seguro han cambiado. Pero hay un paso en la guía que no sé si todavía será necesario. Se trata de conseguir una imagen de booteo personalizada para los dispositivos ZTE Open (del blog de Mike Rowehl):

Por alguna razón el build de boot2gecko para el dispositivo inari (el nombre para el build del ZTE Open) no genera un archivo boot.img (...) Y juntar el sistema y particiones de usuario de un build a medida con la imagen de booteo por defecto del sistema termina en que el Sistema Operativo bootea pero la interfaz de usuario explota constantemente.

A continuación no hay más que seguir las instrucciones de MDN para hacer el build de Firefox OS. Parece que por ahora solo se puede hacer en Mac OS X y distribuciones GNU/Linux de 64 bits. Se recomienda usar Ubuntu 12.04, tener al menos 4GB de Ram y 20GB de espacio disponible en disco. Yo lo hice tanto en Ubuntu como en Debian sin problemas. Pero en MDN hay información también para Fedora, ArchLinux y Gentoo. También se puede hacer todo esto en una máquina virtual.

Lo siguiente es instalar las siguientes aplicaciones: 32-bit zlibautoconf 2.13 bison bzip2 ccache curl flex gawk git gcc / g++ / g++-multilib make patch X11 headers 32-bit ncurses OpenGL shared libraries

En Ubuntu, la guía de Mike Rowehl lista la instalación de los siguientes paquetes:

sudo apt-get install autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib gcc-4.6 g++-4.6 g++-4.6-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev zlib1g:amd64 zlib1g-dev:amd64 zlib1g:i386 zlib1g-dev:i386 libgl1-mesa-dev libx11-dev make zip

En Debian, la instalación que hice fue la siguiente:

sudo apt-get install autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib gcc-4.6 g++-4.6 g++-4.6-multilib git lib32z1 lib32ncurses5 lib32bz2-1.0 lib32ncurses5-dev lib32z1-dev zlib1g:amd64 zlib1g-dev:amd64 zlib1g:i386 zlib1g-dev:i386 libgl1-mesa-dev libx11-dev make zip

Después instalar Java (la versión de Oracle) y las herramientas del Android Developer Toolkit:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java6-installer
sudo apt-get install oracle-java6-set-default
sudo apt-get install android-tools-adb

El proceso de build necesita algunos binarios de Android, algunas partes de interacción con el hardware son compartidas entre los sistemas. Si no queremos instalar el paquete, podemos descargar el Android SDK starter package (descargar ADT Bundle, no SDK Tools Only). De ahí ejecutar tools/android e instalar "Android SDK Platform-tools" desde la GUI. El ejecutable adb (lo encontramos en platform-tools dentro del sdk) debe estar en nuestro path. Se puede o bien copiar a /usr/bin o agregar ese directorio a la variable path:

# ~/bashrc o /etc/profile:
PATH=$PATH:/ruta/de/android/sdk

El build de Boot2Gecko usa ccache. El cache por defecto es de 1GB, pero no es suficiente y se recomienda usar al menos 3GB. Esto se puede configurar ejecutando en la terminal:

$ ccache --max-size 3GB

El paso siguiente es configurar la regla udev para nuestro teléfono. El vendor id del ZTE Open es 19d2, pero lo conseguimos fácil con lsusb en la consola. Si el archivo /etc/udev/rules.d/android.rules no existe, lo creamos. Ahí tenemos que agregar:

SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", MODE="0666", GROUP="plugdev"

Después hay que darle permisos al directorio:

sudo chmod a+r /etc/udev/rules.d/android.rules

Y reinicar el demonio:

sudo service udev restart

En distros que usen GCC 4.7 como compilador por defecto hay que especificar una versión más antigua para que funcione el build. En Ubuntu y Debian tuve que hacerlo:

export CC=gcc-4.6
export CXX=g++-4.6

Ya tenemos el sistema pronto. Lo que queda por hacer es descargar el código, compilar y flashear el teléfono:

git clone git://github.com/mozilla-b2g/B2G.git
cd B2G
BRANCH=v1.3 VARIANT=user ./config.sh inari #para instalar Firefox 1.3 en "inari", el ZTE Open
BRANCH=v1.3 VARIANT=user ./build.sh

En este momento tenemos que tener el teléfono conectado con Almacenamiento USB y "Remote Debugging" habilitado (Settings > Device Information > More Information > Developer > Remote Debugging activado. Ya tenemos que usar la imagen modificada que habíamos descargado previamente y copiarla al directorio en B2G:

cp [el archivo boot.img] out/target/product/inari/boot.img

Por último:

./flash.sh

Esto puede demorar un rato, pero si todo salió bien, terminamos con nuestro teléfono recién flasheado y una nueva versión de Firefox OS:

Firefox OS 1.3

Firefox OS 1.3

Entre mis pruebas estuvo hacer un build de HEAD (no el tag 1.2 o 1.3, sino lo último de lo último que hay en el código). Esto sería el equivalente a un build de Firefox Nightly, el código más actualizado del repositorio sin configuraciones específicas para usuario final ni nada. También funcionó perfectamente. El sistema queda con un montón de aplicaciones de prueba instaladas que evidentemente se usan para testear el dispositivo y las distintas APIs que van desarrollando. Para lograr esto simplemente hay que tener actualizado el código y ejecutar:

./config.sh inari #para instalar Firefox 1.3 en "inari", el ZTE Open
./build.sh

Y después flashear con ./flash.sh. Esto implica que perfectamente podemos modificar el código y hacer un build personalizado y flashearlo en nuestro teléfono. Todavía no probé tanto, pero en eso estoy...

Ahora que instalé Firefox OS 1.3 y funciona bastante bien, voy a probar de usar el ZTE Open como mi único teléfono por unos días. Todavía faltan varias aplicaciones que de a poco se irán desarrollando, pero como teléfono (que es para lo que menos se usan los smartphones hoy en día) y para navegar en internet funciona bien de bien. Veremos cuánto dura...

15 comentarios en este post

Feed de comentarios
  1. Avatar

    Alexis 12 febrero. 2014 - 08:18

    Hola,
    buen tutorial, lo que no acabo de entender es si al final ya esta disponible la version 1.3??

    si esta usando la head? deberia ser la ultima estable por cual supongo la 1.3??

    bueno, si puede subir un video con lo ultimo de esta versión se agradece..

    Saludos.

  2. Avatar

    Christian 28 febrero. 2014 - 20:06

    Hola gracias por la informacion que compartiste. Pero me gustaria saber si funciona en un ZTE Open de Movistar? que podria suceder en el peor de los casos si lo actualizo?

    • Avatar

      Fernando 1 marzo. 2014 - 19:22

      Creo que sí debería funcionar. En mi caso no he tenido ningun problema, pero asumo que puede llegar a existir el riesgo de que el teléfono dejara de funcionar en caso de que algo falle. Investigaría a ver si alguien lo ha probado con ZTE Open de Movistar ya, y leer sus experiencias.

      ¡Saludos y suerte!

  3. Avatar

    _martinbc 18 marzo. 2014 - 11:56

    Fui al workshop the Firefox OS y después escuche la charla de @LostOracle en ls jsconfuy y quede muy enganchado con Firefox OS. ?Tenes idea acá en Mvd si puedo comprar un cel desbloqueado, quiero usarlo con Antel?.

    Saludos

    • Avatar

      Fernando 18 marzo. 2014 - 22:20

      ¡Buenísimo que te hayas enganchado! Me hicieron la misma pregunta un par de veces durante la conferencia y no supe bien qué responder. No sé si se consiguen acá en Uruguay teléfonos con Firefox OS libres. Tampoco sé bien si funcionan con Antel. El que tengo (ZTE Open) lo compré en su momento en eBay por unos 70 dólares y se lo encargué a un amigo que vino desde USA. Como hay equipos bastante baratos de este tipo, creo que entrarían en el decreto de 5 compras menores a 200 dólares anuales, pero no sé si eso aplica a teléfono, habría que preguntar.

      • Avatar

        _martinbc 18 marzo. 2014 - 22:57

        Lujo, gracias por la info. Voy a averiguar. Si consigo posteo, vi algunos en mercado libre por 2.600 pei. Voy a seguir indagando.

  4. Avatar

    Emilio 14 abril. 2014 - 14:01

    Excelente guia entendi casí a la perfección lo que decia excepto que no se que hacer con la rom de zte, es a caso para actualizar con fastboot?

    Aparte otra pregunta, puedo actualizar a la v1.4 con esto? tengo entendido que nada mas tengo que cambiar BRANCH=1.4 en lugar de 1.3, es correcto?

    Gracias por la guia y por tu tiempo para responder.

  5. Avatar

    Gabriel 22 mayo. 2014 - 17:46

    Soy de México y tengo un Firefox OS 1.1.1 y si me gustaría tener la última versión, habrá la posibilidad que alguien se dedique actualizar por la Ciudad de México. Cuales son los motivos que WhatsApp, Call Timer y Multiwifi no ha llegado para este sistema. Gracias por su atención.

  6. Avatar

    luchaodor 16 agosto. 2015 - 16:19

    Saludos no se si alguien me pueda ayudar Ya le hice todo y no arranca se queda en la imagen de zorro y se reinicia por tanto no puedo conectarlo al pc y eh descargado muchas roms stock pero nada ya no se que hacer alguna idea plis

Dejar un comentario

Toasty!