Directorio de artículos
Prefacio
Para los desarrolladores de Android, el simulador es una herramienta de desarrollo, pero para los usuarios, probablemente 薅羊毛
, 找漏洞
de ganar dinero.
Independientemente de si es 活动风控
o 内容保护
espera otros puntos de partida, es posible que sea necesario identificar Android模拟器
o incluso prohibir el inicio de sesión del simulador u operaciones posteriores.
Haga una breve discusión hoy.
principio
El reconocimiento del principio del simulador, de hecho, es encontrar 模拟器
y 真机
diferencias, pero estas diferencias se reflejan en lo que es, como operadores, tarjetas telefónicas, Bluetooth, varios sensores, etc.
Pero ahora el simulador es cada vez más poderoso y se puede simular 不同品牌
en 不同型号
el 不同版本
teléfono móvil y Bluetooth, puede llamar.
¿Es un dolor de cabeza? Si no tienes cuidado, juzgarás mal. Así que ahora hay un esquema en el mercado que se basa en el número de diferencias entre el 容错机制
simulador y la máquina real. Por ejemplo, si hay más de 3 diferencias entre el simulador y la máquina real, se juzga como una simulación Dispositivo.
Pero, de hecho, algunas versiones antiguas de teléfonos móviles ni siquiera son tan avanzadas como el simulador ... Así que el mecanismo tolerante a fallos también puede añadir un trato diferenciado a los usuarios, los usuarios individuales no detectan, etc.
Prohibir que el simulador instale apk
La arquitectura general de la CPU del simulador es x86
la misma, podemos build.gradle
eliminar x86
el soporte en ella.
ndk {
// 设置支持的SO库架构
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
Por supuesto, algunos teléfonos móviles también pueden ser x86, lo cual es un error de juicio, porque no existe una solución más completa en la actualidad, por lo que lo anterior 容错机制
es más importante.
Simplemente eliminar el soporte x86 no es suficiente, porque algunos simuladores no son arquitecturas x86, por lo que aún tenemos que averiguar la diferencia entre el simulador y la máquina real.
Por supuesto, no es necesario prohibirlo, solo identificarlo.
Reconocimiento de código
Aquí también se menciona en el principio, para determinar si hay múltiples juicios como Bluetooth, número de serie, sensor, arquitectura de la CPU, etc.
Recomiende una biblioteca aquí: CacheEmulatorChecker
La llamada también es relativamente simple, solo una línea de código:
val emulator = EmulatorDetectUtil.isEmulator(this)
if (emulator) {
ToastUtils.show(this, "检测到您的设备可能为模拟器", Toast.LENGTH_LONG)
}
verificación
Prohibido agregar programa de reconocimiento de código, simulador actualmente verificado:
- Simulador feliz
- Simulador de pila azul
- Simulador de Dios de la noche
- Simulador de todos los días
- Asistente de juegos móviles Tencent
- Simulador de rayos
- Simulador de MUMU
- Master Lu maestro de simulación de teléfonos móviles
Y modelos convencionales de varias marcas de teléfonos móviles convencionales, prueba bien
Al final
En la actualidad, todavía no existe una solución completa y abierta, por lo que para evitar errores de juicio, aún es necesario implementar mecanismos de tolerancia a fallas relacionados de acuerdo con su propio negocio, como agregar un campo al usuario si debe juzgar y luego juzgar si es necesario, de lo contrario Déjalo ir.
Al final, si tiene un método mejor, bienvenido a discutir.