Introduction
The DeviceAssure Android library validates devices accessing your mobile application by collecting device characteristics and comparing them against known valid device profiles maintained by the DeviceAssure backend service.
The library utilizes an embedded DeviceAtlas DeviceInfo library and requires certain permissions before it can validate the device. Validation results may be returned directly to the library, to an intermediate server, or to a predefined callback URL.
Device Identification
The Android library uses three independent identifiers to verify a device's claimed identity: the User-Agent, the Make/Model (from Android build properties), and the TAC. These are cross-referenced to check that they all point to the same device. The library then compares measured hardware properties against known reference profiles for that device.
Having three identifiers rather than two (as with the Web library) provides stronger corroboration and more confident validation results.
Data Collection
The library collects data about the underlying hardware and system properties. It does not collect any PII data.
The collected data falls into the following groups:
- Audio
- Bluetooth
- Build
- Build Version
- Camera
- CPU
- Customer Properties
- Device Dates
- Display
- GPU
- Input Devices
- Media Codecs
- Memory
- Network
- Permissions
- Privilege Escalation
- Sensor
- Storage
- Telephony
- USB
- Vibrator
- Web
The library has minimal impact on the host application and uses a background thread where possible to avoid blocking the main UI thread. If the background thread does not complete within 10 seconds, it will terminate and send the properties gathered up to that point.
Integration Methods
The data collected by the library may be sent to the DeviceAssure service using either the Client to Server or Server to Server model. For help deciding which to use, see Choosing an Integration Method.
The Validation Methods
The DeviceAssure library exposes two main methods:
DeviceAssure.check()- For Client to Server validationDeviceAssure.getData()- For Server to Server validation
Please see the Quick Start Guide and the integration guides for detailed usage examples.
See Also
- Quick Start Guide - Get up and running quickly
- Client to Server - Direct validation from the app
- Server to Server - Validation via your backend server