Некоторое время назад приобрел планшет Mystery MID-722 и, естественно, столкнулся с недостатком места на внутреннем накопителе. Дополнительная SD-карта для музыки, видео, книг и всякого такого пригодилась, но вот кэш и данные программ на нее не поместишь просто так (внутрення карта монтировалась как /mnt/sdcard, внешняя же как /mnt/external_sd). Любой из способов, будь то перемонтирование/симлинки/изменение fstab, требовал наличия root-прав.
Никакое из приложений для самого устройства результата никакого не принесли. Решено было подключить планшет к компьютеру, включить отладку через USB и root’ать.
На домашней машине Windows 7 x64. Скачал необходимые драйвера, Android SDK, программу UnlockRoot. Все установилось, но, руки наверное кривые, результата так же не принесло. Вроде и система железяку видит, и все необходимое на планшете включено, а анлокер не видит. Ну, думаю, на работе поставлю Windows XP x32 в виртуальную машину, проброшу на нее USB и буду пробовать там. Что и сделал. С тем же результатом. Также попробовал, помимо UnlockRoot, iRoot и ERoot. Также безрезультатно.
Нашел несколько советов как из под GNU/Linux получить root-права на планшете. Воспользовался и получил.
Сначала необходимо поставить пакет android-tools-adb. Поскольку у меня Linux Mint, то:
sudo apt-get install android-tools-adb
Решил посмотреть есть ли поддержка «из коробки» моего планшета. Несколько ранее, играясь под Windows, выписал Vendor ID планшета (2207). Посмотрел:
sudo grep 2207 /etc/udev/rules.d/51-android.rules
Увы. Ну и ладно. Добавил необходимую строку в /etc/udev/rules.d/51-android.rules:
SUBSYSTEM=="usb", ATTR{idVendor}=="2207", MODE="0666", GROUP="plugdev"
Добавил своего пользователя в группу plugdev:
useradd -G plugdev poloniumv
Перезагрузил правила доступа к USB:
sudo udevadm control --reload-rules
Добавил Vendor ID своего планшета в конфиг adb:
echo "0x2207" >> ~/.android/adb_usb.ini
И перезапустил сервер adb:
adb kill-server; adb start-server
Список подключенных устройств порадовал наличием в нем планшета:
adb devices List of devices attached NCGS6PZX0N device
Подключил планшет USB-кабелем к ноутбуку и включил отладку по USB. Далее скачал архив (на случай 404) с набором необходимых бинарников и пакетов: su, SuperSU, busybox, RootExplorer и распаковал в отдельный каталог.
Перейдя в этот каталог начал получать root’а:
adb shell mv /data/local/tmp /data/local/tmp.bak adb shell ln -s /data /data/local/tmp adb reboot
После перезагрузки планшета (первой из трех), продолжил:
adb shell rm /data/local.prop > nul adb shell "echo \"ro.kernel.qemu=1\" > /data/local.prop adb reboot
Перезагрузка (вторая из трех) завершилась, проверил, от root’а ли я сейчас буду заливать необходимые бинарники да пакеты и «човнить» да «чмодить» 🙂
adb shell id uid=0(root) gid=0(root)
Удовлетворенный результатом, продолжил:
adb remount adb push su /system/bin/su adb shell chown root.shell /system/bin/su adb shell chmod 6755 /system/bin/su adb push busybox /system/bin/busybox adb shell chown root.shell /system/bin/busybox adb shell chmod 0755 /system/bin/busybox adb push SuperSU.apk /system/app/SuperSU.apk adb chown root.root /system/app/SuperSU.apk adb chmod 0644 /system/app/SuperSU.apk adb push RootExplorer.apk /system/app/RootExplorer.apk adb chown root.root /system/app/RootExplorer.apk adb chmod 0644 /system/app/RootExplorer.apk adb shell rm /data/local.prop adb shell rm /data/local/tmp adb shell mv /data/local/tmp.bak /data/local/tmp adb reboot
После перезагрузки запустил SuperSU и обрадовался — получилось!