Как получить root права на эмулятор Android (протестировано на Android 7.1.1 / Nougat)
Требования
Инструкция
Установить SuperSu.apk
Сначала установите приложение SuperSu, просто перетаскивайте (если вы используете последнюю версию эмулятора или загружаете через adb, т.е. adb -e install supersu.apk
)
После установки, при запуске он показывает экран, как показано ниже, показывающий «Не установлен бинарный файл SU ..». Эта ошибка только подтверждает, что устройство еще не рутировано.
Сделать системный раздел эмулятора доступным для записи
Как следует, мы должны дать эмулятору разрешение на запись системных файлов.
Введите следующий код для этого: emulator.exe -avd {emulator_name} -writable-system
Примечание. Перейдите в папку tools , в которой установлен Android SDK, и откройте командную строку, нажав клавиши Shift и правую кнопку мыши.
Загрузка su-файла в системный каталог
- Извлеките Recovery flashhable.zip (содержащий наборы различных архитектур)
Внимание! Используйте только двоичный файл su, соответствующий вашей архитектуре avd, например, x86, arm и т. Д., И отметьте путь, по которому вы извлекли эти двоичные файлы.
- Убедитесь, что вы используете ADB от имени пользователя root, а также вам нужно перемонтировать его.
Просто введите эти коды
adb root
adb remount
Теперь пришло время отправить двоичный файл su:
Это код, который я успешно использовал : adb -e push C:\Users\User1\Desktop\rootemu\x86\su.pie /system/bin/su
(не обращайте внимания на мое конкретное местоположение двоичного файла su, любое расположение в порядке, пока нет пробелов)
примечание: Чтобы выяснить, bin
или xbin
сделать в консоли раньше:> adb shell
,> ls /system/xbin/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.
чave root сохраните обновление su bin (используя метод Normal), затем скопируйте system.img из временного каталога (Users\AppData\Local\Temp\Android Emulator
файл обычно имеет произвольное имя, например, например, 1359g.tmp
с большим размером) и замените значение по умолчанию system.img
.
Обновление
Я заметил, что проще получить временный образ системы в Linux, чем в Windows. Вы можете попробовать использовать снимок изображения.
Обновление 4 августа 2018
С появлением эмулятора 27.3.x
теперь стало намного проще сохранять root с помощью функции моментальных снимков (если копирование system.img
метода не работает):
В идеале это больше похоже на спящий режим виртуального устройства с неповрежденным конфигом, поэтому все сохраняется.
Снимки
Теперь вы можете сохранять несколько снимков AVD для данного устройства
конфигурации и выберите, какие из сохраненных снимков загрузить при
Запустите эмулятор. Запуск виртуального устройства путем загрузки снимка
очень похоже на пробуждение физического из состояния сна, в отличие от загрузки
это из выключенного состояния.
Это подразумевает, что единственным требованием для запуска эмулятора является добавление параметра -writable-system
к обычной команде emulator -avd [avdname]
для запуска эмулятора. ( Запуск эмулятора только с emulator -avd [avdname]
не запускает корневую версию / копию или может привести к некоторой ошибке )
Проверено на уровне API 22 * 1246 *
Также о проблемах с загрузочным замком читайте в другом посте: Эмулятор Android: как избежать цикла загрузки после рутирования? и его обновления.
Примечания
Большая часть ссылочного содержимого была для более старых версий Android и, следовательно, причина различных команд и путей, которые я изменил.
Выражение признательности;