4 votos

¿Cómo evitar que una aplicación detecte que se está ejecutando en un emulador en lugar de un dispositivo real?

Me gustaría instalar una aplicación llamada entrust (desde la tienda de aplicaciones) y poder usarla. Mi último intento fue utilizar un emulador llamado "Genymotion", pero la aplicación puede detectar que se está ejecutando en un emulador porque recibo este error:

"Error: La activación manual no está soportada en un dispositivo no seguro." introducir descripción de la imagen aquí

lo cual no ocurre si ejecuto la aplicación en un dispositivo real. ¿Hay alguna idea sobre cómo puedo evadir esta comprobación y poder ejecutarlo utilizando un emulador?

¡Gracias!

0 votos

¿Has probado [Android-x86](android-x86.org)? Podrías instalar la ISO usando Virtualbox.

0 votos

@Izzy No sé a qué te refieres, no estoy pidiendo recomendaciones (bueno, si las hay, son bienvenidas), pero estoy preguntando cómo pasar por alto la capacidad de la aplicación para detectar que se está ejecutando en un emulador.

0 votos

Puedo decirte a lo que me refiero: la primera edición de tu respuesta se titulaba "¿Dónde encontrar un buen emulador de Android …". ¡Gracias a tu edición, ahora la volveré a abrir :)

4voto

pr0nin Puntos 353

En general, hay tres formas de evitar una comprobación de emulador:

  1. Modificar la aplicación y eliminar la comprobación de emulador.
  2. Modificar el emulador para que finja ser un dispositivo real.
  3. Modificar las llamadas al sistema que la aplicación realiza para detectar que se está ejecutando en un emulador.

Como puedes ver, las tres formas no son tan simples, sin embargo, la tercera forma puede ser la más fácil ya que existen algunas herramientas que pueden ayudarte.

Volvamos a la opción 1 - requiere muchas habilidades de desarrollo para descompilar la aplicación (por ejemplo, utilizando apktool para descompilarla a código Smali), identificar las comprobaciones del emulador (y evitar las posibles comprobaciones de integridad de la aplicación que puedan existir).

La opción 2 es aún más difícil ya que requiere que parchees y recompiles el emulador de Android (que está disponible como código fuente).

Por lo tanto, desde mi punto de vista, solo la opción 3 es realista para ti. Sin embargo, todavía puede requerir algo de desarrollo en Java.

Puedes instalar el framework XPosed en tu emulador. Permite modificar las llamadas al sistema que la aplicación utiliza para identificar que se está ejecutando en un emulador. Hay algunos módulos XPosed existentes para ocultar que un dispositivo está rooteado o que se está ejecutando en un emulador. Si tienes suerte, puede haber un módulo existente que funcione sin necesidad de configuración adicional, permitiéndote ejecutar tu aplicación en un emulador.

0 votos

Sorprendido de saber que aún no hay un emulador que la aplicación no pueda detectar. Supuestamente, un emulador debería ser capaz de convertirlo en un dispositivo virtual, por lo que la aplicación no debería ser capaz de detectarlo.

0voto

miguelmorales85 Puntos 114

La aplicación necesita un cargador de arranque cerrado y no permite el acceso de superusuario. La aplicación no reconoce el emulador.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X