Carlos Garcés' Blog
Software Engineering. Bienvenido a mi blog.

Root MXQ 4K

Tras un buen rato con el procedimiento de prueba y error, he conseguido tener acceso root en mi MQX 4K.

He usado Linux para conectarme al aparato pero el proceso desde Windows debería ser exactamente el mismo siempre que consigamos los drivers adecuados para poder conectarlos por adb en Windows.

Actualización: No recomiendo usar este metodo manual. Cambiar el recovery para instalar el superSU es una forma mucho mas sencilla.

Tareas previas

Para poder conectarnos al aparato por cable USB primero hay que conseguir que Linux reconozca adecuadamente al dispositivo.

En el aparato Android hay que seleccionar la opción conectado a PC y la opción de Debug USB tiene que estar activada Si todo esta bien debería aparecer el dispositivo al ejecutar lsusb. Debería empezar por 2207 que el el identificador de los productos RockChip

$ lsusb
Bus 003 Device 002: ID 8087:8001 Intel Corp. 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 8087:07dc Intel Corp. 
Bus 001 Device 003: ID 5986:0652 Acer, Inc 
Bus 001 Device 002: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 006: ID 2207:0011  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Como root, crear una regla udev, la ruta deberia ser parecida a /etc/udev/rules.d/51-android.rules Añadimos la linea siguiente:

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

Reiniciar udev

udevadm control --reload-rules

Instalar las Android Tools si no las tienes instaladas

apt-get install android-tools-adb

Como usuario normal, añadir el id de RockChip a la lista de dispositivos usb de Android. El fichero se encuentra en $HOME/.android/adb_usb.ini. Si el fichero no existe crear uno nuevo. Mi fichero es este:

# add your vendor IDs, one per line
0x2207

Reiniciar adb

adb kill-server & adb start-server & adb devices

Confirmamos que adb devices muestra el dispositivo,

Consiguiendo acceso de escritura

El script completo esta publicado en la wiki de linux-rockchip (2017-09-07 Estaba, la wiki ya no existe), pero no he conseguido una versión que me funciona a la primera así que lo haremos en dos pasos.

Crear un fichero de texto (p. ej “nano script.sh”) y copiar el siguiente código

echo "*---* VonDroid.com RK device Root Tool based on work by sunnydavid *---*"
echo "--- Plug in your device, make sure debugging is enabled in Developer Options"
echo "--- This script will now copy files over to your RK device"

adb shell mv /data/local/tmp /data/local/tmp.bak
adb shell ln -s /data /data/local/tmp
adb reboot

echo "--- Reboot 1/3 - Press Space Bar once the device has rebooted"
read -p "or CTRL-C to exit"

adb shell rm /data/local.prop > nul
adb shell "echo \"ro.kernel.qemu=1\" > /data/local.prop"
adb reboot

echo "--- Reboot 2/3 - Press Space Bar once the device has rebooted"
read -p "or CTRL-C to exit"

adb shell id

echo "--- If the ID shows as 0(root) then continue, otherwise CTRL+C to cancel and start over"
read -p "CTRL-C to exit"

Dar acceso de ejecución al script con chmod +x script.sh Nos aseguramos de que el dispositivo sale en la lista de adb devices y ejecutamos el script.

Cada vez que se reinicie el dispositivo tenemos que volver a seleccionar la opción conectado a PC antes de continuar con la ejecución del script.

Instalar los binarios.

El script original es parte de un post de dxa-developers.

Es necesario bajarse unos ficheros que contienen la aplicación de superSU y el binario de busybox.

Nos aseguramos que tenemos aceso por adb y ejecutamos los siguientes comandos.

adb push busybox /data/local/tmp/
adb push lg_root.sh /data/local/tmp/
adb push UPDATE-SuperSU-v2.46.zip /data/local/tmp/
adb shell sh /data/local/tmp/lg_root.sh dummy 1 /data/local/tmp/UPDATE-SuperSU-v2.46.zip /data/local/tmp/busybox

La ultima linea dará unos cuantos errores, solo deberíamos prestarle atención si no conseguimos acceso root.

Blog Logo

Carlos Garcés


Published

¿Hay algun error en el texto?. ¡Editalo!.