Jak zrootować emulator Androida (testowany na Androidzie 7.1.1 / Nougat)
Wymagania :
Instrukcje
Zainstaluj plik SuperSu.apk
Najpierw zainstaluj aplikację SuperSu, po prostu przeciągnij i upuść (jeśli używasz najnowszej wersji emulatora lub sideload przez adb ie adb -e install supersu.apk
)
Po zainstalowaniu, po uruchomieniu wyświetla się ekran, jak pokazano poniżej, z informacją „Nie ma zainstalowanego pliku binarnego SU ..”. Ten błąd potwierdza tylko, że urządzenie nie jest jeszcze zrootowane.
Udostępnij partycję systemową emulatora do zapisu
Jak sugeruje, musimy dać emulatorowi uprawnienia do zapisu plików systemowych.
Wpisz następujący kod, aby to osiągnąć: emulator -avd {emulator_name} -writable-system
Jeśli masz więcej niż jeden AVD, możesz uzyskać listę AVD za pomocą polecenia: emulator -list-avds
Uwaga: przejdź do folderu narzędzi, w którym jest zainstalowany Android SDK, i otwórz tam wiersz polecenia, naciskając klawisz Shift i klikając prawym przyciskiem myszy.
Wysłanie pliku binarnego su do katalogu systemowego
- 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, arm itp., I zanotuj ścieżkę, w której rozpakowałeś te pliki binarne.
- Upewnij się, że korzystasz z adb jako root i musisz ponownie zamontować. Po prostu wprowadź te kody
adb root
adb remount
Nadszedł czas, aby przesunąć plik binarny su:
Oto kod, którego z powodzeniem użyłem :adb -e push C:\Users\User1\Desktop\rootemu\x86\su.pie /system/bin/su
(nieważne o mojej konkretnej lokalizacji su binarnej, każda lokalizacja jest w porządku, o ile nie ma spacji)
Uwaga: Aby dowiedzieć się bin
lub xbin
zrobić w konsoli wcześniej:> adb shell
,>ls /system/xbin/su
Jeśli to się nie powiedzie, spróbuj zamiast tego wypchnąć do tego katalogu /system/xbin/su
. Również w przypadku emulatorów z systemem Android 5.1 i starszym użyj su
i niesu.pie
Zmień uprawnienia pliku binarnego su
- Następnie zróbmy trochę modyfikacji uprawnień pliku binarnego su. Musimy to zrobić na urządzeniu emulującym poprzez adb:
adb -e shell
su root
cd /system/bin
chmod 06755 su
Ważny!! Zwróć uwagę na ścieżkę binarną su (moja to / system / bin)
- Ustawiając
install
dyrektywę na su binarny i ustaw plikdaemon
Wpisz kody:
su --install
i do skonfigurowania demona:
su --daemon&
Ważny!! Zwróć uwagę na odstępy
Ustawienie SELinux na Permissive (tj. Wyłączenie SE Linux)
- Na koniec wyłącz selinux za pomocą tego kodu:
setenforce 0
Otwórz aplikację SuperSU i może poprosić o aktualizację plików binarnych, możesz użyć metody Normal.
Uwaga: jeśli doświadczasz pętli rozruchowych, raczej nie aktualizuj plików binarnych, po prostu używaj ich tak, jak jest.
To prawie wszystko !!
Otwórz dowolną aplikację wymagającą uprawnień SU, aby dokładnie sprawdzić, a SuperSU zapytaj, czy chcesz przyznać jej uprawnienia su.
Aby utrwalić aktualizację roota jako binarną (używając metody Normal), skopiuj system.img z katalogu tymczasowego ( Users\AppData\Local\Temp\Android Emulator
plik ma zwykle losową nazwę, np. O 1359g.tmp
dużym rozmiarze) i zamień domyślny system.img
.
Aktualizacja :
Zauważyłem, że łatwiej jest uzyskać tymczasowy obraz systemu w systemie Linux niż w systemie Windows. Możesz spróbować użyć migawki.
Aktualizacja 4 sierpnia 2018 r
Wraz z pojawieniem się emulatora 27.3.x
znacznie ułatwia to zachowanie roota dzięki funkcji migawki (jeśli kopiowanie system.img
metody nie działa):
Idealnie byłoby bardziej jak hibernarig wirtualnego urządzenia z nienaruszoną konfiguracją, stąd wszystko jest zachowane.
Migawki
Możesz teraz zapisać wiele migawek AVD dla danej konfiguracji urządzenia i wybrać, które z zapisanych migawek mają zostać załadowane po uruchomieniu emulatora. Uruchomienie urządzenia wirtualnego przez załadowanie migawki przypomina budzenie urządzenia fizycznego ze stanu uśpienia, w przeciwieństwie do uruchamiania go ze stanu wyłączonego.
Oznacza to, że jedynym wymaganiem do uruchomienia emulatora jest dodanie -writable-system
parametru do zwykłego emulator -avd [avdname]
polecenia, aby uruchomić emulator. ( Uruchomienie emulatora tylko z emulator -avd [avdname]
nie uruchamia zrootowanej wersji / kopii lub może prowadzić do błędu )
Testowane na poziomie API 22
Również w przypadku problemów z bootloopem zobacz inny post: Emulator Androida: Jak uniknąć pętli rozruchowej po rootowaniu? i ich aktualizacje.
Uwagi
Większość treści w odniesieniu do starszych wersji Androida, stąd powód dla różnych poleceń i ścieżek, które zmodyfikowałem.
Podziękowanie;