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.
![wprowadź opis zdjęcia tutaj](https://i.stack.imgur.com/25iufm.png)
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ń.
![wprowadź opis zdjęcia tutaj](https://i.stack.imgur.com/muPTim.png)
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