martes, 3 de enero de 2012

Como obtener root en un Kindle Fire

El Kindle Fire de Amazon, al igual que otros dispositivos basados en Android, no permite que el usuario pueda acceder a los archivos del sistema, una medida de seguridad dados los problemas que esto puede ocasionar. Sin embargo, para los que estamos fuera de los Estados Unidos, nos es imposible aprovechar todo el potencial del Kindle Fire si no tenemos acceso de root o super usuario. ¿Por que? Amazon ha negado el acceso de dispositivos fuera de los Estados Unidos a su tienda de aplicaciones.

Para solucionar este problema no nos queda otra opción que obtener acceso de super usuario e instalar el Android Market para descargar aplicaciones directamente desde los repositorios de Google.

Trataré de hacer las instrucciones lo más detalladas posibles, pero advierto que el proceso para obtener acceso de super usuario puede ser algo complicado. También aviso que desconozco si este procedimiento invalida la garantía del Kindle Fire, si continúa es bajo su propio riesgo.

Este procedimiento ha funcionado con la versión 6.2.2 del firmware de Kindle Fire. En enero de 2012 Amazon lanzó una actualización del Kindle Fire que invalidó el procedimiento utilizado para la versión 6.2.1. No obstante, si la versión 6.2.1 ya tenía acceso de root y se actualiza a la 6.2.2, no hay problema, el Android Market funciona.

Lo primero que tenemos que hacer es asegurarnos de que el Kindle Fire está al día con las actualizaciones. Para esto presionamos en la esquina superior derecha y luego sobre la opción "Device". 




 
Allí verá la sección "System version". Asegúrese de que dice 6.2.2 (puede tener más números o letras a la derecha del 2). Si no dice 6.2.2 presione sobre el botón "Update your kindle" que está justo a la derecha. (La imagen dice 6.2.1 pero es porque no la he actualizado aún. ¡Perdón!)

Tres secciones más abajo dice "Allow Installation of Applications". Asegúrese de que la opción de la derecha tiene la marca sobre "On". Esta opción le indica al Kindle Fire que puede instalar aplicaciones de fuentes desconocidas.


Android SDK

Hacemos aquí una pausa para descargar el SDK de Android. El SDK es el kit de desarrollo de software que se utiliza para probar las aplicaciones de Android. Necesitamos descargarlo desde la página:

http://developer.android.com/sdk/index.html

En esa página hay versiones del SDK par Windows, Linux y Mac OSX. Descargue la que corresponde al sistema operativo de su computadora. Instale y/o descomprima el SDK en una carpeta y ejecútelo. Si usted lo instaló en Windows, un enlace quedará en el menú de inicio. Si lo descomprimió en Linux quedará todo en una carpeta llamada "android-sdk-linux". Y si lo hizo en Mac OSX quedará en una carpeta llamada "android-sdk-macosx".

Si utilizó Windows solamente ejecute el SDK desde el menú de inicio. En el caso de Linux vaya a la carpeta "android-sdk-linux" y luego a "tools". Allí ejecute el comando "./android". Para mac vaya a la carpeta "android-sdk-macosx" y luego a "tools". Allí, al igual que en Linux, ejecute "./android".



Lo primero que hay que hacer para que el SDK funcione es descargar alguna versión de la API de  Android. Al momento de escribir esta guía aparece marcada para descarga la API 15 (Android 4.0.3). Esa va a servir, así que presione sobre "Install 6 packages".


Al presionar sobre "Install 6 packages" aparece una ventana solicitando que usted acepte las instalaciones. Acéptelas todas presionando sobre "Accept all" y luego sobre el botón "Install".



En este momento inicia la descarga, que es bastante grande. Es posible que este proceso funcione con una API más vieja pero al no estar seguro de los requerimientos de cada uno de los paquetes que se utilizarán, opté por trabajar con la más reciente. Es necesario esperar a que la descarga termine para continuar.

Una vez terminada la descarga presione "Packages" en el menú del superior del Android SDK y luego "Reload" para cargar todo de nuevo.

Descargar paquetes

Para hacer un poco más sencillo el trabajo he empacado los paquetes que vamos a necesitar en dos archivos. Por favor, descargue y descomprima los siguientes archivos:

http://www.4shared.com/zip/2bdaQkqA/move_to_the_kindle.html

http://www.4shared.com/zip/0iQW0r8m/keep_on_your_pc.html


Para hacer más sencillo el trabajo descomprima los archivos manteniendo las carpetas. En la carpeta "move_to_the_kindle" está el software que necesitamos mover al Kindle Fire y en "keep_on_your_pc" el software que utilizaremos desde la computadora.

Controlador (driver) para Windows

Si usted utiliza Windows necesita instalar el controlador para comunicarse bien con el Kindle Fire. En la carpeta "keep_on_your_pc" hay un archivo zip llamado "android-windows-driver.zip". Al descomprimirlo generará una carpeta llamada ".android" y dentro de ella una carpeta llamada "Driver". Con el Kindle Fire conectado a la computadora (vía USB) actualice el controlador (en Panel de Control, Administrador de Dispositivos, Hardware, Otro hardware). Sin el controlador correcto será imposible completar este proceso.

