Cómo rootear el emulador de Android (Android 7.1.1 / Nougat)
Me complace informar a la comunidad de una manera más fácil de rootear el emulador de Android (ejecutado desde Android SDK independiente)
Requisitos :
Nota: SuperSU ahora está en desuso, pero este método aún funciona para rootear el emulador, y se proporcionarán más actualizaciones para los nuevos métodos de enrutamiento.
Instrucciones
Instale el SuperSu.apk
Instale la aplicación SuperSu en primer lugar, simplemente arrastre y suelte (si ejecuta la última versión del emulador o carga lateral a través de adb, es decir adb –e install supersu.apk
)
Después de instalarlo, cuando lo ejecuta, muestra una pantalla como se muestra a continuación que indica "No hay un binario SU instalado ...". Este error solo confirma que el dispositivo aún no está rooteado.
Hacer que la partición del sistema del emulador se pueda escribir
Como sugiere, debemos darle permiso al emulador para escribir archivos del sistema.
Escriba el siguiente código para lograr esto: emulator.exe –avd {emulator_name} –writable-system
Nota: navegue a la carpeta de herramientas donde está instalado Android SDK y abra el símbolo del sistema presionando Mayús y haciendo clic derecho.
Empujar su binary en el directorio del sistema
- Extraiga la recuperación flashable.zip (que contiene los binarios su de diferentes arquitecturas)
¡Importante! Utilice únicamente el binario su que coincida con su arquitectura avd, por ejemplo, x86, arm, etc., y observe la ruta de acceso donde extrajo estos binarios.
- Asegúrese de estar ejecutando adb como root y también necesita volver a montar. Solo ingrese estos códigos
adb root
adb remount
Ahora es el momento de empujar el binario su:
Este es el código que utilicé con éxito :adb -e push C:\%USERPROFILE%\Desktop\rootemu\x86\su.pie /system/bin/su
(no importa mi ubicación específica de su binary, cualquier ubicación está bien siempre que no haya espacios en blanco)
Si esto falla, intente presionar este directorio en su lugar /system/xbin/su
. También para emuladores que ejecutan Android 5.1 y versiones inferiores, use su
y nosu.pie
Cambiar los permisos del binario su
- A continuación, modifiquemos un poco los permisos de su binary. Tenemos que hacer esto en el dispositivo emulador a través de adb:
adb –e shell
su root
cd /system/bin
chmod 06755 su
¡¡Importante!! Tome nota de su ruta binaria (la mía es / system / bin)
- Establecer la
install
directiva en su binario y establecer undaemon
Escriba los códigos:
su --install
y para configurar daemon:
su --daemon&
¡¡Importante!! Tomar nota del espaciado
Establecer SELinux en Permisivo (es decir, desactivar SE Linux)
- Finalmente apague selinux a través de este código:
setenforce 0
¡¡Eso es practicamente todo!! Abra la aplicación SuperSU y puede solicitar actualizar los archivos binarios, puede usar el método Normal.
Abra cualquier aplicación que requiera permisos SU solo para verificar dos veces y, de hecho, SuperSU le preguntará si desea otorgarle permisos su.
Observaciones
La mayor parte del contenido de referencia era para versiones anteriores de Android y, por lo tanto, la razón de los diferentes comandos y rutas que modifiqué.
Agradecimientos especiales;
Un agradecimiento especial a Irvin H, cuyo tutorial me inspiró a crear esta guía después de haber fallado innumerables veces, y también después de ver la necesidad de que muchos usuarios arraigan sus emuladores también. Espero que esto también beneficie mucho
Irvin H: Rooteando el emulador de Android - en Android Studio 2.3 ((Android 4.4)
Actualizar
Como comentó SaAtomic,
Este enfoque sigue siendo viable con Android Studio 3.0.1
Después de actualizar a la versión del emulador 27.2.9
y superior, ahora hace que la preservación de la raíz sea mucho más fácil a través de la función de instantánea (si la copia del método system.img no funciona):
Idealmente, es más como hibernar el dispositivo virtual con la configuración intacta, por lo tanto, todo se conserva.
Instantáneas
Ahora puede guardar múltiples instantáneas de AVD para una configuración de dispositivo determinada y elegir cuáles de las instantáneas guardadas cargar cuando inicia el emulador. Iniciar un dispositivo virtual cargando una instantánea es muy parecido a despertar un estado físico desde un estado de suspensión, en lugar de arrancarlo desde un estado apagado.
Esto implica que el único requisito para iniciar el emulador es agregar el -writable-system
parámetro al -avd [avdname]
comando normal del emulador para iniciar el emulador. (Ejecutar el emulador solo con el emulador -avd [avdname] no inicia la versión / copia rooteada o puede generar algún error)
Probado en API nivel 22