Zrootuj urządzenie wirtualne z Androidem za pomocą Androida 7.1.1

12

Korzystam z oficjalnego zestawu SDK systemu Android z emulatorem systemu Android, aby utworzyć wirtualny system Android 7.1.1 (x86). Muszę przetestować wiele rzeczy, między innymi niektóre aplikacje wymagają dostępu root do urządzenia.

Teraz wiem, że mogę adb rooti mam powłokę root, ale nie pozwala to instalowanym aplikacjom na dostęp do roota.

Przez jakiś czas badałem ten temat i widziałem różne podejścia. Większość odpowiedzi została opublikowana dość dawno.

Myślę, że to dość dziwne, że nie ma opcji przełączania roota - to przecież SDK.

Jak zrootować urządzenie wirtualne z systemem Android, na którym działa system Android 7.1.1, skutecznie pozwalając na dostęp root do zainstalowanych aplikacji?

edytuj: Wolę nie korzystać z płatnych emulatorów, takich jak Genymotion, jeśli to możliwe.

edit2: To jest wyłącznie do użytku osobistego.

edit3: Genymotion wydaje się być realnym rozwiązaniem, jako alternatywny emulator. Dlaczego Android SDK / Emulator nie oferuje takiej funkcji?

edit4: Odpowiedź xavier_fakerat wydaje się działać całkiem dobrze, jednak od wersji 3.1 Androida Studio nie wydaje się, że jest to trwałe rootowanie. Po ponownym uruchomieniu AVD nie ma dostępu do konta root.

SaAtomic
źródło

Odpowiedzi:

11

Jak zrootować emulator Androida (Android 7.1.1 / Nougat)

Z przyjemnością informuję społeczność o łatwiejszym sposobie rootowania emulatora Androida (uruchamianego z samodzielnego zestawu SDK Androida)

Wymagania :

Uwaga: SuperSU jest już przestarzałe, ale ta metoda nadal działa w celu zrootowania emulatora, a dla nowszych metod rootowania będzie więcej aktualizacji.

Instrukcje

  1. Zainstaluj plik SuperSu.apk

    • Najpierw zainstaluj aplikację SuperSu, po prostu przeciągnij i upuść (jeśli masz najnowszą wersję emulatora lub sideload przez adb ie adb –e install supersu.apk)

    • Po zainstalowaniu po uruchomieniu wyświetla się ekran pokazany poniżej, wskazujący „Nie zainstalowano pliku binarnego SU ..”. Ten błąd tylko potwierdza, że ​​urządzenie nie jest jeszcze zrootowane.

wprowadź opis zdjęcia tutaj

  1. Udostępnij partycję systemową emulatora

    • Jak sugeruje, musimy dać emulatorowi uprawnienia do zapisu plików systemowych.

    • Wpisz następujący kod, aby to zrobić: emulator.exe –avd {emulator_name} –writable-system

Uwaga: Przejdź do folderu narzędzi, w którym jest zainstalowany zestaw Android SDK i otwórz tam wiersz poleceń, naciskając Shift i klikając prawym przyciskiem myszy.

  1. Wypychanie binarnego su w katalogu systemowym

    • Wyodrębnij plik Recovery flashable.zip (zawierający pliki binarne su różnych architektur)

Ważny! Używaj tylko pliku binarnego su, który pasuje do twojej architektury avd, np. X86, uzbrojenie itp., I zwróć uwagę na ścieżkę, w której rozpakowałeś te pliki binarne.

  • Upewnij się, że używasz adb jako root, a także musisz ponownie zainstalować. Wystarczy wpisać te kody

adb root

adb remount

Teraz nadszedł czas na wypchnięcie pliku binarnego su:

Oto kod, którego z powodzeniem użyłem :adb -e push C:\%USERPROFILE%\Desktop\rootemu\x86\su.pie /system/bin/su

(bez względu na moją konkretną lokalizację pliku binarnego su, każda lokalizacja jest w porządku, o ile nie ma białych znaków)

