Корінне віртуальне пристрій Android з Android 7.1.1


12

Я використовую офіційний SDK для Android разом з Android Emulator, щоб створити віртуальний Android 7.1.1 (x86). Мені потрібно перевірити ряд речей, серед інших, деякі програми вимагають кореневого доступу до пристрою.

Тепер я знаю, що я можу adb rootі маю кореневу оболонку, але це не дозволяє додаткам, які я встановлюю, мати доступ до кореня.

Зараз я досліджував цю тему деякий час і бачив різні підходи. Більшість відповідей були опубліковані досить давно.

Я думаю, що це досить дивно, що немає можливості перемикати root - це все-таки SDK.

Як викорінити віртуальний пристрій Android, на якому працює операційна система Android 7.1.1, ефективно дозволяючи кореневому доступу до встановлених програм?

редагувати: Я б краще не вдався до платних емуляторів, як, наприклад, Genymotion.

edit2: Це виключно для особистого використання.

edit3: Genymotion виявляється життєздатним рішенням, як альтернативний емулятор. Чому Android SDK / емулятор не пропонує такої функції?

edit4: Начебто, відповідь xavier_fakerat працює прекрасно, однак, оскільки Android Studio версії 3.1 це, здається, не є постійним вкоріненням. Щойно AVD перезавантажиться, доступ до кореневих даних відпадає.

Відповіді:


11

Як виконувати кореневий емулятор Android (Android 7.1.1 / Nougat)

Я радий повідомити спільноту про простіший спосіб кореневого емулятора андроїда (запустіть із автономного Android SDK)

Вимоги :

Примітка: SuperSU тепер застаріло, але цей метод все ще працює для викорінення емулятора, і більше оновлень буде отримано для нових методів вкорінення.

Інструкції

  1. Встановіть SuperSu.apk

    • По-перше, встановіть додаток SuperSu, просто перетягніть його (якщо використовується остання версія емулятора чи завантаження через adb, тобто adb –e install supersu.apk)

    • Після його встановлення під час запуску на екрані відображається екран, як показано нижче, із зазначенням "Бінарний код SU не встановлений ..". Ця помилка лише підтверджує, що пристрій ще не вкоренився.

введіть тут опис зображення

  1. Зробіть системний розділ емулятора для запису

    • Як це говорить, нам потрібно надати емулятору дозвіл на запис системних файлів.

    • Введіть наступний код для цього: emulator.exe –avd {emulator_name} –writable-system

Примітка. Перейдіть до папки інструментів, де встановлено Android SDK, і відкрийте там командний рядок натисканням клавіші shift та клацання правою кнопкою миші.

  1. Натискання на бінарне в системний каталог

    • Витягнути 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

  1. Змінення дозволів на бінарні файли

    • Далі зробимо трохи модифікації дозволів su binary. Це потрібно зробити в емуляторному пристрої через adb:

    adb –e shell su root cd /system/bin chmod 06755 su

Важливо !! Візьміть до відома su бінарний шлях (шахта є / system / bin)

  1. Встановлення installдирективи щодо субінарного та встановлення adaemon

Введіть коди:

su --install

і для налаштування демона:

su --daemon&

Важливо !! Візьміть на замітку проміжки

  1. Встановлення 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


1
Дякую за детальну відповідь. Я ще не пробував цього, але це здається життєздатним рішенням!
SaAtomic

1
@SaAtomic, ваші кроки дуже корисні. Більше того, можна також прошивати Supersu 2.82 / Magisk, використовуючи користувальницьке відновлення, наприклад, TWRP, і ви можете легко отримати root .... Це добре працює на будь-яких 7.1.1 або 7.1.2 запущені пристрої .... Дякую ..
Панчаджаня Саркар

Я щойно тестував це на Android SDK 2.3.3 (AVD Manager) та віртуальному Pixel за допомогою Android 7.1.1. Працює так, як описано відразу. Дякую!
SaAtomic

1
Оновлення: Цей підхід досі діє з Android Studio 3.0.1
SaAtomic

1
Найімовірніше, що ви використовуєте неправильне зображення емулятора, вам потрібно скористатися, Google APIs Intel x86 Atom System Imageа неGoogle Play Intel x86 Atom System Image
xavier_fakerat
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.