tools studio para funciona emulator emulador descargar android-emulator root
Recuperación flashable.zip (contiene su binario)

android-emulator - studio - emulador de android para android



¿Cómo obtener acceso a la raíz en el emulador de Android? (9)

Tengo todas las versiones de Android SDK (de 1.5 a 2.3.3) y probé muchos métodos para obtener Root en el emulador de Android. No uso ningún dispositivo Android y pruebo todo en el emulador (AVD).

Necesito obtener acceso de administrador en cualquiera de los emuladores de Android para usar la funcionalidad ''iptables'' y ''busybox''. Y para usar iptables, debo tener acceso de root. El comando Atleast ''su'' debe ejecutarse en el emulador de terminal.

También z4root aplicación z4root ,

Pero lleva mucho tiempo y no termina de enraizar, y se atasca. algunos dicen que si degradamos el sistema por debajo de RC30, de esta manera podemos obtener acceso a la raíz. si esto es cierto, ¿cómo hacer esto? Yo uso Linux y Windows OS.

Por favor, alguien dime cualquier método para rootear mi emulador.


Aquí está la lista de comandos que debe ejecutar mientras se ejecuta el emulador, pruebo esta solución para un avd en Android 2.2:

adb shell mount -o rw,remount -t yaffs2 /dev/block/mtdblock03 /system adb push su /system/xbin/su adb shell chmod 06755 /system adb shell chmod 06755 /system/xbin/su

Supone que el su binary se encuentra en el directorio de trabajo. Puede encontrar su y superusuario aquí: http://forum.xda-developers.com/showthread.php?t=682828 . Necesita ejecutar estos comandos cada vez que inicie el emulador. Puede escribir un script que inicie el emulador y lo rootee.


Creo que la manera más fácil es crear un alias para el comando sh , por ejemplo

adb shell mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system cd /system/bin cat sh > su && chmod 4775 su

Probado en Android Emulator 3.0 y versiones posteriores.


Estas respuestas son innecesariamente complicadas :)

$ > adb shell generic_x86:/ $ generic_x86:/ $ exit $ > adb root restarting adbd as root $ > adb shell generic_x86:/ #


Intenta de otra manera resolver esta pregunta.

Use Genymotion lugar del emulador predeterminado de Android. Está rooteado por defecto. Es mucho más fácil y más como un teléfono normal. Es gratis para uso personal.

Encontré esta pregunta porque quiero instalar Xposed Framework en el emulador predeterminado de Android. Esa instalación necesita root y flash con una recuperación personalizada (por ejemplo, TWRP), ambas son difíciles para el emulador predeterminado de Android. Finalmente usé Genymotion y todo hecho en minutos.


Para AVD con 5.1.1 y 6.0 utilicé el siguiente script en 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

Necesita UPDATE.zip de SuperSU. Desempaquételas en cualquier carpeta. Crea un archivo bat con el contenido de arriba. No olvides especificar la arquitectura y el dispositivo necesarios: set adb=adb -s emulator-5558 y set arch=x64 . Si ejecuta Android arriba o igual a 5.0, cambie set pie= para set pie=.pie . Ejecutarlo. Obtiene raíz temporal para la ejecución actual.

Si tiene un error en la partición del sistema de remontaje, entonces necesita iniciar AVD desde la línea de comandos. Consulte el siguiente paso para Android 7.

Si desea que sea persistente, actualice el binario en SuperSU y almacene system.img en la carpeta temp como reemplazo del sistema predeterminado.img.

Cómo convertir la raíz temporal resultante en un permanente

Primero, va a SuperSu. Ofrece una actualización binaria. Actualiza de la manera normal. Reiniciar rechazo.

Segundo: solo relevante para emuladores. El mismo AVD. La conclusión es que los cambios en la imagen del sistema no se guardarán. Necesitas guardarlos para ellos.

Ya hay instrucciones varían para diferentes emuladores.