Jeśli to się nie powiedzie, wypróbuj zamiast tego wypychanie do tego katalogu /system/xbin/su. Również dla emulatorów z systemem Android 5.1 i niższym używaj sui niesu.pie

  1. Zmień uprawnienia binarnego su

    • Następnie zróbmy trochę modyfikacji uprawnień binarnego su. Musimy to zrobić w emulatorze za pomocą adb:

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

Ważny!! Zanotuj ścieżkę binarną su (moja jest / system / bin)

  1. Ustawienie installdyrektywy w sprawie binarnego su i ustawienie adaemon

Wpisz kody:

su --install

i do konfigurowania demona:

su --daemon&

Ważny!! Zwróć uwagę na odstępy

  1. Ustawienie SELinux na Permissive (tj. Wyłączenie SE Linux)

    • Na koniec wyłącz selinux przez ten kod:

setenforce 0

To prawie wszystko !! Otwórz aplikację SuperSU i może poprosić o aktualizację plików binarnych, możesz użyć metody Normal.

Otwórz dowolną aplikację wymagającą uprawnień SU, aby dwukrotnie sprawdzić, a nawet SuperSU zapyta, czy chcesz udzielić jej uprawnień.

wprowadź opis zdjęcia tutaj

Uwagi

Większość referencji dotyczyła starszych wersji Androida, stąd też modyfikowałem różne polecenia i ścieżki.

Specjalne podziękowania;

Szczególna wdzięczność dla Irvina H, którego samouczek zainspirował mnie do stworzenia tego przewodnika po tym, jak wiele razy poniosłem porażkę, a także po tym, jak wielu użytkowników zrootowało emulatory. Mam nadzieję, że to również przyniesie wiele korzyści

Irvin H: Rootowanie emulatora Androida - w Android Studio 2.3 ((Android 4.4)

Aktualizacja

Jak skomentował SaAtomic,

Takie podejście jest nadal wykonalne w przypadku Androida Studio 3.0.1

Po aktualizacji do wersji emulatora 27.2.9i nowszej znacznie ułatwia teraz przechowywanie roota dzięki funkcji migawki (jeśli kopiowanie metody system.img nie działa):

Idealnie jest to bardziej jak hibernacja urządzenia wirtualnego z nienaruszoną konfiguracją, stąd wszystko zostaje zachowane.

Migawki

Możesz teraz zapisać wiele migawek AVD dla danej konfiguracji urządzenia i wybrać, które z zapisanych migawek mają być ładowane po uruchomieniu emulatora. Uruchomienie urządzenia wirtualnego przez załadowanie migawki przypomina wybudzanie fizycznego urządzenia ze stanu uśpienia, a nie uruchamianie go ze stanu wyłączenia.

Oznacza to, że jedynym warunkiem uruchomienia emulatora jest dodanie -writable-systemparametru do normalnej -avd [avdname]komendy emulatora w celu uruchomienia emulatora. (Uruchomienie emulatora tylko za pomocą emulatora -avd [nazwa_ avd] nie uruchamia zrootowanej wersji / kopii lub może spowodować błąd)

Testowany na poziomie API 22

xavier_fakerat
źródło
1
Dziękuję za szczegółową odpowiedź. Jeszcze tego nie próbowałem, ale wydaje się to realnym rozwiązaniem!
SaAtomic
1
@ SaAtomic, twoje kroki są bardzo przydatne, bardziej niż kiedykolwiek, Można również sflashować Supersu 2.82 / Magisk przy użyciu niestandardowego odzyskiwania, np. TWRP, i można łatwo uzyskać root. Działa to dobrze na każdym 7.1.1 lub 7.1.2 uruchomione urządzenia .... Dziękuję ..
Panchajanya Sarkar
Właśnie przetestowałem to z Android SDK 2.3.3 (AVD Manager) i wirtualnym Pixelem z Androidem 7.1.1. Działa dokładnie tak, jak opisano od razu. Dziękuję Ci!
SaAtomic
1
Aktualizacja: To podejście jest nadal wykonalne w Android Studio 3.0.1
SaAtomic
1
Najprawdopodobniej używasz niewłaściwego obrazu emulatora, którego potrzebujesz Google APIs Intel x86 Atom System ImagezamiastGoogle Play Intel x86 Atom System Image
xavier_fakerat