Obtener el root de los teléfonos Android es necesario para tener todo el control de nuestro teléfono, para instalar algunas aplicaciones y lo más importante, para controlar lo que pueden hacer las aplicaciones que instalamos en nuestro teléfono.
Hay montones de tutoriales para hacer eso, pero no encontré ninguno para los que no tenemos Windows. Estas instrucciones son para conseguir el root usando un sistema operativo Linux, en concreto he usado Ubuntu.
Nota importante: Esto lo he hecho con mi propio teléfono y me ha funcionado, lo que no necesariamente significa que tenga que funcionarle a todo el mundo, utiliza esta información bajo tu única responsabilidad.
Realizado con éxito sobre un Samsung Galaxy S2, modelo GT-i9100, con placa base versión i9100BVKH1, y con Android 2.3.3.
Comencemos…
– Activar la depuración USB del Samsung Galaxy S2 en:
Ajustes > Aplicaciones > Desarrollo > Depuración de USB
– Abrir un terminal en nuestro ordenador Linux (en Ubuntu Accesorios > Terminal).
– Descargar adb para Linux y ponerlo en un directorio, desde uno de estos servidores:
- http://intervia.com/download/adb_unix.zip
- http://www.geeksphone.com/downloads/adb_unix.zip
Por ejemplo:
mkdir adb
cd adb
wget http://intervia.com/download/adb_unix.zip
(Android Debug Bridge es parte del kit de herramientas de desarrollo «Android SDK», disponible para Mac OS X, Linux y Windows en http://developer.android.com/sdk/, por lo que podría ser que estas instrucciones sirvieran también en Mac y Windows, aunque no lo he comprobado)
– Conectar el teléfono al ordenador con el cable y buscar su ID en el USB:
lsusb
Aparecerá una línea por cada dispositivo USB, busca la del teléfono para ver el ID del fabricante, en el caso del Galaxy Sii:
Bus 002 Device 011: ID 04e8:685e Samsung Electronics Co., Ltd
El ID sería 04e8, apúntalo porque lo necesitarás en el siguiente paso.
– Crear un archivo de reglas en udev:
sudo vi /etc/udev/rules.d/50-android.rules
El que no sepa manejar vi, puede usar otro editor, por ejemplo gedit:
sudo gedit /etc/udev/rules.d/50-android.rules
Crear una línea dentro del archivo con el ID obtenido en «idVendor»:
SUBSYSTEM==»usb», SYSFS{idVendor}==»04e8″, MODE=»0666″
– Guardar el archivo y cambiar los permisos con este comando:
>sudo chmod a+rx /etc/udev/rules.d/50-android.rules
– Reiniciar udev:
sudo /etc/init.d/udev restart
– Descomprimir adb dentro de su directorio:
unzip adb_unix.zip
– Darle permisos de ejecución:
chmod +x adb
– Desconectar el cable del teléfono y ejecutar el adb server:
sudo ./adb start-server
– Conectar de nuevo el cable y comprobar que detecta el móvil:
./adb devices
Debe aparecer algo como:
List of devices attached
304D17C7816D5B7E device
Si todo está correcto, se puede proceder a rootear el dispositivo…
– Descargar DooMLoRD_v3 de alguno de estos links:
- http://intervia.com/download/DooMLoRD_v3_ROOT-zergRush-busybox-su.zip
- http://forum.xda-developers.com/attachment.php?attachmentid=784296&stc=1&d=1321435888
- http://forum.xda-developers.com/attachment.php?attachmentid=778113&d=1320911452
- http://forum.xda-developers.com/attachment.php?attachmentid=761956&d=1319631837
Por ejemplo:
wget http://intervia.com/download/DooMLoRD_v3_ROOT-zergRush-busybox-su.zip
– Descomprimir DooMLoRD en la misma carpeta:
unzip DooMLoRD_v3_ROOT-zergRush-busybox-su.zip
– Subir el crack a la carpeta tmp del móvil:
./adb push files/zergRush /data/local/tmp/.
– Abrir un shell en el móvil:
./adb shell
– Ahora nos aparece el shell del móvil, desde ahí cambiamos los permisos y ejecutamos el crack:
$ chmod 777 /data/local/tmp/zergRush
$ ./data/local/tmp/zergRush
Este proceso lleva un rato, hace algo y espera 40 segundos, despierta y hace algo más y espera otros 40 segundos, al finalizar debe mostrar algo como:
[+] Rush did it ! It’s a GG, man ! [+] Killing ADB and restarting as root… enjoy!
Ahí ya se tiene el root. Ahora sólo queda instalar unas utilidades.
– Salimos del shell (cuidado, podría desconectarse solo al recuperar el root, con lo que no se debe poner el exit o saldríamos del terminal):
$ exit
– Subimos busybox:
./adb push files/busybox /data/local/tmp/.
– Volvemos a entrar en el shell del móvil, esta vez en vez de salir $ en el cursor nos aparece #:
./adb shell
– Cambiamos los permisos de busybox:
chmod 755 /data/local/tmp/busybox
– Remontamos system:
/data/local/tmp/busybox mount -o remount,rw /system
– Copiamos busybox a /system/xbin/:
dd if=/data/local/tmp/busybox of=/system/xbin/busybox
– Cambiamos el propietario de busybox:
chown root.shell /system/xbin/busybox
– Cambiamos permisos de busybox:
chmod 04755 /system/xbin/busybox
– Instalamos busybox:
/system/xbin/busybox --install -s /system/xbin
– Borramos archivos temporales:
rm -r /data/local/tmp/busybox
– Salimos del shell del móvil:
exit
– Subimos el binario de su (Super Usuario):
./adb push files/su /system/bin/su
– Subimos la aplicación superuser:
./adb push files/Superuser.apk /system/app/.
– Entramos al shell de nuevo:
./adb shell
– Cambiamos los permisos y propietario de su:
chown root.shell /system/bin/su
chmod 06755 /system/bin/su
– Corregimos el enlace simbólico para usar su:
rm /system/xbin/su
ln -s /system/bin/su /system/xbin/su
– Borramos los archivos temporales:
cd /data/local/tmp/
rm *
– Salimos del shell del móvil:
exit
Reiniciamos el móvil:
./adb reboot
Una vez arranque el teléfono, ya estará listo.
Ahora, lo recomendable es instalar desde «Play Store» la aplicación «LBE Privacy Guard», que nos permitirá tener el control absoluto de nuestro móvil, por ejemplo impidiendo que aplicaciones que instalamos tengan acceso a nuestros datos personales o a localizar nuestro teléfono sin nuestra autorización.
También es posible desbloquear el móvil para usar con cualquier operadora instalando desde «Play Store» la aplicación «Galaxy S Unlock». Si usas esta aplicación, en el paso 2 (unlock sim), el teléfono se queda bastante rato con la pantalla en negro, no lo apagues ni hagas nada, tarda un rato en desbloquearlo, paciencia.
maik
Guay!! Lo he probado y funciona a la perfección!! Con android 2.3.4 en mi SG s2
dantesistem
me gustaria saber como rootear s2 4.1.2 desde lunux (distribucion ubuntu) gracias
Lean
Cuando intento iniciar ./adb start-server me sale el siguiente error y no puedo continuar.
./adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
Probé con darle permisos 777 y sale el mismo error, alguien me podrá guiar?.
Gracias Saludos
Lean
Encontré la solución está en esta pag. http://android.stackexchange.com/questions/41145/regarding-adb-command-error-while-loading-shared-libraries
estos pasos seguí sudo dpkg –add-architecture i386
sudo apt-get -qqy update
sudo apt-get -qqy install libncurses5:i386 libstdc++6:i386 zlib1g:i386
Juan
Gracias por publicar la solución.
A mi no me dio errores, pero como paso el día compilando cosas tengo instaladas muchas herramientas de desarrollo y librerías que no son habituales.
jairo
Muchas gracias por tu aporte, me funciono a la perfección, cabe destacar que la estructura y redacción es destacable. te felicito!!!