v4.2.0
What’s new
- Started collecting additional signals to support upcoming improvements to rooted devices detection as well as for additional fraud detection capabilities.
- Strengthened the SDK’s protection against reverse engineering.
- Improved SDK performance.
- Fixed a crash that could occur on some devices when calling
getVisitorId. In rare cases where the SDK fails to initialize, it now returns an error to your app instead of crashing, so your app can handle the failure gracefully.
Compatibility
- Requires Android 6.0+ (API Level 23 or higher)
- Tested with API Level 36 (
targetSdk = 36) - Compiled using API Level 36 (
compileSdk = 36)
Build Info
- Kotlin: v2.3.20 (
org.jetbrains.kotlin:kotlin-*:2.3.20) - Android Gradle Plugin: v8.13.0 (
com.android.tools.build:gradle:8.13.0) - Gradle: v8.13
- jvmTarget : Java 11
v4.1.0
What’s new
- Bug fixes and internal improvements.
- Reduced SDK size.
Compatibility
- Requires Android 6.0+ (API Level 23 or higher)
- Tested with API Level 36 (
targetSdk = 36) - Compiled using API Level 36 (
compileSdk = 36)
Build Info
- Kotlin: v2.3.20 (
org.jetbrains.kotlin:kotlin-*:2.3.20) - Android Gradle Plugin: v8.13.0 (
com.android.tools.build:gradle:8.13.0) - Gradle: v8.13
- jvmTarget : Java 11
v4.0.0
What’s new
FingerprintJSFactoryand theFingerprintJSinterface are renamed toFingerprintFactoryandFingerprint, dropping the legacy “JS” naming.- The response object is renamed from
FingerprintJSProResponsetoFingerprintResponse, and several nested/legacy fields (confidenceScore,ipLocation,firstSeenAt, and similar) have been removed in favor of a flat response shape, along with their supporting types (ConfidenceScore,Timestamp, andIpLocation). Check the migration guide to see the full list. requestIdis renamed toeventIdacross responses, errors, and exceptions.- The
extendedResponseFormatconfiguration flag has been removed as v4 always returns the flat format. - Several error classes have been removed or replaced, and new error classes have been added to reflect new server-side error codes. Check the migration guide for more details about error classes.
- Kotlin upgraded from v1.9.25 to v2.3.20.
- Added in-code documentation for better DX: API documentation is published as a Javadoc JAR alongside the Maven artifacts, so it’s available directly in your IDE when you add the dependency.
- Bug fixes and stability improvements for low-end Android devices.
- Reduced SDK size.
Compatibility
- Requires Android 6.0+ (API Level 23 or higher)
- Tested with API Level 36 (
targetSdk = 36) - Compiled using API Level 36 (
compileSdk = 36)
Build Info
- Kotlin: v2.3.20 (
org.jetbrains.kotlin:kotlin-*:2.3.20) - Android Gradle Plugin: v8.13.0 (
com.android.tools.build:gradle:8.13.0) - Gradle: v8.13
- jvmTarget : Java 11
v2.17.1
What’s new
- Started collecting additional signals to support upcoming improvements to Android identification.
Compatibility
- Requires Android 6.0+ (API Level 23 or higher)
- Tested with API Level 36 (
targetSdk = 36) - Compiled using API Level 36 (
compileSdk = 36)
Build Info
- Kotlin: v1.9.25 (
org.jetbrains.kotlin:kotlin-*:1.9.25) - Android Gradle Plugin: v8.13.0 (
com.android.tools.build:gradle:8.13.0) - Gradle: v8.13
- jvmTarget : Java 11
v2.17.0
What’s new
- Added internal improvements to enhance fraud detection capabilities. These updates lay the groundwork for upcoming backend enhancements.
- Reduced false positives in emulator and rooted device detection.
- Internal bug fixes and security updates.
Compatibility
- Requires Android 6.0+ (API Level 23 or higher)
- Tested with API Level 36 (
targetSdk = 36) - Compiled using API Level 36 (
compileSdk = 36)
Build Info
- Kotlin: v1.9.25 (
org.jetbrains.kotlin:kotlin-*:1.9.25) - Android Gradle Plugin: v8.13.0 (
com.android.tools.build:gradle:8.13.0) - Gradle: v8.13
- jvmTarget : Java 11
v2.16.0
What’s new
- Added internal improvements to support enhanced detection logic and upcoming backend updates.
Compatibility
- Requires Android 6.0+ (API Level 23 or higher)
- Tested with API Level 36 (
targetSdk = 36) - Compiled using API Level 36 (
compileSdk = 36)
Build Info
- Kotlin: v1.9.25 (
org.jetbrains.kotlin:kotlin-*:1.9.25) - Android Gradle Plugin: v8.13.0 (
com.android.tools.build:gradle:8.13.0) - Gradle: v8.13
- jvmTarget : Java 11
v2.15.0
What’s new
- Updated client-level logic to improve the accuracy and reliability of rooted device detection.
- Expanded the range of device-level signals collected for deeper device integrity insights.
- Internal bug fixes and performance improvements.
Compatibility
- Requires Android 6.0+ (API Level 23 or higher)
- Tested with API Level 36 (
targetSdk = 36) - Compiled using API Level 36 (
compileSdk = 36)
Build Info
- Kotlin: v1.9.25 (
org.jetbrains.kotlin:kotlin-*:1.9.25) - Android Gradle Plugin: v8.13.0 (
com.android.tools.build:gradle:8.13.0) - Gradle: v8.13
- jvmTarget : Java 11
v2.14.0
What’s new
- Reduced Android SDK AAR size by 1.5MB (from 4.7MB to 3.2MB)
- Fixed crashes during app initialization on low-end devices running Android 12, 13, and 15, including devices with limited available RAM.
- Added coroutine support for cleaner, more idiomatic integration in Kotlin-based Android projects.
- Internal bug fixes and performance improvements.
Compatibility
- Requires Android 6.0+ (API Level 23 or higher)
- Tested with API Level 36 (
targetSdk = 36) - Compiled using API Level 36 (
compileSdk = 36)
Build Info
- Kotlin: v1.9.25 (
org.jetbrains.kotlin:kotlin-*:1.9.25) - Android Gradle Plugin: v8.13.0 (
com.android.tools.build:gradle:8.13.0) - Gradle: v8.13
- jvmTarget : Java 11
v2.13.1
What’s new
- Added internal improvements to support enhanced detection logic and upcoming backend updates.
- Security updates and minor bug fixes.
Compatibility
- Requires Android 6.0+ (API Level 23 or higher)
- Tested with API Level 36 (
targetSdk = 36) - Compiled using API Level 36 (
compileSdk = 36)
Build Info
- Kotlin: v1.9.25 (
org.jetbrains.kotlin:kotlin-*:1.9.25) - Android Gradle Plugin: v8.13.0 (
com.android.tools.build:gradle:8.13.0) - Gradle: v8.13
- jvmTarget : Java 11
Smart Signals
v2.12.0
What’s new
- Added internal improvements to enhance fraud detection capabilities. These updates lay the groundwork for upcoming backend enhancements.
- Improved cloned app detection on Android.
Compatibility
- Requires Android 6.0+ (API Level 23 or higher)
- Tested with API Level 36 (
targetSdk = 36) - Compiled using API Level 36 (
compileSdk = 36)
Build Info
- Kotlin: v1.9.25 (
org.jetbrains.kotlin:kotlin-*:1.9.25) - Android Gradle Plugin: v8.13.0 (
com.android.tools.build:gradle:8.13.0) - Gradle: v8.13
- jvmTarget : Java 11
Smart Signals
v2.11.0
What’s new
Recommendation: We strongly encourage upgrading to the version 2.11.0 to benefit from improved security and stronger protection against tampering and reverse-engineering attempts.- Implemented additional security measures to protect Android SDK requests from manipulation, tampering, and reverse-engineering attempts.
- Deprecated support for Android 5.x.
- Improved rooted device detection on Android.
- Improved emulator detection logic on Android.
- The total SDK size increased from 800kB to 4.5MB
Compatibility
- Requires Android 6.0+ (API Level 23 or higher)
- Tested with API Level 35 (
targetSdk = 35) - Compiled using API Level 35 (
compileSdk = 35)
Build Info
- Kotlin: v1.9.25 (
org.jetbrains.kotlin:kotlin-*:1.9.25) - Android Gradle Plugin: v8.13.0 (
com.android.tools.build:gradle:8.13.0) - Gradle: v8.13
- jvmTarget : Java 11
Smart Signals
v2.10.0
What’s new
- Introduced a new proximity detection location-based signal for mobile devices. Instead of representing a unique device, the new proximity ID corresponds to a fixed geographical zone within which the device is observed. This additional layer of context makes it possible to identify groups of devices in the same physical area or a single device that may have changed its identity but remained in the same location. See Proximity detection for Android devices reference for more info.
- The Android SDK will only collect location data if the new
allowUseOfLocationDataoption is set totrue. - It’s possible to configure the location retrieval timeout by setting the new
locationTimeoutMillisoption to a desired value. By default, it’s set to 5 seconds. Refer to Using Location Data for Proximity Detection page for configuration details.
- The Android SDK will only collect location data if the new
- Enhanced the detection logic to more accurately identify true factory resets on Android devices. This update reduces false positives and improves signal reliability for fraud prevention workflows.
Compatibility
- Requires Android 5.0+ (API Level 21 or higher)
- Tested with API Level 35 (
targetSdk = 35) - Compiled using API Level 35 (
compileSdk = 35)
Build Info
- Kotlin: v1.9.25 (
org.jetbrains.kotlin:kotlin-*:1.9.25) - Android Gradle Plugin: v8.7.3 (
com.android.tools.build:gradle:8.7.3) - Gradle: v8.10.2
- jvmTarget : Java 8
v2.9.0
What’s new
- Introduced internal architecture updates and performance improvements to support upcoming capabilities.
- Addressed minor data collection issues to improve SDK reliability.
- Added new error codes
InvalidProxyIntegrationSecretInvalidProxyIntegrationHeadersProxyIntegrationSecretEnvironmentMismatch
Compatibility
- Requires Android 5.0+ (API Level 21 or higher)
- Tested with API Level 35 (
targetSdk = 35) - Compiled using API Level 35 (
compileSdk = 35)
Build Info
- Kotlin: v1.9.25 (
org.jetbrains.kotlin:kotlin-*:1.9.25) - Android Gradle Plugin: v8.1.1 (
com.android.tools.build:gradle:8.1.1) - Gradle: v8.3.0
- jvmTarget : Java 8
Smart Signals
v2.8.0
What’s new
- Introduced the ability to detect if requests from the app were subject to MitM attacks. See MitM Attack Detection to learn more.
- Added support for Open Client Response.
- Minor enhancements to identification and detection of Smart Signals.
Compatibility
- Requires Android 5.0+ (API Level 21 or higher)
- Tested with API Level 35 (
targetSdk = 35) - Compiled using API Level 35 (
compileSdk = 35)
Build Info
- Kotlin: v1.9.25 (
org.jetbrains.kotlin:kotlin-*:1.9.25) - Android Gradle Plugin: v8.7.3 (
com.android.tools.build:gradle:8.7.3) - Gradle: v8.10.2
- jvmTarget : Java 8
v2.7.0
What’s new
- Added support for Sealed Client Results.
Compatibility
- Requires Android 5.0+ (API Level 21 or higher)
- Tested with API Level 34 (
targetSdk = 34) - Compiled using API Level 34 (
compileSdk = 34)
Build Info
- Kotlin: v1.9.25 (
org.jetbrains.kotlin:kotlin-*:1.9.25) - Android Gradle Plugin: v8.1.1 (
com.android.tools.build:gradle:8.1.1) - Gradle: v8.3.0
- jvmTarget : Java 8
v2.6.0
What’s new
- Introduced the ability to configure the timeout interval for the client session. To learn more, see Specifying a custom timeout.
- Added internal improvements to enhance fraud detection capabilities. These updates lay the groundwork for upcoming backend enhancements.
What’s changed
- Information about Installed Applications is no longer collected and used.
- Removed dependency
com.github.fingerprintjs:fingerprint-android
Compatibility
- Requires Android 5.0+ (API Level 21 or higher)
- Tested with API Level 34 (
targetSdk = 34) - Compiled using API Level 34 (
compileSdk = 34)
Build Info
- Kotlin: v1.9.25 (
org.jetbrains.kotlin:kotlin-*:1.9.25) - Android Gradle Plugin: v8.1.1 (
com.android.tools.build:gradle:8.1.1) - Gradle: v8.3.0
- jvmTarget : Java 8
v2.5.0
What’s new
- Introduced the ability to redirect failed requests to alternate endpoints. The list
Configuration.fallbackEndpointUrlscan be used to specify one or more alternate endpoints. For a complete example, see Getting a visitorId.
Compatibility
- Requires Android 5.0+ (API Level 21 or higher)
- Tested with API Level 34 (
targetSdk = 34) - Compiled using API Level 34 (
compileSdk = 34)
Build Info
- Kotlin: v1.9.10 (
org.jetbrains.kotlin:kotlin-*:1.9.10) - Android Gradle Plugin: v8.1.1 (
com.android.tools.build:gradle:8.1.1) - Gradle: v8.3.0
- jvmTarget : Java 8
Smart Signals
v2.4.0
What’s new
- Introduced a new child class,
PackageNotAuthorizedto the sealed class,Error. This error is returned when an unauthorized app makes identification requests using a stolen API key. See Request filtering for mobile apps for more information. - Enhanced our VPN Detection Smart Signal with a new data point,
originCountrythat indicates the country in which the mobile device is currently located at.
Compatibility
- Requires Android 5.0+ (API Level 21 or higher)
- Tested with API Level 34 (
targetSdk = 34) - Compiled using API Level 34 (
compileSdk = 34)
Build Info
- Kotlin: v1.9.10 (
org.jetbrains.kotlin:kotlin-*:1.9.10) - Android Gradle Plugin: v8.1.1 (
com.android.tools.build:gradle:8.1.1) - Gradle: v8.3.0
- jvmTarget : Java 8
Smart Signals
v2.3.4
What’s new
- Introduced the ability to detect if the device location has been spoofed. To learn more, see Geolocation Spoofing Detection.
- Added runtime dependency
com.google.android.gms:play-services-location
Compatibility
- Requires Android 5.0+ (API Level 21 or higher)
- Tested with API Level 33 (
targetSdk = 33) - Compiled using API Level 34 (
compileSdk = 34)
Build Info
- Kotlin: v1.9.10 (
org.jetbrains.kotlin:kotlin-*:1.9.10) - Android Gradle Plugin: v8.1.1 (
com.android.tools.build:gradle:8.1.1) - Gradle: v8.3.0
- jvmTarget : Java 8
v2.3.3
What’s new
- Introduced the ability to detect if a device is using VPN. To learn more, see VPN Detection.
- Introduced the ability to detect if an app using this SDK is being instrumented by Frida. To learn more, see Frida Detection.
- Added runtime dependency
androidx.core:core
What’s changed
- Upgraded dependency
com.github.fingerprintjs:fingerprint-androidto v2.1.0
Compatibility
- Requires Android 5.0+ (API Level 21 or higher)
- Tested with API Level 33 (
targetSdk = 33) - Compiled using API Level 34 (
compileSdk = 34)
Build Info
- Kotlin: v1.9.10 (
org.jetbrains.kotlin:kotlin-*:1.9.10) - Android Gradle Plugin: v8.1.1 (
com.android.tools.build:gradle:8.1.1) - Gradle: v8.3.0
- jvmTarget : Java 8
v2.3.2
What’s changed
- Upgraded dependency
com.github.fingerprintjs:fingerprint-androidto v2.0.2
Compatibility
- Requires Android 5.0+ (API Level 21 or higher)
- Tested with API Level 33 (
targetSdk = 33) - Compiled using API Level 33 (
compileSdk = 33)
Build Info
- Kotlin: v1.8.21 (
org.jetbrains.kotlin:kotlin-*:1.8.21) - Android Gradle Plugin: v7.4.2 (
com.android.tools.build:gradle:7.4.2) - Gradle: v7.5.0
- jvmTarget : Java 8
v2.3.1
What’s changed
- The following dependencies have now been declared within
com.fingerprint.android:pro. They need not anymore be individually included in build.gradle.org.jetbrains.kotlin:kotlin-stdlibcom.github.fingerprintjs:fingerprint-android
- Reduced the size of the payload that is transmitted from the device to Fingerprint’s servers.
Compatibility
- Requires Android 5.0+ (API Level 21 or higher)
- Tested with API Level 33 (
targetSdk = 33) - Compiled using API Level 33 (
compileSdk = 33)
Build Info
- Kotlin: v1.8.0 (
org.jetbrains.kotlin:kotlin-*:1.8.0) - Android Gradle Plugin: v7.4.2 (
com.android.tools.build:gradle:7.4.2) - Gradle: v7.5.0
- jvmTarget : Java 8
Smart Signals
v2.3.0
What’s changed
- Introduced the ability to detect if the requests to the app are being made from
- An emulated device. To learn more, see Android Emulator Detection.
- A rooted device. To learn more, see Rooted Device Detection.
- A factory-reset device. To learn more, see Factory Reset Detection.
- Introduced the ability to detect if a cloned version of the app is being used to make requests to your servers. To learn more, see Cloned App Detection.
Compatibility
- Requires Android 5.0+ (API Level 21 or higher)
- Tested with API Level 33 (
targetSdk = 33) - Compiled using API Level 33 (
compileSdk = 33)
Build Info
- Kotlin: v1.7.0 (
org.jetbrains.kotlin:kotlin-*:1.7.0) - Android Gradle Plugin: v7.2.2 (
com.android.tools.build:gradle:7.2.2) - Gradle: v7.4.2
- jvmTarget : Java 8