Recientemente ha sido mi cumple y mi novia (muchas gracias cariño 🙂 ) me ha regalado la Tablet Energy Sistem i828 HD de 8 GB que venía preinstalada con Android 2.3.1 y un Launcher que «imita» ICS (necesario porque solamente tiene el botón físico de Home, nada de botón de retroceso ni de opciones). Afortunadamente el día 10/05/12 salió la actualización a ICS 4.0.3. Tas descargar e instalar la actualización siguiendo las instrucciones disponibles en la página de soporte oficial toca rootear el dispositivo para poder tener acceso total al mismo.
El problema es que si conectamos la tablet al ordenador usando el puerto USB y ejecutamos el comando adb devices nos encontraremos con que nuestro dispositivo no es reconocido:
$ adb devices
List of devices attached
Esto, en principio, lo podemos solucionar en Ubuntu de un modo sencillo. Tenemos que añadir una línea en el fichero /etc/udev/rules.d.
La línea a añadir en el fichero depende del fabricante y el modelo del dispositivo. Podemos averiguar el Vendor ID y el Product ID del dispositivo ejecutando (tras haberlo conectado al USB, claro):
$ lsusb
Bus 002 Device 021: ID 2207:0000
Lo que indica que el Vendor Id es «2207» y el Product ID es «0000«.
Vamos a hacerlo paso por paso:
- Habilita Origenes desconocidos y Depuración USB
Vete a Asjustes -> Seguridad y marca el checkbox Orígenes desconocidos, luego vete a Opciones de desarrollo y habilita la Depuración USB. - Crea/edita un fichero en /etc/udev/rules.d llamado 51-android.rules:
$ sudo gedit /etc/udev/rules.d/51-android.rules
Añadimos la siguiente línea y lo guardamos
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»2207″,MODE=»0666″,GROUP=»plugdev»
Debería quedar algo así:#Acer
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»0502″,MODE=»0666″,GROUP=»plugdev»
#ASUS
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»0b05″,MODE=»0666″,GROUP=»plugdev»
#Dell
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»413c»,MODE=»0666″,GROUP=»plugdev»
#Foxconn
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»0489″,MODE=»0666″,GROUP=»plugdev»
#Garmin-Asus
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»091E»,MODE=»0666″,GROUP=»plugdev»
#Google
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»18d1″,MODE=»0666″,GROUP=»plugdev»
#HTC
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»0bb4″,MODE=»0666″,GROUP=»plugdev»
#Huawei
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»12d1″,MODE=»0666″,GROUP=»plugdev»
#K-Touch
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»24e3″,MODE=»0666″,GROUP=»plugdev»
#KT Tech
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»2116″,MODE=»0666″,GROUP=»plugdev»
#Kyocera
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»0482″,MODE=»0666″,GROUP=»plugdev»
#Lenevo
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»17EF»,MODE=»0666″,GROUP=»plugdev»
#LG
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»1004″,MODE=»0666″,GROUP=»plugdev»
#Motorola
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»22b8″,MODE=»0666″,GROUP=»plugdev»
#NEC
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»0409″,MODE=»0666″,GROUP=»plugdev»
#Nook
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»2080″,MODE=»0666″,GROUP=»plugdev»
#Nvidia
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»0955″,MODE=»0666″,GROUP=»plugdev»
#OTGV
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»2257″,MODE=»0666″,GROUP=»plugdev»
#Pantech
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»10A9″,MODE=»0666″,GROUP=»plugdev»
#Philips
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»0471″,MODE=»0666″,GROUP=»plugdev»
#PMC-Sierra
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»04da»,MODE=»0666″,GROUP=»plugdev»
#Qualcomm
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»05c6″,MODE=»0666″,GROUP=»plugdev»
#Rockchip
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»2207″,MODE=»0666″,GROUP=»plugdev»
#SK Telesys
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»1f53″,MODE=»0666″,GROUP=»plugdev»
#Samsung
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»04e8″,MODE=»0666″,GROUP=»plugdev»
#Sharp
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»04dd»,MODE=»0666″,GROUP=»plugdev»
#Sony Ericsson
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»0fce»,MODE=»0666″,GROUP=»plugdev»
#Toshiba
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»0930″,MODE=»0666″,GROUP=»plugdev»
#ZTE
SUBSYSTEMS==»usb»,ATTRS{idVendor}==»19D2″,MODE=»0666″,GROUP=»plugdev» - Reinicia udev
$ sudo restart udev
En este punto adb ya debería reconocer nuestro dispositivo, pero no es así. Esto se debe a que la versión de adb incluida en el SDK de Android no «entiende» nuestro Vendor ID (no es un vendedor «reconocido oficialmente»).
Para solucionar esto hacemos lo siguiente:
- Crea/edita un fichero en $HOME/.android llamado adb_usb.ini:
$ gedit $HOME/.android/adb_usb.ini
Añadimos el siguiente contenido y lo guardamos
# ANDROID 3RD PARTY USB VENDOR ID LIST — DO NOT EDIT.
# USE ‘android update adb’ TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x2207
En este punto adb ya debería reconocer nuestro dispositivo:
$ adb devices
List of devices attached
0123456789ABCDEF device
Aunque aveces es necesario detener y arrancar el servidor adb:
$ adb kill-server
$ adb start-server
Ahora que nuestro equipo reconoce nuestro dispositivo vamos a rootearlo:
- Descargamos la herramienta Superuser (versión compatible con ICS) y extraemos la aplicación «Superuser.apk» y el binario «su» en, por ejemplo, /tmp.
- Instalamos su y Superuser:
$ ./adb remount
$ ./adb push /tmp/su /system/bin/su
2568 KB/s (22364 bytes in 0.008s)$ ./adb push /tmp/su /system/xbin/su
2843 KB/s (22364 bytes in 0.007s)$ ./adb push /tmp/Superuser.apk /system/app/Superuser.apk
4593 KB/s (843503 bytes in 0.179s)$ ./adb shell chown 0.0 /system/xbin/su
$ ./adb shell chmod 6775 /system/xbin/su
$ ./adb shell chown 0.0 /system/bin/su
$ ./adb shell chmod 6775 /system/bin/su
$ ./adb remount
remount succeeded
$ ./adb reboot
Esperamos a que la tablet se reinicie y listo!
Chaval, te adoro, acabo de adquirir una BQ Pascal 2 y tiene el mismo ID y no veía como activar la depuración en linux.
Un millón de gracias, que Dios o quien sea te lo pague 😀
Hola amigo. No lo consigo. Hay que descargar algo de SDK previamnte?
CUando pongo «adb devices» en vez de decirme «List of devices attached» me dice otra cosa como que no conoce lo que es «adb». Hay que hacer algo previo a lo que explicas? instalar algo?
Si, hay que instalar el SDK de Android ya que adb es una herramienta del mismo.
Me puedes facilitar algun tutorial para instalar sdk? Otra cosa, desde ahora no dispondre de un ordenador con ubuntu instalado, se puede usar un live cd de ubuntu?
Ufff imposible, no puedo instalar el sdk, me pide el java, librerias, y cosas que se escapan de mi alcance. Esperaré a ver si sale un metodo mas sencillo de rootear la tablet.
Buenas.
Ya veo que hay algunos problemas que no han sido contestados, en la ejecución de tu guía. Me voy a atrever a contestarlos, y luego comento mi duda.
A LOS QUE NO RECONOCE adb: es porque no tenéis el fichero como ejecutable. Debéis cambiar sus permisos para que sea ejecutable. Es muy probable que tengáis que hacerlo como root, pero la forma rápida es «chmod 755 adb». Con eso, ya podréis ejecutarlo vía «./adb xxxxx»
Ahora mi duda. Estoy usando un live-dvd de Ubuntu. He seguido los pasos, y salvo el restart de udev que en mi caso es «services udev restart», todo sin problemas. Salvo que no me reconoce el dispositivo… ¿Alguna idea? Muchas gracias.
Prueba a ejecutar adb como root (si ya estaba el servicio en ejecución antes debes detenerlo).
He intentado todo lo que decis. Pero no me detecta el dispositivo. Es posible hacerlo bajo windows? o de otra forma.
Mil gracias.