Как получить root права на эмулятор Android (Android 7.1.1 / Nougat)
Я рад сообщить сообществу более простой способ получить root права на эмулятор андроида (запустить из отдельного Android SDK)
Требования :
Примечание. Теперь SuperSU устарела, но этот метод все еще работает для рутинного эмулятора, и будут добавлены дополнительные обновления для новых методов рутирования.
инструкции
Установите SuperSu.apk
Сначала установите приложение SuperSu, просто перетащите (если запущена последняя версия эмулятора или загружены через adb т.е. adb –e install supersu.apk
)
После его установки при запуске отображается экран, показанный ниже, в котором указано «Не установлен бинарный файл SU ..». Эта ошибка только подтверждает, что устройство еще не рутировано.
Сделать системный раздел эмулятора доступным для записи
Как следует из этого, нам нужно дать эмулятору разрешение на запись системных файлов.
Введите следующий код для этого: emulator.exe –avd {emulator_name} –writable-system
Примечание. Перейдите в папку инструментов, где установлен Android SDK, и откройте командную строку, нажав клавиши Shift и правую кнопку мыши.
Нажав су бинар в системном каталоге
- Извлеките Recovery flashhable.zip (содержащий наборы различных архитектур)
Важный! Используйте только двоичный файл su, соответствующий вашей архитектуре avd, например x86, arm и т. Д., И отметьте путь, по которому вы извлекли эти двоичные файлы.
- Убедитесь, что вы используете ADB от имени пользователя root, а также вам нужно перемонтировать его. Просто введите эти коды
adb root
adb remount
Теперь пришло время нажать на двоичный файл su:
Это код, который я успешно использовал :adb -e push C:\%USERPROFILE%\Desktop\rootemu\x86\su.pie /system/bin/su
(не берите в голову мое определенное местоположение su бинарного, любое местоположение хорошо, пока нет пробела)
Если это не удается, попробуйте вместо этого перейти в этот каталог /system/xbin/su
. Также для эмуляторов под управлением Android 5.1 и ниже используйте su
и неsu.pie
Измените разрешения su бинарного
- Далее давайте сделаем небольшую модификацию разрешений su bin. Мы должны сделать это в эмуляторе устройства через ADB:
adb –e shell
su root
cd /system/bin
chmod 06755 su
Важный!! Обратите внимание на двоичный путь su (мой - / system / bin)
- Установите
install
директиву на двоичный файл su и установитеdaemon
Введите коды:
su --install
и для настройки демона:
su --daemon&
Важный!! Обратите внимание на расстояние
Настройка SELinux на Permissive (т.е. отключение SE Linux)
- Наконец выключите selinux через этот код:
setenforce 0
Это довольно много !! Откройте приложение SuperSU и оно может попросить обновить двоичные файлы, вы можете использовать метод Normal.
Откройте любое приложение, для которого требуются разрешения SU, просто дважды проверьте, и, действительно, SuperSU спросит, хотите ли вы предоставить ему разрешения su.
замечания
Большая часть ссылок была для более старых версий Android и, следовательно, причина различных команд и путей, которые я изменил.
Специальные признания;
Особая благодарность Ирвину Х, чье руководство вдохновило меня на создание этого руководства после того, как я потерпел неудачу бесчисленное количество раз, а также после того, как увидел необходимость для многих пользователей рутировать свои эмуляторы. Я надеюсь, что это также принесет большую пользу
Ирвин Х: Рутинг эмулятора Android - на Android Studio 2.3 ((Android 4.4)
Обновить
Как прокомментировал SaAtomic,
Этот подход все еще жизнеспособен с Android Studio 3.0.1
После обновления до версии эмулятора 27.2.9
и выше теперь намного проще сохранить root с помощью функции моментальных снимков (если копирование system.img не работает):
В идеале это больше похоже на гибернацию виртуального устройства с сохранением конфигурации, поэтому все сохраняется.
моментальные снимки
Теперь вы можете сохранить несколько снимков AVD для данной конфигурации устройства и выбрать, какие из сохраненных снимков загрузить при запуске эмулятора. Запуск виртуального устройства путем загрузки снимка очень похож на выход физического из спящего режима, а не для загрузки его из выключенного состояния.
Это подразумевает, что единственным требованием для запуска эмулятора является добавление -writable-system
параметра в обычную -avd [avdname]
команду эмулятора для запуска эмулятора. (Запуск эмулятора только с помощью эмулятора -avd [avdname] не запускает корневую версию / копию или может привести к некоторой ошибке)
Проверено на уровне API 22