ElenchiaApply for early access

Glossary

Emulator detection

Emulator detection is the set of runtime checks an application performs to determine whether it is running on virtualised hardware rather than a physical handset.

Typical signals include build fingerprint strings, the presence of QEMU pipe devices, absent or synthetic sensors, GPU renderer strings that name a software rasteriser, telephony values that no carrier would issue, and timing differences in instructions that virtualisation handles poorly.

When detection succeeds, applications rarely crash outright. More often they degrade quietly: a payment sheet does not render, a feature flag flips off, or a request is answered with generic data. This is what makes emulator detection a testing problem rather than merely a compatibility one — the tool records a clean run and the tester never learns that the interesting code path was skipped.

Defeating detection with hooking frameworks tends to trade one signal for another, because hook presence is itself detectable. Supplying genuine identity below the level the application can query avoids the arms race entirely.

Related terms

  • Root detection — Root detection is the set of checks an application uses to decide whether the Android device it is running on has been privilege-escalated.
  • Device fingerprinting — Device fingerprinting is the practice of combining hardware and software attributes into an identifier that distinguishes one device from another without an explicit account or cookie.
  • False negative (security testing) — A false negative in security testing is a result that reports no issue when an issue is in fact present.