En el caso de Linux (que es el sistema operativo que utilizo regularmente) no se necesita instalar el controlador.

Root Explorer

Aquí tenemos un problema. Obtener el acceso de root del Kindle Fire requiere la instalación de software en el dispositivo pero, al no tener acceso a la tienda de aplicaciones de Amazon no hay forma de instalar alguna aplicación que nos ayude a instalar otras aplicaciones en el Kindle Fire. Así que vamos a "tomar prestado" una excelente aplicación llamada "Root Explorer" para hacerlo.

"Root Explorer" es un administrador de archivos muy completo que funciona para dispositivos Android. No es una aplicación gratuita, tiene un costo de $3.99, así que si usted decide mantenerla espero que la compre en algún momento. He notado que descargar "Root Explorer" de forma ilegal es muy fácil, así que incluiré un enlace en esta guía a un sitio desde donde usted puede descargarla:

http://www.4shared.com/android/QjaPNuQ5/root_explorer_v2171.html


Descargará un archivo llamado "root explorer v2.17.1.apk". ¿Pero como la instalamos en el Kindle Fire? Imagino que usted tiene una cuenta de correo en Gmail, Hotmail o Yahoo. Pues bien, envíe usted mismo el archivo a su cuenta de correo, luego la revisa desde el Kindle Fire y descarga el archivo. El Kindle Fire le preguntará si desea instalar el archivo y le dice que si.

TIP: Otra forma de hacerlo, aún más sencillo, es acceder a ese enlace desde el navegador del Kindle Fire. Se ahorra así el tener que enviárselo a su correo electrónico.

Una vez instalado el "Root Explorer" usted verá el siguiente icono dentro de las aplicaciones del Kindle Fire:


Recuerde que "Root Explorer" no es un programa gratuito. Es una aplicación muy completa para el manejo de archivos que vale la pena comprar.

Mover archivos al Kindle Fire

En este punto tenemos en Kindle Fire conectado a la computadora y en la pantalla nos avisa que está conectado.

¿Recuerda la carpeta "move_to_the_kindle"? Pues bien, ahora necesitamos mover los archivos que allí se encuentran al Kindle Fire. Con el Kindle conectado a la computadora, mueva los cuatro archivos a la carpeta "sdcard/Downloads" del Kindle (lo recomendable sería que los metiera en una nueva carpeta, así será más fácil encontrarlos luego).


Obtener root en el Kindle Fire


En la carpeta "keep_on_your_pc" hay dos archivos que debemos mover. Tomamos BurritoRoot2.bin y Superuser.apk y los movemos a platform-tools porque de ahí los toma el procedimiento y los transfiere al Kindle Fire.

Ubiquemos el archivo adb_usb.ini y lo abrimos. Debemos escribir, si no la tiene ya, la siguiente línea que corresponde al número de identificación del dispositivo Kindle Fire:

0×1949

Guardamos el archivo y abrimos una ventana de comando en la computadora (cmd en Windows o shell en Linux) y vamos a la carpeta donde está en Android SDK.

Para Linux (o MAC OS X)

En Linux, mi sistema operativo de preferencia, vamos a la carpeta  "android-sdk-linux" que está donde hicimos la descompresión del Android SDK. Una vez allí vamos a carpeta "platform-tools" y ejecutamos los siguiente comandos:

./adb shell

Al escribir este comando posiblemente veamos:

* deamon not running. starting it now on port 5037 *
* deamon started successfully *
$

El número de puerto puede cambiar en su computadora. Lo importante aquí es el signo de dólar ($) que aparece al final. Si aparece es porque tenemos comunicación con el Kindle. Escribimos "exit" (sin las comillas) para cerrar la sesión de shell.

Si no hay comunicación necesitamos revisar es posible que se requiera acceso de administrador en la computadora ("sudo su" o "su"). Ya con eso debería haber comunicación con el Kindle Fire, así que ingresamos los siguientes comandos:


./adb push BurritoRoot2.bin /data/local/
./adb shell chmod 777 /data/local/BurritoRoot2.bin
./adb shell /data/local/BurritoRoot2.bin
./adb root
./adb shell id

Si aquí nos responde "uid = 0" podemos continuar. De lo contrario hay un problema y debemos empezar otra vez.

./adb remount
./adb push su /system/xbin/su
./adb shell chown 0.0 /system/xbin/su
./adb shell chmod 06755 /system/xbin/su
./adb remount
./adb install Superuser.apk
./adb reboot
 
Para Windows

En Windows vamos a la carpeta "Program Files" (o "Archivos de Programa"). Allí vamos a la carpeta "Android" y luego a "android-sdk". Por último, vamos a la carpeta "platform-tools". Allí ejecutamos los comandos:

