DeviceFarm
Glossary
Device identity

Device fingerprint

Also called: device fingerprinting, hardware fingerprint

A device fingerprint is the combination of hardware and software values an app can read to recognise a specific device — IMEI, MAC address, Android ID, build properties, screen metrics, timezone, locale and installed packages. Taken together they are close to unique, which is what makes them useful for identifying a device across sessions.

No single value identifies a phone. A device fingerprint is what you get when you read dozens of them at once and treat the combination as an identity. Individually, a screen resolution or a timezone tells you almost nothing — millions of devices share them. Combined with a build fingerprint, a locale, a battery profile and an installed-app list, the set becomes specific enough to recognise the same device weeks later.

What goes into it

  • Hardware identifiers — IMEI, serial number, MAC address, Bluetooth MAC.
  • System identifiers — Android ID, and the build.prop values describing brand, model and firmware.
  • Environment — screen size and density, timezone, locale, language, keyboard layout.
  • Behaviour of real hardware — sensor readings, battery discharge curve, baseband presence, nearby wifi BSSIDs.

Why consistency matters more than uniqueness

The common mistake is chasing a unique fingerprint and ignoring whether it holds together. A device claiming to be a Samsung handset while reporting sensors no Samsung ships, or a phone whose timezone contradicts the country its IP belongs to, is not anonymous — it is conspicuous. Internal contradictions are far easier to detect than repetition.

The second requirement is stability over time. A fingerprint that changes between sessions reads as a different device each visit, which breaks any account that expects to be used from the same phone. Real hardware gives you both properties for free, because the values come from actual silicon rather than being generated.

Fingerprint versus browser fingerprint

Browser fingerprinting reads canvas rendering, WebGL, installed fonts and user agent from inside a web page. Device fingerprinting happens at the operating-system level and has access to far more — hardware identifiers a browser can never see. An antidetect browser addresses the first. Running on a genuinely separate device addresses the second, which is why the two are often used together.

Related terms