5.1.1 및 6.0이 포함 된 AVD의 경우 Windows에서 다음 스크립트를 사용했습니다.
set adb=adb -s emulator-5558
set arch=x64
set pie=
adb start-server
%adb% root
%adb% remount
rem %adb% shell mount -o remount,rw /system
%adb% shell setenforce 0
%adb% install common/Superuser.apk
%adb% push %arch%/su%pie% /system/bin/su
%adb% shell chmod 0755 /system/bin/su
%adb% push %arch%/su%pie% /system/xbin/su
%adb% shell chmod 0755 /system/xbin/su
%adb% shell su --install
%adb% shell "su --daemon&"
rem %adb% shell mount -o remount,ro /system
exit /b
SuperSU의 UPDATE.zip이 필요합니다. 아무 폴더 에나 풀었습니다. 위의 내용으로 박쥐 파일을 만듭니다. 필요한 아키텍처 및 장치를 지정하는 것을 잊지 마십시오 : set adb=adb -s emulator-5558
및 set arch=x64
. 5.0 이상에서 Android를 실행하는 경우로 변경 set pie=
하십시오 set pie=.pie
. 그것을 실행하십시오. 현재 실행에 대한 임시 루트를 얻습니다.
시스템 파티션을 다시 마운트 할 때 오류가 발생하면 명령 행에서 AVD를 시작해야합니다. Android 7의 첫 번째 단계는 아래를 참조하십시오.
영구적으로 유지하려면 SuperSU에서 바이너리를 업데이트하고 기본 system.img의 대체로 temp 폴더에서 system.img를 저장하십시오.
영구적으로 결과 임시 루트를 변환하는 방법
먼저 SuperSu로갑니다. 이진 업그레이드를 제공합니다. 정상적인 방법으로 업데이트하십시오. 재부팅 거부.
둘째-에뮬레이터에만 해당됩니다. 동일한 AVD. 결론은 시스템 이미지의 변경 사항이 저장되지 않는다는 것입니다. 스스로 보관해야합니다.
에뮬레이터마다 명령이 다릅니다.
AVD의 경우 임시 파일 system.img를 찾아 어딘가에 저장하고 에뮬레이터를 시작할 때 사용할 수 있습니다.
Windows에서는에 위치하고 있으며 %LOCALAPPDATA%\Temp\AndroidEmulator
이름은 다음과 같습니다 TMP4980.tmp
.
폴더 avd 장치 ( %HOMEPATH%\.android\avd\%AVD_NAME%.avd\
)에 복사 하고 이름을으로 변경했습니다 system.img
.
이제 평소 대신 처음에 사용됩니다. SDK의 이미지가 업데이트되면 이전 이미지를 갖습니다.
이 경우이를 제거 system.img
하고 생성 작업을 반복해야합니다.
러시아어로 된 자세한 매뉴얼 : http://4pda.ru/forum/index.php?showtopic=318487&view=findpost&p=45421931
안드로이드 7의 경우 추가 단계를 실행해야합니다. 1. 수동으로 에뮬레이터를 실행해야합니다. SDK 폴더로 이동하십시오 sdk\tools\lib64\qt\lib
. 다음과 같은 옵션으로이 폴더 에뮬레이터에서 실행하십시오 -writable-system -selinux disabled
.
F:\android\sdk\tools\lib64\qt\lib>F:\android\sdk\tools\emulator.exe -avd 7.0_x86 -verbose -writable-system -selinux disabled
adbd
루트에서 다시 시작해야 합니다.
adb -s 에뮬레이터 -5554 루트
그리고 시스템을 다시 마운트하십시오 :
adb -s emulator-5554 remount
실행 에뮬레이터 당 한 번만 기부 할 수 있습니다. 그리고 다시 마운트하면 쓰기 모드가 중단 될 수 있습니다. 이 때문에 remount와 같은 다른 명령을 실행할 필요가 없습니다 mount -o remount,rw /system
.
다른 단계는 동일하게 유지됩니다-바이너리 업로드, 바이너리를 데몬으로 실행 등.
루트가있는 AVD Android 7 x86의 그림 :
su
바이너리 를 실행할 때 PIE에 대한 오류가 표시되면 잘못된 바이너리를 에뮬레이터에 업로드합니다. su.pie
archive 내부에 이름이 지정된 바이너리를 업로드해야 하지만 에뮬레이터에서는 이름이 su
아닌 로 이름이 지정되어야합니다 su.pie
.