superuser

Emulador Android (AVD) Root, SuperSu y Google Play (android 4.2.2 y anteriores)

Buscando un banco de pruebas adecuado para Android,  uno echa de menos en todo el SDK que proporciona Google, y en particular en el Emulador (AVD) el modo super usuario (superSu o SuperUser) para así instalar aplicaciones con acceso root y poder analizarlas, y tambié, por supuesto la tienda de Google (Google Play)

Existen muchos tutoriales en internet, y aquí voy a poner todo el proceso entero, para además tener una emulador (AVD) persistente, es decir que no haya que repetir todo el proceso cuando iniciamos de nuevo el emulador (en principio sólo los datos de usuario son persistentes con el SDK de Google)

Los pasos son los siguientes:

  1. Tener instalado el SDK de Android (Android Developer Tools) y configurada un dispositivo virtual (AVD) o emulador con Android 4.2.2 (API 17) o anteriores. Para Android 4.4 (API 19) no he encontrado cómo efectuar el “root” y para Android 4.3 (API 17), existen métodos, algo más complejos, que no he probado
  2. Efectuar el “root” al emulador (AVD), entendiendo esto como el hecho de instalar la aplicación SuperSU o Superuser y así instalar cualquier tipo de aplicación con acceso root.
  3. Instalar la tienda, Google Play
  4. Hacer que todo esto sea persistente, ya que si no, al reinicial el emulador partiríamos desde cero.

1. SDK Android y Emulador

Esto lo damos por hecho…

2. Instalar SuperSU (root a nuestro AVD)

Es importante señalar que el acceso root al emulador es posible en el propio SDK (basta con abrir una shell con el comando adb shell). De lo que se trata es de copiar el binario de “su” modificado y la App “SuperSU”

Para ello, necesitamos la aplicación y el binario, gracias a XDA y Chainfire:

Foro XDA relativo a SuperSU http://forum.xda-developers.com/showthread.php?t=1538053

Enlace directo a la descarga de la última version (en este momento), está en el foro anterior:

http://download.chainfire.eu/447/SuperSU/UPDATE-SuperSU-v1.99r4.zip

El proceso es sencillo:

Hay que arrancar el emulador con una partición de sistema especificada, para poder tener espacio y grabar los archivos (por defecto arranca con todo el espacio ocupado), con 256 Mb basta…

 

start avd

Después hay que dar acceso de escritura para poder escribir. Copiar el archivo binario su (para sustituir al original del SDK), modificar permisos e instalar la aplicación Supersu.

La siguiente captura muestra los comandos y la comparación del antes y el después (sobre todo del comando mount y remount para dar acceso de escritura a system, antes ro, read only, después rw, read&write).

Montar partición system con acceso escritura: abd remount

root

Copiamos el binario de “su” y modificamos los permisos (bit suid, para acceso root)

chmod

Instalamos SuperSU.apk,, no tengo captura de esto pero basta con el comando adb install

adb install ..\..\..\Apps\UPDATE-SuperSU-v1.99r4\common\Superuser.apk

Con eso ya podemos probar cualquier aplicación con acceso root, en mi caso he probado el emulador de terminal, ejecutando en él el comando “su”:

superuser

3. Instalar Google Play

Lo que necesitamos son las aplicaciones de google, para ello las obtenemos de:

http://goo.im/gapps

En el caso de Android 4.2.2 el archivo es gapps-jb-20130812-signed.zip

Lo descargamos y descomprimimos, los archivos que necesitamos son

Phonesky.apk, GoogleLoginService.apk y GoogleServiceFramework

Y los copiamos en la carpeta /system/app del AVD, antes dando permisos de escritura:

gapps

Adicionalmente, para que Google Play funcione hay que borrar dos archivos, SdkSetup.apk y SdkSetup.odex:

gapps 2

Y comprobamos que todo funciona como debe:

google play

Ejecutándola, con acceso a internet y con una cuenta válida, acabamos con el Google Play ttalmente operativo en nuestro emulador:

google play 2

4. Hacer los cambios en /system persistentes (root, superuser y google play)

Si cerramos el emulador ahora, la próxima vez que se abra se pierde todo lo que hemos hecho. Para poder preservarlo, existe una manera muy simple y sencilla.

El emulador de Android usa una imagen temporal (archivo temporal) de la carpeta /system, que podemos encontrar en nuestro PC (en Windows 7 y 8 según la captura siguiente )

archivo temporal

Basta con copiarlo a la carpeta donde se guardan nuestros AVD del emulador (allí se encuentran los archivos imagen de lo que sí se guarda al ejecutar el emulador con cada AVD). Le cambiamos el nombre por “system.img” y al arrancar de nuevo el emulador tendremos todo correcto (Superuser, root y Google Play)

archivo temporal 2

La próxima vez que arranquemo el emulador  con emulator -avd myAVD4.2.2 todo aparecerá como lo hemos dejado. Ya podemos testear y analizar aplicaciones root…

1 Comment

  1. Alejandro Cosme · jueves, 10 marzo, 2016 Reply

    ¡Excelente tutorial!, me funcionó para hacer root una AVD 4.0 a la primera siguiendo las instrucciones publicadas aqui. Muchas gracias por subir la información, saludos.

Leave a Reply

Tu dirección de correo electrónico no será publicada.