Per AVD con 5.1.1 e 6.0 ho usato lo script successivo in 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
Hai bisogno di UPDATE.zip da SuperSU. Li ho decompressi in qualsiasi cartella. Crea un file bat con il contenuto sopra. Non dimenticare di specificare l'architettura e il dispositivo necessari: set adb=adb -s emulator-5558
e set arch=x64
. Se esegui Android sopra o uguale a 5.0, set pie=
passa a set pie=.pie
. Eseguirlo. Ottieni root temporaneo per l'esecuzione corrente.
Se si verifica un errore nella partizione di sistema di rimontaggio, è necessario avviare AVD dalla riga di comando. Vedi sotto il primo passo per Android 7.
Se vuoi renderlo persistente, aggiorna il file binario in SuperSU e archivia system.img dalla cartella temporanea in sostituzione di system.img predefinito.
Come convertire la radice temporanea risultante su un permanente
Innanzitutto, va al SuperSu. Offre un aggiornamento binario. Aggiornamento in modo normale. Riavvia rifiuto.
Secondo - rilevante solo per gli emulatori. Lo stesso AVD. La linea di fondo è che i cambiamenti nell'immagine di sistema non verranno salvati. Devi tenerli per se stessi.
Esistono già istruzioni che variano per emulatori diversi.
Per AVD puoi provare a trovare un file system.img temporaneo, salvarlo da qualche parte e utilizzarlo all'avvio dell'emulatore.
In Windows si trova in %LOCALAPPDATA%\Temp\AndroidEmulator
e ha un nome simile a TMP4980.tmp
.
Lo si copia in una cartella avd device ( %HOMEPATH%\.android\avd\%AVD_NAME%.avd\
) e si rinomina in system.img
.
Ora verrà utilizzato all'inizio, invece del solito. Vero se l'immagine nell'SDK viene aggiornata, avrà quella vecchia.
In questo caso, dovrai rimuoverlo system.img
e ripetere l'operazione alla sua creazione.
Manuale più dettagliato in russo: http://4pda.ru/forum/index.php?showtopic=318487&view=findpost&p=45421931
Per Android 7 è necessario eseguire ulteriori passaggi: 1. È necessario eseguire manualmente l'emulatore. Vai alla cartella sdk sdk\tools\lib64\qt\lib
. Esegui da questo emulatore di cartelle con opzioni In -writable-system -selinux disabled
questo modo:
F:\android\sdk\tools\lib64\qt\lib>F:\android\sdk\tools\emulator.exe -avd 7.0_x86 -verbose -writable-system -selinux disabled
È necessario riavviare adbd
da root:
root adulator -s emulator-5554
E sistema di rimontaggio:
adb -s emulator-5554 remount
Può essere donato una sola volta per ogni emulatore. E qualsiasi altro rimontaggio può interrompere la modalità di scrittura. Per questo motivo non è necessario eseguire altri comandi con remaunt, come mount -o remount,rw /system
.
Un altro passo rimane lo stesso: caricare binario, eseguire binario come demone e così via.
Immagine da AVD Android 7 x86 con root:
Se viene visualizzato un errore relativo a PIE sull'esecuzione del file su
binario, il caricamento viene eseguito sull'emulatore binario errato. Devi caricare il nome binario su.pie
all'interno dell'archivio, ma sull'emulatore deve essere chiamato come su
, non su.pie
.