Android root из Linux
Статья от 16 февраля 2012 г.
Это руководство для тех, кто хочет получить права root на своем Android телефоне.
0. Прежде чем начнем сделаем резервную копию данных, на всякий случай.
1. Установка ADB
- Скачайте Android-SDK для linux. [Это пакет инструментов для разработчиков под Android]
- Распакуйте директорию /tools на рабочий стол. [Возможно для этого понадобится установить архиватор 7zip. Он есть в репозиториях Ubuntu.]
- Создайте директорию "bin" и поместите туда программу ADB:
mkdir -p ~/bin
mv ~/Desktop/tools/adb ~/bin/
2. Сбор необходимой информации
- На вашем телефоне перейдите Насторйки=>Приложения=>Разработка (Settings=>Applications=>Development) и включите опцию Отладка по USB(USB debugging)
- Подключите ваш телефон к компьютеру. [*В режиме телефона, не в режиме USB накопителя]
- В терминале на компьютере выполните "lsusb" без кавычек
- Одна из строк в результате должна быть похожа на что-то вроде (в зависимости от производителя вашего телефона):
Bus 001 Device 002: ID 04e8:681c Samsung Electronics Co., Ltd
- Запишите или запомните первые 4 символа после ID. Это идентификатор производителя (Vendor ID, в нашем примере 04e8). Номера Bus и Device будут разными всякий раз при переподключении телефона к компьютеру или после его перезагрузки.
- В терминале выполните "id" без кавычек, эта команда покажет имя и группу пользователя под которым вы вошли в систему (если вы не уверены, что знаете их точно)
3. Установка првила Udev для работы ADB
- Откройти любимый текстовый редатктор с правами root. Например, в терминале Kubuntu наберите "kdesudo kate".
- Вставьте следующую строку без переносов в редактор и измените как указано ниже:
SUBSYSTEM=="usb", SYSFS{idVendor}=="<идентификатор производителя Vendor ID>", OWNER="<имя пользователя>" GROUP="<имя группы>"
Для нашего примера "<идентификатор производителя Vendor ID>" заменяем "04e8". Не трогаете кавычки но заменяете < > и все, что в нутри.
- Сохраните файл по этому пути /etc/udev/rules.d/51-android.rules
- И ещё по этому пути /lib/udev/rules.d/51-android.rules
[Примечание: Вообще вам нужен первый из них, но он может отличаться в разных системах]
- В терминале, наберите ls /etc/udev/rules.d/51-android.rules дабы убедиться, что файл на месте, аналогично для второго пути.
- Перезапустите udev или перезагрузите компьютер чтобы изменения вступили в силу
[Примечание: в некоторых руководствах при настройке првил udev рекомендуется устанавливать права доступа 0666 которые открывают доступ к файлу всем. Здесь мы назначаем доступ одному пользователю, которому это нужно, так будет безопаснее. Приоритет правила установили 51, это не принципиально, можно назначить и другой.]
4. Проверяем что получилось
- В терминале наберите "lsusb", как делали это ранее
- Одна из строк должна быть похожа на:
Bus 001 Device 002: ID 04e8:681c Samsung Electronics Co., Ltd
- В данный момент нас интересуют номера после Bus и Device, которые, возможно, изменились если вы перезагрузили компьютер.
- В терминале выполните "ls -l /dev/bus/usb/001/002" ВНИМАНИЕ 001/002 это Bus/Device из примера выше, замените Bus/Device на цифры из вашего вывода команды "lsusb".
- Если в результате команды имя пользователя и группа отличаются от "root root" можно продолжать дальше. Если это не так, перечитайте и повторите шаги 2 и 3.
- *Убедитесь что ваш телефон все еще в режиме Отладка по USB. Должен быть красный треугольник с восклицательным знаком в строке состояния вашего телефона (зависит от темы и версии Android).
- В терминале наберите "sudo adb devices" [*sudo понадобится только при первом запуске adb.]
Вы должны увидеть свой телефон в списке.
Замечание. Предварительное рутование может и не потребоваться при переходе непосредственно на нестандартные прошивки, такие как: CM7 или MIUI через Odin/Heimdall, в любом случае вам потребуется ADB (см. пункты 1-4)
5. Загрузка Samsung Fascinate Root Package
Эти файлы необходимы, хотя драйвера не нужны для Linux.
6. Распаковка 4-х файлов в ~/bin
Эту директорию мы создали в шаге 1, там уже должен быть файл adb. Вы можете распаковать куда-нибудь загруженный архив и поместить необходимые файлы в ~/bin (это su, rage.bin, busybox, Superuser.apk).
7. Переход в ~/bin
В терминале наберите "cd ~/bin", а затем "ls", должно быть 5 файлов.
8. Перенос файлов на телефон и запуск root:
Выполните каждую из следующих строк по отдельности в терминале, скопируйте и встаьте (жмите Enter после вставки каждой строки):
./adb push su /sdcard/su
./adb push rage.bin /data/local/tmp/rage.bin
./adb push busybox /sdcard/busybox
./adb shell
[Примечание: символ приглашения ввода строки должен измениться на
$, это означает, что мы удаленно подключились к телефону]
cd /data/local/tmp
chmod 0755 rage.bin
./rage.bin
[Примечание: Эта комманда определит ограничение процесса, найдет номер процесса adb, а затем запускает процессы до исчерпания этого ограничения. Вы быстро вернетесь в строк сприглашением $, но ЭТО НЕ ВСЕ. ЖДИТЕ пока не выведется что-то похожее на "[+] Forked 3705 childs." и вы вернетесь в свою домашнюю директорию.]
9. Зафиксируем права root
- В терминале вернитесь в директорию ~/bin введите "./adb shell"
На этот раз вы должны получить приглашение # вместо $. Это означает, что теперь вы удаленно зашли на телефон как root.
- Скопируйте и вставьте каждую строку по отдельности (жмите Enter после каждой строки):
mount -t rfs -o remount,rw /dev/block/stl9 /system
cd /system/xbin
cat /sdcard/su > su
cat /sdcard/busybox > busybox
chmod 4755 su
chmod 4755 busybox
exit
./adb install Superuser.apk
10. Убедимся что получили права root
- Перезапускаем телефон
- В терминале выполняем "~/bin/adb shell"
Вы должны получить приглашение $
Выполните "su"
На телефоне должно появиться всплывающее сообщение где запрашивается подтверждение использования прав суперпользователя. После того, как вы разрешите, приглашение должно измениться на #
Это сообщение будет появляться всякий раз, когда вы устонавливаете и запускаете программу требующую привелегий пользователя root.
Теперь запустите приложение SuperUser, оно должно показать список программ имеющих привелегии root пользователя.