Як виконувати кореневий емулятор Android (тестовано на Android 7.1.1 / Nougat)
Вимоги :
Інструкції
Встановіть SuperSu.apk
По-перше, встановіть додаток SuperSu, просто перетягніть його (якщо використовується остання версія емулятора чи завантаження через adb, тобто adb -e install supersu.apk
)
Після його встановлення під час запуску на екрані відображається екран, як показано нижче, із зазначенням "Бінарний код SU не встановлений ..". Ця помилка лише підтверджує, що пристрій ще не вкоренився.
Зробіть системний розділ емулятора для запису
Як це говорить, нам потрібно надати емулятору дозвіл на запис системних файлів.
Введіть наступний код для цього: emulator -avd {emulator_name} -writable-system
Якщо у вас є більше одного AVD, ви можете отримати список avds за допомогою команди: emulator -list-avds
Примітка. Перейдіть до папки інструментів, де встановлено Android SDK, і відкрийте там командний рядок натисканням клавіші shift та клацання правою кнопкою миші.
Натискання на бінарне в системний каталог
- Витягніть Recovery flashable.zip (містить су-бінарні файли різних архітектур)
Важливо! Використовуйте лише su binary, який відповідає вашій архітектурі avd, наприклад x86, arm тощо.
- Переконайтеся, що ви використовуєте adb як корінь, а також вам потрібно здійснити повторний перегляд. Просто введіть ці коди
adb root
adb remount
Тепер прийшов час натиснути на бінарне:
Це код, який я успішно використав :adb -e push C:\Users\User1\Desktop\rootemu\x86\su.pie /system/bin/su
(я не маю на увазі моє конкретне місце розташування бінарних даних, будь-яке місце в порядку, поки немає білого простору)
Примітка. Щоб розібратися bin
або xbin
зробити в консолі раніше:> adb shell
,>ls /system/xbin/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 бінарний шлях (шахта є / система / бін)
- Встановлення
install
директиви щодо субінарного та встановлення adaemon
Введіть коди:
su --install
і для налаштування демона:
su --daemon&
Важливо !! Візьміть на замітку проміжки
Встановлення SELinux на дозвільне (тобто вимкнення SE Linux)
- Нарешті вимкніть selinux за допомогою цього коду:
setenforce 0
Відкрийте додаток SuperSU, і він може попросити оновити бінарні файли, ви можете використовувати метод Normal.
Примітка. Якщо у вас виникають завантажувальні системи, скоріше не оновлюйте бінарні файли, просто використовуйте їх як є.
Це майже все !!
Відкрийте будь-яку програму, яка вимагає дозволів SU просто подвійно перевірити, і дійсно SuperSU запитає, чи хочете ви надати їй права доступу.
Для кореневого збереження кореневого Users\AppData\Local\Temp\Android Emulator
файлу (двостороннім методом) скопіюйте system.img з каталогу temp ( файл зазвичай називається випадковим чином, наприклад, 1359g.tmp
з великим розміром) та замініть за замовчуванням system.img
.
Оновлення :
Я зауважив, що простіше отримати тимчасовий образ системи в Linux, ніж Windows. Ви можете спробувати використати знімок.
Оновлення 4 серпня 2018 року
З появою емулятора 27.3.x
тепер значно полегшується збереження кореня за допомогою функції знімка (якщо копіювання system.img
методу не працює):
В ідеалі це більше схоже на hibernarig віртуальний пристрій з недоторканою конфігурацією, отже, все збережено.
Знімки
Тепер ви можете зберегти кілька знімків AVD для заданої конфігурації пристрою та вибрати, який із збережених знімків завантажувати під час запуску емулятора. Запустити віртуальний пристрій, завантаживши знімок, дуже схоже на пробудження фізичного з режиму сну, на відміну від завантаження його з вимкненого стану.
Це означає, що єдина вимога до запуску емулятора - це додавання -writable-system
параметра до звичайної emulator -avd [avdname]
команди для запуску емулятора. ( Запуск емулятора просто за допомогою emulator -avd [avdname]
не запускає вкорінену версію / копію або може призвести до помилки )
Тестовано на рівні 22
Також щодо проблем із завантаженням дивіться інший пост: Android Emulator: Як уникнути циклу завантаження після вкорінення? та їх оновлення.
Зауваження
Більшість вмісту посилань було для старих версій Android, а отже, причина для різних команд і шляхів, які я змінив.
Подяка;