0

I have an app that has some unknown devices listed in the analytics portal I use.

I was wondering if Android and iOS have a method that I can call which tells me if the app has been downloaded and opened using an emulator?

I've thought of accessing the device's IMEI, but this is only for mobile phones and doesn't cover tablets. Any help would be greatly appreciated.

2 Answers2

0

There are couple of methods out there. Android includes a built in method,but some of them can be maneuvered. Android includes some system properties that keep such information. they can be accessed using the getprop utility and there are ways to get the problematically.

More specifically, the "ro.build.characteristics" will contain the word "emulator" when running on emulator.

Long story short: There are couple of libraries that are capable of doing this and are consider reliable. Here is a good example:

https://github.com/framgia/android-emulator-detector

For iOS see this answer

As a side note. if you are concerned about having a safe environment to run your application, take a look at SafetyNet

ApriOri
  • 2,618
  • 29
  • 48
  • What if the user spoofs their system properties in the emulator? – ilovechicago Jul 27 '17 at 21:09
  • That is of course doable for Android but will require them to rebuild the simulator from AOSP code. SafetyNet may help you achieve some level of security if that's what you're looking for – ApriOri Jul 27 '17 at 21:24
0

You can try filtering out the Connecting device's by their device's model number, name and id.

For that you first need your app to parse the data from the phone, and then send this data to your server while authentication.

The server checks the robots list and then authenticates the exceptions (genuine users).

NB: Nowadays emulators are updated, they are capable of spoofing a Device Name, Model and ID. So it's a hectic job to detect spoofer's.

Just a Mere Concept out of Thoughts, Might possibly work!