В свете приобретения интересного девайса (Modecom FreeTab 9702 IPS X2) был озадачен андроидом 4.0.4 и получением рутовых прав на оном. Куда ж без них — ни правила в iptables добавить, ни BusyBox поставить, ни рекламу в hosts порезать…
Короче, оказалось нихрена не так просто, как я думал. Планшет наш — чистокровный «поляк», относительно свежий, на всяких там 4PDA и XDA не засвечен ещё и, как и ожидалось, «стандартные средства» к нему не подходят. Единственное найденное упоминание на каком-то польском форуме было мутным и, как оказалось, тоже не рабочим… Пришлось ковырять самому. Забегая вперёд скажу, что всё получилось.
ВНИМАНИЕ!!!
ЧТЕНИЕ ДАЛЬШЕ И ПОПЫТКИ МОДИФИКАЦИИ УСТРОЙСТВА МОГУТ ОСТАВИТЬ ВАС С «ЧЁРНЫМ КВАДРАТОМ МАЛЕВИЧА» ВМЕСТО ПЛАНШЕТА!!!
Беда в том, что в оригинальной прошивке данного девайса отсутствует утилита «su», а чтобы перемонтировать раздел «/system» в RW (дабы запихнуть туда эту самую «su») — нужно, опять таки, сказать чего-то в стиле:
su -c 'mount -o remount, rw...'
Короче — логический тупик.
Покурил немного ADB, помедитировал пару часов на мануалы из Android SDK и решил впихнуть невпихуемое (в смысле запихнуть «su» на RO-раздел без глобальной перепрошивки устройства). К трём часам ночи родил следующую инструкцию:
0) Если ещё не скачали — качаем и ставим Android SDK и ADB Tools. Не забываем добавить в переменную %PATH% пути к «tools» и «platform-tools», дабы потом в консоли дёргать adb откуда угодно, без указания полных путей;
1) Качаем Android SU и Superuser.apk и распаковываем куда-то в удобное место (у меня это было «C:\ANDSDK»);
2) Ставим драйвера планшета, если они есть. У меня их не было и я немного попатчил те, которые были в репозитариях Android SDK (на предмет Vendor ID, Model, Revision);
3) Переводим планшет в «Режим отладки USB», для чего идём в: «Настройки» -> «Для разработчиков» и ставим соответствующую галку;
4) Подключаем планшет к ПК USB-кабелем. Не тупим! В смысле не путаем разъёмы «USB» и «USB-HOST» на планшете! Втыкаться нужно в тот, который «USB»! Включать режим «USB-накопителя» НЕ НУЖНО! Проверяем наличие устройства в «Диспетчере устройств» и корректность установки драйверов.
5) Запускаем консоль «cmd.exe» (я, на всякий случай, запускал от имени администратора, ибо Win7, в зависимости от Фазы Луны, могла зарубить святую идею на корню).
6) В консоли командуем:
adb devices
Если планшет подключен нормально, драйвера стоят корректно и всё пучком — должны увидеть строку с именем устройства. Если нет — раскуриваем предыдущие пункты до просветеления. С вероятностью 95% причиной будет: либо драйвера поставились не те / не так, либо режим «Отладка по USB» не включен, либо не тот порт на планшете, либо включен «режим USB-накопителя»…
7) Далее будет небольшое шаманство, в процессе которого можно угробить планшет нафик! Я решил, что рутовые права стоят того, чтобы попробовать выйти победителем из сражения с собственной глупостью.
Итак:
7.1) Немного магии (сносим каталог и делаем вместо него симлинк с таким же именем):
adb shell
rm -r /data/local/tmp
ln -s /data/ /data/local/tmp
exit
7.2) Отправляем планшет в перезагрузку:
adb reboot
7.3) Дальше — опять шаманство (создание флага):
adb shell
echo 'ro.kernel.qemu=1' > /data/local.prop
exit
7.4) Снова перезагрузка. После неё планшет загрузится и будет отвечать по кабелю, но выглядеть будет абсолютно мёртвым. Не пугайтесь.
adb reboot
7.5) Ещё немного магии (приказываем нашему «прикинувшемуся дохлым» планшету перемонтировать раздел в RW и запихнуть нашу «su» в «/system/xbin»:
adb shell mount -o remount,rw /system
adb push su /system/xbin/su
7.6) Завершающие магические жесты (меняем владельца и права файла «su», а также грохаем наш флаг, который заставлял девайс «прикинуться шлангом» и отдать рутовую консоль):
adb shell
chown 0.0 /system/xbin/su
chmod 06755 /system/xbin/su
rm /data/local.prop
exit
7.7) Перезагрузка.
adb reboot
8) В принципе всё, планшет рутован. Менеджер привилегий (Superuser.apk) можно поставить как через ADB,
так и с карты памяти. Но ставить его — ОБЯЗАТЕЛЬНО в память планшета, а не куда-то там на SD-карту или какое-то «внутреннее хранилище»!
В случае с установкой через ADB это будет команда:
adb install Superuser.apk
Теперь можно ставить любимые AdFree, DroidWall, BusyBox и иже с ними.
Коментарии приветствуются.

Добавить комментарий