Как получить root права на эмулятор Android (протестировано на Android 7.1.1 / Nougat)
Требования
Инструкция
Установить SuperSu.apk
Сначала установите приложение SuperSu, просто перетаскивайте (если вы используете последнюю версию эмулятора или загружаете через adb, т.е. adb -e install supersu.apk
)
После установки, при запуске он показывает экран, как показано ниже, показывающий «Не установлен бинарный файл SU ..». Эта ошибка только подтверждает, что устройство еще не рутировано.
![enter image description here](https://i.stack.imgur.com/25iufm.png)
Сделать системный раздел эмулятора доступным для записи
Как следует, мы должны дать эмулятору разрешение на запись системных файлов.
Введите следующий код для этого: 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.
![enter image description here](https://i.stack.imgur.com/muPTim.png)
ч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 и, следовательно, причина различных команд и путей, которые я изменил.
Выражение признательности;