Pour AVD avec 5.1.1 et 6.0, j'ai utilisé le script suivant dans 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
Besoin du fichier UPDATE.zip de SuperSU. Décompressez-les dans n'importe quel dossier. Créer un fichier bat avec le contenu ci-dessus. N'oubliez pas de spécifier l'architecture et l'appareil nécessaires : set adb=adb -s emulator-5558
y set arch=x64
. Si vous utilisez un système Android supérieur ou égal à 5.0, modifiez le paramètre set pie=
a set pie=.pie
. Exécutez-le. Vous obtenez une racine temporaire pour l'exécution en cours.
Si vous obtenez une erreur lors du remontage de la partition système, vous devez lancer AVD à partir de la ligne de commande. Voir ci-dessous la première étape pour Android 7.
Si vous voulez le rendre persistant, mettez à jour le binaire dans SuperSU et stockez system.img dans un dossier temporaire en remplacement du system.img par défaut.
Comment convertir la racine temporaire qui en résulte en une racine permanente ?
Tout d'abord, le prix va à SuperSu. Il propose une mise à jour binaire. Mettre à jour de manière normale. Le redémarrage est rejeté.
Deuxièmement, il ne concerne que les émulateurs. Le même AVD. L'essentiel est que les modifications apportées à l'image du système ne seront pas sauvegardées. Vous devez les conserver pour elles-mêmes.
Il existe déjà des instructions qui varient selon les émulateurs.
Pour AVD, vous pouvez essayer de trouver un fichier temporaire system.img, le sauvegarder quelque part et l'utiliser lorsque vous démarrez l'émulateur.
Sous Windows, il se trouve dans le répertoire %LOCALAPPDATA%\Temp\AndroidEmulator
et porte un nom du type TMP4980.tmp
.
Vous le copiez dans un dossier avd device ( %HOMEPATH%\.android\avd\%AVD_NAME%.avd\
), et renommé en system.img
.
Désormais, il sera utilisé au début, au lieu de l'habituel. Vrai si l'image dans le SDK est mise à jour, l'ancienne image sera utilisée.
Dans ce cas, vous devrez supprimer cette system.img
et répéter l'opération sur sa création.
Manuel plus détaillé en russe : http://4pda.ru/forum/index.php?showtopic=318487&view=findpost&p=45421931
Pour Android 7, vous devez exécuter des étapes supplémentaires : 1. Lancer l'émulateur manuellement. Aller dans le dossier sdk sdk\tools\lib64\qt\lib
. Exécuter à partir de ce dossier l'émulateur avec les options -writable-system -selinux disabled
Comme ceci :
F:\android\sdk\tools\lib64\qt\lib>F:\android\sdk\tools\emulator.exe -avd 7.0_x86 -verbose -writable-system -selinux disabled
-
Vous devez redémarrer adbd
de la racine :
adb -s emulator-5554 Root
Et système de remontage :
adb -s emulator-5554 remount
Elle ne peut être effectuée qu'une seule fois par émulateur. Et tout autre remontage peut interrompre le mode d'écriture. Pour cette raison, il n'est pas nécessaire d'exécuter d'autres commandes avec remount, comme par exemple mount -o remount,rw /system
.
Les autres étapes restent les mêmes - télécharger le binaire, exécuter le binaire en tant que démon et ainsi de suite.
Image d'AVD Android 7 x86 avec Root :
Si le message d'erreur PIE s'affiche lors de l'exécution su
vous téléchargez alors un mauvais binaire dans l'émulateur. Vous devez télécharger un binaire nommé su.pie
à l'intérieur de l'archive, mais sur l'émulateur il doit être nommé comme su
, pas su.pie
.