Root MXQ 4K
22 Feb 2016Tras 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.