суббота, 16 ноября 2013 г.

Ubuntu 13.10: как получить root на DNS AirTab m100

В общем, всё началось с того, что в один прекрасный момент этот чудесный планшет стал забрасывать меня жалобами, что, дескать, заканчивается свободное место, и принялся совершенно неприлично подвисать.

Как давеча метко подметил Л.Каганов в своем блоге, пора в анкетах вводить новое правило: если там принято писать "английский - со словарём", то почему бы по аналогии не указывать "образование - с википедией"? Или, как в моём случае: "владение ПК - с гуглём". Так или иначе, гугление утвердило меня в мысли, что на этом планшете мне просто необходим рутовый доступ. Однако, как его получить?

Во-первых, на самом планшете в задаче "Настройки" есть пункт "{} Для разработчиков". В этом пункте есть подраздел "Отладка", в котором нужно поставить галочку напротив пункта "Отладка по USB". После этого при попытке подключить данный планшет к компьютеру на нем нарисуется уведомление "Отладка по USB разрешена".
(Говорят, в андроиде 4.2.x для включения пункта "для разработчиков" нужно будет семь раз постучать по вот этому пункту: Settings > About Phone > Build Number)

Далее нужно настроить сам компьютер. Для windows постоянно попадаются какие-то инструкции, для убунты - что-то как-то не повезло. Но тоже есть, если поискать. Итак.

1. Ставим специальную утилиту adb (Android Debug Bridge) командой:
sudo aptitude install android-tools-adb
(Вообще-то можно было бы поставить сразу AndroidSDK, но хватило и этого)

2. Смотрим, как это наше устройство определяется в системе, командой dmesg:
[ 4384.675409] usb 1-5: USB disconnect, device number 9
[ 5822.172051] usb 1-5: new high-speed USB device number 10 using ehci-pci
[ 5822.304891] usb 1-5: New USB device found, idVendor=2207, idProduct=0010
[ 5822.304900] usb 1-5: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[ 5822.304906] usb 1-5: Product: M100
[ 5822.304911] usb 1-5: Manufacturer: DNS
[ 5822.304916] usb 1-5: SerialNumber: 0123456789ABCDEF
Высвечивающееся idVendor=2207 означает, что это - галимая китайщина, и для того, чтобы её прикрутить, можно воспользоваться вот этой инструкцией. Дальше несколько пунктов из неё:

3. Создаём файл ~/.android/adb_usb.ini, в который записываем ровно шесть символов:
0x2207

4. Создаём файл /etc/udev/rules.d/51-android.rules со следующим содержимым:
SUBSYSTEM=="usb", ATTRS{idVendor}=="2207", MODE="0666"
Кое-где попадаются советы этот файл сделать chmod a+rx, по-моему, это перебор. Хватит и a+r.

5. Переподключаем планшет, и... лично у меня ничего не завелось. Зато dmesg стало выдавать кучу ошибок примерно такого вида:
[ 838.988045] usb 3-5: new full-speed USB device number 29 using ohci-pci
[ 839.172072] usb 3-5: device descriptor read/64, error -62
[ 839.460054] usb 3-5: device descriptor read/64, error -62

6. Перезагрузил компьютер целиком. После этого выполнил команду
adb devices
и - о, чудо - на экран вывалилось долгожданное:
List of devices attached
0123456789ABCDEF device

7. После этой победы можно воспользоваться архивом с 4pda.ru, из которого на самом деле потребуются лишь пять файлов:
su
busybox
SuperSU.apk
RootExplorer.apk
Файл же TPSparkyRoot.bat пришлось слегка подправить - чтобы можно было его выполнить в терминале убунты:
#!/bin/sh

clear
echo "*---* VonDroid.com N101 II 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 N101 II"
echo "--- Starting... This will take a while, be patient and wait..."
echo ""
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 -s -n 1

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 -s -n 1

adb shell id
echo "--- If the ID shows as 0/root then continue, otherwise CTRL+C to cancel and start over"
read -s -n 1

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
echo "--- Installing SuperSU"
adb push RootExplorer.apk /system/app/SuperSU.apk
adb shell chown root.root /system/app/SuperSU.apk
adb shell chmod 0644 /system/app/SuperSU.apk
echo "--- Installing Root Explorer"
adb push RootExplorer.apk /system/app/RootExplorer.apk
adb shell chown root.root /system/app/RootExplorer.apk
adb shell chmod 0644 /system/app/RootExplorer.apk
echo "Completing Root"

adb shell rm /data/local.prop
adb shell rm /data/local/tmp
adb shell mv /data/local/tmp.bak /data/local/tmp
adb reboot
echo "--- Reboot 3/3 - Your N101 II should now be rooted. Press SpaceBar to exit"
read -s -n 1

echo "done"

Вот, собственно, и всё. Не скажу, что это как-то сильно мне помогло, но теперь на планшете живёт некая загадочная аппликуха Root Explorer, а сборщик мусора Clean Master (установленный штатным образом из Google PlayMarket-а) научился сносить предустановленные приложения.

Комментариев нет:

Отправить комментарий