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
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.
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.
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 su
i niesu.pie
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)
- Ustawienie
install
dyrektywy w sprawie binarnego su i ustawienie adaemon
Wpisz kody:
su --install
i do konfigurowania demona:
su --daemon&
Ważny!! Zwróć uwagę na odstępy
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ń.
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.9
i 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-system
parametru 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