Para AVD puede intentar encontrar un archivo temporal system.img, guardarlo en algún lugar y usarlo cuando inicie el emulador.

En Windows, se encuentra en %LOCALAPPDATA%/Temp/AndroidEmulator y tiene un nombre parecido a TMP4980.tmp .

Usted lo copia a una carpeta avd device ( %HOMEPATH%/.android/avd/%AVD_NAME%.avd/ ), y lo renombra a system.img .

Ahora se usará al inicio, en lugar de lo habitual. Verdadero si la imagen en el SDK se actualiza, tendrá la anterior.

En este caso, deberá eliminar este system.img y repetir la operación en su creación.

Manual más detallado en ruso: http://4pda.ru/forum/index.php?showtopic=318487&view=findpost&p=45421931

Para Android 7 necesita ejecutar pasos adicionales: 1. Necesita ejecutar el emulador manualmente. Vaya a la carpeta sdk/tools/lib64/qt/lib . Ejecutar desde este emulador de carpeta con opciones -writable-system -selinux disabled esta manera:

F:/android/sdk/tools/lib64/qt/lib>F:/android/sdk/tools/emulator.exe -avd 7.0_x86 -verbose -writable-system -selinux disabled

  1. Necesita reiniciar adbd desde la raíz:

    raíz adb -s emulator-5554

Y remontar el sistema:

adb -s emulator-5554 remount

Se puede usar solo una vez por emulador de ejecución. Y cualquier otro remontaje puede romper el modo de escritura. Debido a esto, no es necesario ejecutar ningún otro comando con el remontaje, como mount -o remount,rw /system .

Otros pasos permanecen igual: cargue binarios, ejecute binarios como daemon, etc.

Imagen de AVD Android 7 x86 con raíz:

Si ve un error sobre PIE en ejecutar su binario, entonces carga al emulador el binario incorrecto. Debes subir el archivo binario llamado su.pie dentro del archivo, pero en el emulador debe llamarse su , no su.pie .


Probé muchas de las sugerencias anteriores, incluida SuperSU y no pude conseguir ninguna para el trabajo, pero encontré algo mucho más simple que funcionó para mis propósitos. En mi caso, solo quería poder ejecutar sqlite en el símbolo del sistema. Simplemente configuré un emulador con una versión anterior de Android (Lollipop) y obtuve acceso a la raíz de inmediato.


Utilicé parte del método de las soluciones anteriores; sin embargo, no funcionaron completamente. En la última versión de Andy, esto funcionó para mí:

En Andy (Root Shell) [Para obtener, haga clic con el botón derecho en el icono de HandyAndy y seleccione Term Shell]

Dentro del shell, ejecuta estos comandos:

mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system cd /system/bin cat sh > su && chmod 4775 su

Luego, instale SuperSU e instale SU binario. Esto reemplazará al binario SU que acabamos de crear. (Opcional) Elimine SuperSU e instale Superuser por CWM. Instale el su binario nuevamente. ¡Ahora, la raíz funciona!


Here mi paquete con todo lo que necesitas. O puede usar este script:

echo on set device=emulator-5554 set avd_name= set adb=d:/Poprygun/DevTools/Android/Android-sdk/platform-tools/adb -s %device% set emulator=d:/Poprygun/DevTools/Android/Android-sdk/emulator/emulator set arch=x86 set pie= echo Close all ANDROID emulators and press any key pause start %emulator% -avd Nexus_One_API_25 -verbose -writable-system echo Wait until ANDROID emulator loading and press any key pause %adb% start-server %adb% root %adb% remount %adb% shell setenforce 0 %adb% install D:/SuperSU/SuperSU.apk %adb% push D:/SuperSU/su/%arch%/su.pie /system/bin/su %adb% shell chmod 0755 /system/bin/su %adb% push D:/SuperSU/su/%arch%/su.pie /system/xbin/su %adb% shell chmod 0755 /system/xbin/su %adb% shell su --install %adb% shell "su --daemon&" pause exit /b


