All Projects → fingerprintjs → fingerprintjs-android

fingerprintjs / fingerprintjs-android

Licence: MIT license
Swiss army knife for identifying and fingerprinting Android devices.

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to fingerprintjs-android

Fingerprint Android
Swiss army knife for identifying and fingerprinting Android devices.
Stars: ✭ 146 (-56.55%)
Mutual labels:  android-development, android-security
SSBiometricsAuthentication
Biometric factors allow for secure authentication on the Android platform.
Stars: ✭ 87 (-74.11%)
Mutual labels:  android-security, android-login
ApkSize-Analyzer
An Apk analyzer with CI/CD support and multiple reports in HTML, PDF, JSON
Stars: ✭ 19 (-94.35%)
Mutual labels:  android-development
MTextField
A new Material Design text field that comes in a box, based on [Google Material Design guidelines]
Stars: ✭ 32 (-90.48%)
Mutual labels:  android-development
PowerPreference
💾 A Powerful library to control and simplify the usage of shared preference in Android.
Stars: ✭ 95 (-71.73%)
Mutual labels:  android-development
RN Android Native
Sample for React Native Android UI
Stars: ✭ 19 (-94.35%)
Mutual labels:  android-development
MyNotes
📒Note taking app, MVVM with Google Architectural components Room, LiveData and ViewModel written in Kotlin, androidx libraries
Stars: ✭ 60 (-82.14%)
Mutual labels:  android-development
buildAPKsApps
Android APK app sources that build in Termux on Amazon Fire, Android and Chromebook! https://sdrausty.github.io/buildAPKsApps/
Stars: ✭ 32 (-90.48%)
Mutual labels:  android-development
fluxfonts
A unique tool that blurs your device’s unique font fingerprint by continuously installing and uninstalling new fonts that are generated on the fly.
Stars: ✭ 59 (-82.44%)
Mutual labels:  device-fingerprint
Multi-Module-Nextflix-Composable
Includes jetpack compose, navigation, paging, hilt, retrofit, coil, coroutines, flow..
Stars: ✭ 195 (-41.96%)
Mutual labels:  android-development
android-localization-helper
A python script that helps you create strings.xml for all languages in different hierarchical folder(using Google Translation API)
Stars: ✭ 19 (-94.35%)
Mutual labels:  android-development
snippet-timekeeper
An android library to measure code execution time. No need to remove the measurement code, automatically becomes no-op in the release variants. Does not compromise with the code readability and comes with features that enhance the developer experience.
Stars: ✭ 70 (-79.17%)
Mutual labels:  android-development
Myapplications
My Tutorials
Stars: ✭ 50 (-85.12%)
Mutual labels:  android-development
QuadTreeAndroid
Library that helps to implement the QuadTree in android, by using splitting images
Stars: ✭ 30 (-91.07%)
Mutual labels:  android-development
ChipView
A simple Chip based EditText with a searchable ListView
Stars: ✭ 44 (-86.9%)
Mutual labels:  android-development
a11y-ally
A collection of tools to aid developers observe, verify, and test the accessibility of Android applications.
Stars: ✭ 23 (-93.15%)
Mutual labels:  android-development
antimalwareapp
Anti-malware for Android using machine learning
Stars: ✭ 206 (-38.69%)
Mutual labels:  android-development
Kata-Dagger2-Android
Kata to practice Dependency injection using Dagger 2.
Stars: ✭ 21 (-93.75%)
Mutual labels:  android-development
swift-android-kotlin
Kotlin/Swift integration example
Stars: ✭ 69 (-79.46%)
Mutual labels:  android-development
permissions-flow
A simple library to make it easy requesting permissions in Android using Kotlin Coroutines.
Stars: ✭ 81 (-75.89%)
Mutual labels:  android-development

Fingerprint logo

Latest release Build status Android minAPI status

Discord server

Get it on Google Play

FingerprintJS Android

Lightweight library for device identification and fingerprinting.

Fully written in Kotlin. 100% Crash-free.

Creates a device identifier from all available platform signals.

The identifier is fully stateless and will remain the same after reinstalling or clearing application data.

Check the FingeprintJS iOS – an iOS library for device fingerprinting.

Table of Contents

  1. Quick start
  2. Usage
  3. Playground App

Quick start

1. Add repository

Add these lines to your build.gradle.

allprojects {	
  repositories {
  ...
  maven { url 'https://jitpack.io' }	
}}

2. Add dependency

Add these lines to build.gradle of a module.

This library depends on kotlin-stdlib.

If your application is written in Java, add kotlin-stdlib dependency first (it's lightweight and has excellent backward and forward compatibility).

dependencies {
  // Add this line only if you use this library with Java
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

  implementation "com.github.fingerprintjs:fingerprint-android:2.0.0"
}

3. Get deviceIDs and fingerprints

Kotlin

// Initialization
 val fingerprinter = FingerprinterFactory.create(context)

// Usage
fingerprinter.getFingerprint(version = Fingerprinter.Version.V_5) { fingerprint ->
    // Use fingerprint
}

fingerprinter.getDeviceId(version = Fingerprinter.Version.V_5) { result ->
    val deviceId = result.deviceId
    // Use deviceId
}

Java

// Initialization
Fingerprinter fingerprinter = FingerprinterFactory.create(context);

// Usage
fingerprinter.getFingerprint(Fingerprinter.Version.V_5, fingerprint-> {
    // use fingerprint
    return null;
});

fingerprinter.getDeviceId(Fingerprinter.Version.V_5, deviceIdResult-> {
    String deviceId = deviceIdResult.getDeviceId();
    // use deviceId
    return null;
});

getFingerprint and getDeviceId methods execute on a worker thread, as well as the lambda you pass to them, so don't forget to post the work to the main thread when needed.

Also the results are cached, so subsequent calls will be faster.

deviceId vs fingerprint

The library operates with two entities.

  1. deviceId - is a random and unique device identifier.

Can be used by developers to identify devices to deliver personalized content, detect suspicious activity, and perform fraud detection. Internally it will use Google Service Framework ID, Media DRM ID or Android ID depending on which one is available. This identifier is stable, i.e. it will remain the same even after reinstalling your app. But it will be different after factory reset of the device.

  1. fingerprint is a digital device fingerprint. It works by combining all available device signals and attributes into a single identifier. There is a probability that two identical devices will have the same fingerprint.

Which one should I use?

deviceId is guaranteed to be random and should be your first choice for device identification. This identifier can be spoofed though and shouldn't be used in security-focused or fraud detection scenarios.

fingerprint is much harder to spoof and is a safer choice in security-focused use cases.

See the table about stability of each.

Versioning

fingerprint is versioned incrementally; the version should be set explicitly to avoid unexpected fingerprint changes when updating the library.

See full API reference.

Migration from 1.*.* library versions

The library API has undergone some changes in the major version 2. The older APIs are left as deprecated for now, but are planned to be removed in the future releases. For the vast majority of library usage scenarios the migration process will be fast and almost effortless.

Check out Migration to V2 for migration steps and the motivation behind the changes to the API.

Fingerprint Android Demo App

Try the library features in the Fingerprint Android Demo App.

Android API support

fingerprint-android supports API versions from 21 (Android 5.0) and higher.

License

This library is MIT licensed. Copyright FingerprintJS, Inc. 2020-2022.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].