Root Android: ADB Shell

Root Android: ADB Shell

Uno de los métodos más conocidos para rootear el teléfono es a través de la consola adb. Adb es el terminal que usamos para introducir comandos en el teléfono, para el usuario de linux le resultará un poco familiar. Explicaremos el procedimiento para conectar un dispositivo en sistemas Debian/Ubuntu (GNU/Linux), los usuarios de Windows podrán encontrar unas notas al final de este post.

Primero debemos coger nuestro teléfono y habilitar en “Ajustes/Opciones de desarrollador” el modo depuración en nuestro teléfono. Para los que no veáis las opciones de desarrolladores, tenéis que tocar en el apartado “Acerca del teléfono” y tocar repetidamente donde dice “Número de compilación”. Un vez hecho esto correctamente nos mostrará un mensaje diciendo que se han activado las opciones para desarrolladores.

El siguiente paso es conectar el teléfono al puerto usb, al realizar las pruebas en GNU/Linux no necesitamos instalar drivers adicionales. Sin embargo sí necesitamos indicarle al sistema que es un dispositivo Android lo que estamos conectando. Para ello abrimos una terminal y escribimos: “lsusb”. Este comando nos lista los dispositivos usb conectados a nuestro sistema. Tenemos dos datos que nos interesan, el id del fabricante y el ID del modelo, ambos están escritos consecutivamente separados por dos puntos “:” Anotamos esos numeros y editamos el fichero “99-android.rules” en la carpeta “/etc/udev/rules.d/”, si no existe el fichero, lo creamos nosotros. Ahora agregamos la siguiente línea:

SUBSYSTEMS==”usb”, ATTRS{idVendor}==”XXXX″, ATTRS{idProduct}==”XXXX″, MODE=”0777″

Sustituimos las XXXX por los numeros que hemos anotado anteriormente. Si queremos tener acceso al fastboot, necesitamos iniciar el terminal en “flash mode” , hacer “lsusb” y anotar el número de idProduct, despues añadimos otra línea igual que la que hemos añadido antes con el numero de ID del producto que hemos apuntado. Una vez hecho esto reiniciamos udev “service udev restart” y recargamos las reglas con “udevadm control –reload-rules”, si tuviesemos algún problema a la hora de conectarlo, reiniciamos el sistema y listo.

Ahora conectamos nuestro dispositivo al puerto usb, abrimos una consola y tecleamos adb shell, si has instalado adb desde los repositorios como indicábamos en nuestro primer post de Root Android , no tendrás problemas al ejecutarlo. Si te lo has descargado aparte solo tienes que ir al directorio donde lo has descomprimido y ejecutarlo desde ahí. El resultado será una bonita shell con privilegios de usuario. ¿Cómo sabemos esto? Por el “$” que vemos en el prompt de la consola, cuando seamos administrador, el prompt cambiará pasando a mostrar “#” que indica que tenemos dichos privilegios. Ahora podemos probar a introducir comandos de GNU/Linux como ls, top o ejecutar scripts en .sh

Debemos saber que el comando adb tiene varias opciones, no tan sólo sacar la shell, si no que puede instalar y actualizar aplicaciones, reiniciar el teléfono o acceder al modo recovery, ahora vamos a ver algunas de las opciones que nos podemos encontrar con ADB:

adb devices: este comando nos lista los dispositivos reconocidos por adb a los cuales nos podremos conectar, es básico para comprobar la correcta conexión de los dispositivos Android.

adb push: para copiar archivos desde el ordenador directamente al teléfono, por ejemplo: "adb push musicajazz.mp3 /sdcard/Audio/" .

adb pull: lo mismo que push pero al contrario, esta vez cogemos un archivo del teléfono para pasarlo al ordenador.

adb reboot: reinicia el teléfono desde ADB.

adb reboot-bootloader: reinicia el teléfono en modo recovery, útil para instalar un nuevo sistema a nuestro teléfono Android.

adb install: instala una aplicación apk directamente en el teléfono, por ejemplo: "adb install tuaplicacion.apk" . Si queremos actualizar la aplicación, lo haremos con el modificador "-r" quedando así: "adb install -r tuaplicacion.apk" . 

adb uninstall: desinstala una aplicación del teléfono.

adb logcat: es el log de nuestra consola android (como el syslog en GNU/Linux).

La mayor diferencia para los usuarios de Windows, es que necesitareis instalar los drivers del teléfono para que lo reconozca el sistema, una vez instalados correctamente tan sólo tenemos que abrir un terminal (Inicio>busqueda>cmd) y ejecutar desde el directorio donde tengamos el ejecutable de adb de la siguiente forma “adb.exe shell”, podéis tener el problema de no reconocer el driver de fastboot, en tal caso se recomienda desinstalar y reinstalar el dispositivo Android.