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 de UPDATE.zip de SuperSU. Décompressez-les dans n'importe quel dossier. Créez un fichier chauve-souris avec le contenu ci-dessus. N'oubliez pas de spécifier l'architecture et le périphérique nécessaires: set adb=adb -s emulator-5558
et set arch=x64
. Si vous exécutez Android supérieur ou égal à 5,0, passez set pie=
à set pie=.pie
. Exécuter. Vous obtenez une racine temporaire pour l'exécution en cours.
Si vous avez une erreur lors du remontage de la partition système, vous devez démarrer 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 à partir du dossier temporaire en remplacement de system.img par défaut.
Comment convertir la racine temporaire résultante en un permanent
Tout d'abord - il va à SuperSu. Il propose une mise à jour binaire. Mettez à jour de la manière normale. Reboot rejette.
Deuxièmement - uniquement pertinent pour les émulateurs. Le même AVD. L'essentiel est que les modifications apportées à l'image système ne seront pas enregistrées. Vous devez les garder pour eux.
Il existe déjà des instructions qui varient selon les émulateurs.
Pour AVD, vous pouvez essayer de trouver un fichier temporaire system.img, l'enregistrer quelque part et l'utiliser lorsque vous démarrez l'émulateur.
Sous Windows, il se trouve dans le %LOCALAPPDATA%\Temp\AndroidEmulator
et porte un nom similaire à TMP4980.tmp
.
Vous le copiez dans un dossier avd device ( %HOMEPATH%\.android\avd\%AVD_NAME%.avd\
) et vous l'avez renommé en system.img
.
Maintenant, il sera utilisé au début, au lieu de l'habituel. Vrai si l'image du SDK est mise à jour, elle aura l'ancienne.
Dans ce cas, vous devrez le supprimer system.img
et répéter l'opération lors de 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. Besoin d'exécuter l'émulateur manuellement. Accédez au dossier sdk sdk\tools\lib64\qt\lib
. Exécutez à partir de cet émulateur de dossier avec des 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
partir de la racine:
adb -s émulateur-5554 racine
Et remonter le système:
adb -s emulator-5554 remount
Il ne peut être donné qu'une seule fois par émulateur d'exécution. Et tout autre remontage peut interrompre le mode d'écriture. Pour cette raison, vous n'avez pas besoin d'exécuter d'autres commandes avec remount, comme mount -o remount,rw /system
.
Une autre étape reste la même - 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 vous voyez une erreur concernant PIE lors de l'exécution du su
binaire, alors vous téléchargez sur l'émulateur un mauvais binaire. Vous devez télécharger le binaire nommé su.pie
dans l'archive, mais sur l'émulateur, il doit être nommé su
, non su.pie
.