Як виконувати кореневий емулятор Android (Android 7.1.1 / Nougat)
Я радий повідомити спільноту про простіший спосіб кореневого емулятора андроїда (запустіть із автономного Android SDK)
Вимоги :
Примітка: SuperSU тепер застаріло, але цей метод все ще працює для викорінення емулятора, і більше оновлень буде отримано для нових методів вкорінення.
Інструкції
Встановіть SuperSu.apk
По-перше, встановіть додаток SuperSu, просто перетягніть його (якщо використовується остання версія емулятора чи завантаження через adb, тобто adb –e install supersu.apk
)
Після його встановлення під час запуску на екрані відображається екран, як показано нижче, із зазначенням "Бінарний код SU не встановлений ..". Ця помилка лише підтверджує, що пристрій ще не вкоренився.
Зробіть системний розділ емулятора для запису
Як це говорить, нам потрібно надати емулятору дозвіл на запис системних файлів.
Введіть наступний код для цього: emulator.exe –avd {emulator_name} –writable-system
Примітка. Перейдіть до папки інструментів, де встановлено Android SDK, і відкрийте там командний рядок натисканням клавіші shift та клацання правою кнопкою миші.
Натискання на бінарне в системний каталог
- Витягнути Recovery flashable.zip (містить су-бінарні файли різних архітектур)
Важливо! Використовуйте лише su binary, який відповідає вашій архітектурі avd, наприклад x86, arm тощо.
- Переконайтеся, що ви використовуєте adb як корінь, а також вам потрібно здійснити повторний перегляд. Просто введіть ці коди
adb root
adb remount
Тепер прийшов час натиснути на бінарне:
Це код, який я успішно використав :adb -e push C:\%USERPROFILE%\Desktop\rootemu\x86\su.pie /system/bin/su
(я не маю на увазі моє конкретне місце розташування бінарних, будь-яке місце в порядку, поки немає білого простору)
Якщо це не вдалося, спробуйте це натиснути на цей каталог /system/xbin/su
. Також для емуляторів, що працюють під управлінням Android 5.1 та нижче, використовуйте su
та неsu.pie
Змінення дозволів на бінарні файли
- Далі зробимо трохи модифікації дозволів su binary. Це потрібно зробити в емуляторному пристрої через adb:
adb –e shell
su root
cd /system/bin
chmod 06755 su
Важливо !! Візьміть до відома su бінарний шлях (шахта є / system / bin)
- Встановлення
install
директиви щодо субінарного та встановлення adaemon
Введіть коди:
su --install
і для налаштування демона:
su --daemon&
Важливо !! Візьміть на замітку проміжки
Встановлення SELinux на дозвільне (тобто вимкнення SE Linux)
- Нарешті вимкніть selinux за допомогою цього коду:
setenforce 0
Це майже все !! Відкрийте додаток SuperSU, і він може попросити оновити бінарні файли, ви можете використовувати метод Normal.
Відкрийте будь-яку програму, яка вимагає дозволу SU лише для подвійної перевірки, і справді SuperSU запитає, чи хочете ви надати їй права доступу.
Зауваження
Більшість посилань містила старіші версії для 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] не запускає вкорінену версію / копію або може призвести до певної помилки)
Тестовано на рівні 22