adb push BurritoRoot2.bin /data/local/
adb shell chmod 777 /data/local/BurritoRoot2.bin
adb shell /data/local/BurritoRoot2.bin
adb root
adb shell id

Si aquí nos responde "uid = 0" podemos continuar. De lo contrario hay un problema y debemos empezar otra vez.

adb remount
adb push su /system/xbin/su
adb shell chown 0.0 /system/xbin/su
adb shell chmod 06755 /system/xbin/su
adb remount
adb install Superuser.apk (saltar este paso si ya está instalado)adb reboot

Al igual que en Linux, el primer comando nos indica si todo está bien. Si nos muestra un error que dice "device not found" es porque no  hay comunicación con el Kindle Fire y debe actualizar el controlador (driver). Este controlador viene en el archivo que usted descargó anteriormente.

Para terminar

Asumiendo que todo está bien, el último comando ("./adb reboot" o "adb reboot") reinicia el Kindle Fire completamente. Aquí ya no necesitamos tenerlo conectado a la computadora.

Cuando reinicia presionamos sobre "Apps" en el menú superior del Kindle Fire. Allí veremos una nueva aplicación llamada "Superuser". No es necesario abrirla.


Abrimos "Root Explorer" una vez más. Si todo está bien, "Root Explorer" nos mostrará ahora una pequeña ventana preguntando si mantenemos el acceso como "root". Le decimos que si. Buscamos la carpeta "/sdcard" y luego "Downloads". Allí buscamos la aplicación "GoogleFrameworkServices.apk" y presionamos sobre ella para instalarla. Una vez instalada no es necesario abrirla.

Luego, buscamos la aplicación "com.amarket.apk" pero no la instalamos, la copiamos a otra carpeta. Para hacerlo presionamos sobre ella pero mantenemos la presión para abrir el menú de contexto. Luego seleccionamos "Copy". Veremos que en el "Root Explorer", abajo, aparecen dos botones. Uno de ellos dice "Paste". No copiamos todavía. Presionamos sobre la flecha de la izquierda para subir en la estructura del directorio hasta que encontremos la carpeta "system". Si nos salimos de "Root Explorer" hay que volver a copiar "com.amarket.apk", así que debemos tener cuidado. Entramos a "system" y allí buscamos y entramos a la carpeta "app".

Estando en "/system/app" la parte superior de "Root Explorer" se ve así:


Presione sobre el botón que dice "Mount R/W". Este botón cambia los permisos sobre la carpeta para que podamos escribir y modificar la carpeta sin problemas.

En "/system/app" vamos a pegar el archivo "com.amarket.apk" presionando el botón que dice "Paste" que está en la parte inferior de la pantalla. Una vez pegado, presionamos sobre "com.amarket.apk" y mantenemos la presión para abrir el menú de contexto. En el menú vamos a seleccionar "Permissions" y esto nos traerá una ventana con los atributos del archivo. Para los que utilicen Linux esto será muy familiar, no así para los usuarios de Windows.

Marcamos todos los campos de la columna de la izquierda. Marcamos también el primero de la columna de la derecha y quitamos las marcas de todos los demás. Debería quedar así:

[x]  [x]  [  ]
[x]  [  ]  [  ]
[x]  [  ]  [  ]

Y grabamos los cambios. Ahora si, instalamos el "com.amarket.apk" presionando sobre él. Una vez instalado no es necesario que lo ejecutemos. Antes de que se nos olvide, y para que no suceda algo lamentable, regresamos los privilegios de la carpeta "/system/app" a su estado original. Para ello presionamos sobre el botón que está arriba en el "Root Explorer", solo que ahora dice "Mount RO", de manera que quede igual a como estaba en la imagen anterior.

Todavía en el "Root Explorer", volvemos a "/sdcard" y luego a "Downloads". Allí buscamos la aplicación "MarketOpener.apk" y la instalamos. Una vez instalada, reiniciamos el Kindle Fire. Para esto mantenemos el botón de encendido (en el borde inferior del dispositivo) presionado varios segundos hasta que la pantalla nos pida la confirmación de hacer el apagado. Presionamos sobre "Shut down" y ya cuando esté totalmente apagado lo volvemos a encender.

Una vez encendido el Kindle Fire solo necesitamos ir a "Apps" y luego al Market:

Si todo salió bien ya podemos instalar nuevas aplicaciones directamente desde el Market de Android. Recuerde que debe crear o abrir una cuenta en el Market para poder instalar aplicaciones. Si ya tenemos una cuenta en Gmail, solo la ingresamos allí.

Por seguridad

En este momento el Android Market ya puede instalar aplicaciones en el Kindle Fire y no necesitamos ni "Root Explorer", "Burrito root" y "Superuser". Así que podemos eliminarlas del Kindle. Para hacerlo solo vamos a "Apps" y presionamos sobre cada una de ellas manteniendo la presión. Esto nos trae un menú de contexto y seleccionamos "Remove from device". Este paso es opcional, pero es una medida de seguridad.

¡Espero que esta guía haya sido de utilidad!