Skip to content

设备指纹 获取真实的IMEI AndroidId 序列号 MAC地址等,Android模拟器检测,检测Android模拟器 ,作为可信DeviceID,应对防刷需求等 Android设备指纹 How to detect Android emulator

License

happylishang/AntiFakerAndroidChecker

Repository files navigation

非商业牟利项目

本库目标:

  • 1 检测运行设备是否模拟器
  • 2 获取相对真实的IMEI AndroidId 序列号 MAC地址等

用法 MavenCentral

   implementation 'io.github.happylishang:antifake:1.7.0'

Java代码中:

模拟器检测激进做法

 EmulatorDetectUtil.isEmulatorFromAll(context)

模拟器保守做法

AndroidDeviceIMEIUtil.isRunOnEmulator(context) //特征值判断

非UI进程启动检测,回调上报

EmuCheckUtil.checkEmulatorFromCache(getApplicationContext(),
            new EmuCheckUtil.CheckEmulatorCallBack() {
                @Override
                public void onCheckSuccess(boolean isEmulator) {
                    
                }

                @Override
                public void onCheckFaild() {
                    
                }
            })

1、检测是否模拟器原理 Android模拟器识别技术

ARM与模拟器采用的Simple X86在架构上有很大区别,可利用SMC(自修改代码+mmap)甄别

原文链接 Android模拟器识别技术

2、获取真实的Android设备信息

  • 可以采用一些系统隐藏的接口来
  • 可以自己实现通过Binder通信
  • 可以采用Native方式获取设备信息,避免被Xposed Hook

Android8.0之后,序列号的获取跟IMEI权限绑定,如果不授权电话权限,同样获取不到序列号

Android 10.0之后,序列号、IMEI 非系统APP获取不到

Android 11.0之后,序列号、IMEI MAC 非系统APP获取不到

java 1.8 demo更容易跑起来

About

设备指纹 获取真实的IMEI AndroidId 序列号 MAC地址等,Android模拟器检测,检测Android模拟器 ,作为可信DeviceID,应对防刷需求等 Android设备指纹 How to detect Android emulator

Resources

License

Stars

Watchers

Forks

Packages

No packages published