Cómo rootear el emulador de Android (probado en Android 7.1.1 / Turrón)

Requisitos :

Instrucciones

  1. Instala 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 ie adb -e install supersu.apk )

    • Después de instalarlo, cuando lo ejecuta muestra una pantalla como la que se muestra abajo que indica "No hay ningún binario SU instalado ...". Este error solo confirma que el dispositivo aún no está rooteado.

  1. Hacer que la partición del sistema del emulador sea editable

    • Como sugiere, debemos otorgar al emulador permiso para escribir archivos del sistema.

    • Escriba el siguiente código para lograr esto: emulator.exe -avd {emulator_name} -writable-system

Nota: Navegue hasta la carpeta de herramientas donde está instalado Android SDK y abra el símbolo del sistema presionando shift y haciendo clic con el botón derecho.

  1. Empujando su binario en el directorio del sistema

    • Extraiga la recuperación flashable.zip (que contiene los binarios de diferentes arquitecturas)

¡Importante! Solo use el binario que coincide con su arquitectura avd, por ejemplo, x86, brazo, etc., y observe la ruta donde extrajo estos binarios.

  • Asegúrese de ejecutar adb como root y también debe volver a montar. Solo ingresa estos códigos

adb root

adb remount

Ahora es el momento de impulsar el su binary:

Este es el código que utilicé con éxito : adb -e push C:/Users/User1/Desktop/rootemu/x86/su.pie /system/bin/su

(no importa de mi ubicación específica de su binary, cualquier ubicación está bien siempre y cuando no haya espacio en blanco)

nota: Para averiguar bin o xbin hacer en la consola antes:> adb shell ,> ls /system/xbin/su

Si esto falla intente presionar este directorio en su lugar /system/xbin/su . También para emuladores que ejecutan Android 5.1 y su.pie posteriores, utilice su y no su.pie

  1. Cambiar permisos del su binary

    • Luego hagamos un poco de modificación de los permisos de su binary. Tenemos que hacer esto en un 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 (mine is / system / bin)

  1. Establecer la directiva de install en su binary y establecer un daemon

Escriba los códigos:

su --install

y para configurar Daemon:

su --daemon&

¡¡Importante!! Toma nota del espaciado

  1. Configurando SELinux en permisivo (es decir, desactivando SE Linux)

    • Finalmente apaga selinux a través de este código:

setenforce 0

  1. Abra la aplicación SuperSU y puede solicitar la actualización de binarios, puede usar el método Normal.

Nota: Si está experimentando bootloops, en lugar de actualizar los binarios, simplemente úselo como está.

¡¡Eso es practicamente todo!!

Abra cualquier aplicación que requiera permisos de SU solo para volver a verificarla y, de hecho, SuperSU le preguntará si desea otorgarle sus permisos.

Para que la raíz persista, actualice su binario (usando el método Normal), luego copie system.img del directorio temporal ( Users/AppData/Local/Temp/Android Emulator el archivo generalmente se denomina aleatoriamente, por ejemplo, 1359g.tmp con un tamaño grande) y reemplace sistema predeterminado.img.

Actualización :

He notado que es más fácil obtener una imagen temporal del sistema en Linux que en Windows. Puedes intentar usar una imagen instantánea.

Espero publicar una solución fácil para preservar la raíz en Windows, actualmente estoy trabajando en el problema.

También para problemas de bootloop, vea la otra publicación: Android Emulator: ¿Cómo evitar el bucle de arranque después del rooting? y actualizaciones de los mismos

Observaciones

La mayoría del contenido de referencia era para versiones android más antiguas y, por lo tanto, el motivo de diferentes comandos y rutas que modifiqué.

Expresiones de gratitud;

Irvin H: rootear el emulador de Android en Android Studio 2.3 ((Android 4.4)