{"id":30367141,"url":"https://github.com/trustdecision/trustdevice-android","last_synced_at":"2025-08-19T23:13:44.830Z","repository":{"id":64719374,"uuid":"577570869","full_name":"trustdecision/trustdevice-android","owner":"trustdecision","description":"Leading open source version of android device fingerprint, accurate deviceID and risk identification.","archived":false,"fork":false,"pushed_at":"2025-07-15T03:40:43.000Z","size":15001,"stargazers_count":398,"open_issues_count":2,"forks_count":59,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-07-15T08:45:48.003Z","etag":null,"topics":["aaid","androidid","deviceid","fingerprint","gaid","imei","imsi","kotlin-android","oaid","trustdecision","udid","uuid"],"latest_commit_sha":null,"homepage":"https://trustdecision.com/solutions/trustdevice","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trustdecision.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-12-13T02:59:44.000Z","updated_at":"2025-07-15T03:40:47.000Z","dependencies_parsed_at":"2023-02-16T18:31:30.378Z","dependency_job_id":"b55c320e-177b-4afb-b43d-fb00a2d1a145","html_url":"https://github.com/trustdecision/trustdevice-android","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/trustdecision/trustdevice-android","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trustdecision%2Ftrustdevice-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trustdecision%2Ftrustdevice-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trustdecision%2Ftrustdevice-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trustdecision%2Ftrustdevice-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trustdecision","download_url":"https://codeload.github.com/trustdecision/trustdevice-android/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trustdecision%2Ftrustdevice-android/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271236299,"owners_count":24723982,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-19T02:00:09.176Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aaid","androidid","deviceid","fingerprint","gaid","imei","imsi","kotlin-android","oaid","trustdecision","udid","uuid"],"created_at":"2025-08-19T23:13:44.278Z","updated_at":"2025-08-19T23:13:44.818Z","avatar_url":"https://github.com/trustdecision.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"resources/logo_light.png\" /\u003e\n      \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"resources/logo_dark.png\" /\u003e\n      \u003cimg src=\"resources/logo_dark.png\" alt=\"TrustDevice logo\" width=\"729px\" /\u003e\n    \u003c/picture\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://jitpack.io/#trustdecision/trustdevice-android\"\u003e\n    \u003cimg src=\"https://jitpack.io/v/trustdecision/trustdevice-android.svg\" alt=\"Latest release\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/trustdecision/trustdevice-android/actions?workflow=android\"\u003e\n    \u003cimg src=\"https://github.com/trustdecision/trustdevice-android/workflows/Android CI/badge.svg\" alt=\"Build status\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://android-arsenal.com/api?level=21\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/API-21%2B-brightgreen.svg\" alt=\"Android minAPI status\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\t\u003ca href='https://play.google.com/store/apps/details?id=com.trustdevice.android.demo\u0026pcampaignid=web_share'\u003e\n\t\t\u003cimg alt='Get it on Google Play' src='https://play.google.com/intl/zh-TW/badges/static/images/badges/en_badge_web_generic.png' width=\"240px\"  /\u003e\n\t\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"resources/demo_2.gif\" width=\"320px\"\u003e\n\u003c/p\u003e\n\n\n\n# TrustDevice-Android\nA lightweight library for determining device uniqueness and risk identification.\n\nCreate a device identifier based on basic device information.\n\nWill remain the same after uninstalling and reinstalling or clearing app data.\n\n🪧Attention🪧：The functions of the basic version of github are relatively limited. \n\nYou can visit [AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-5fkjqqnkoajcs?sr=0-1\u0026ref_=beagle\u0026applicationId=AWSMPContessa) or [TrustDecision](https://trustdecision.com/solutions/device-fingerprint)  to learn about our professional version.\n\n## Quick start\n\n### 1. Add repository\n\nAdd these lines to your `build.gradle`.\n```groovy\nallprojects {\n    repositories {\n        mavenCentral()\n    }\n}\n```\n\nIf your version of Gradle is 7 or newer, add these lines to your `settings.gradle`:\n```groovy\nrepositories {\n        ...\n        mavenCentral()\n    }\n```\n\n### 2. Add dependency\n\nAdd these lines to `build.gradle` of a module.\n```groovy\ndependencies {\n    ...\n    implementation 'com.trustdecision.android:mobrisk:1.1.2'\n}\n```\n\n### 3. Get deviceInfo\n\nDeviceInfo contains device id, risk information and device details.\n\n#### 3.1. Option 1\n\n```java\n// initialization\nTDRisk.init(context);\n\n// usage\nJSONObject deviceInfo = TDRisk.getBlackbox();\n// Obtain deviceid and risk information through deviceInfo\nString deviceID = deviceInfo.optString(\"device_id\");\nJSONObject deviceRisk = deviceInfo.optJSONObject(\"device_risk_label\");\nJSONObject deviceDetail = deviceInfo.optJSONObject(\"device_detail\");\n```\n\n`getBlackbox` method executes in the calling thread and takes time to execute.\n\n#### 3.1.2. Option 2\n\n```java\nTDRisk.Builder builder = new TDRisk.Builder();\nbuilder.callback(new TDRiskCallback() {\n    @Override\n    public void onEvent(JSONObject deviceInfo) {\n      \t// Obtain deviceid and risk information through deviceInfo\n        String deviceID = deviceInfo.optString(\"device_id\");\n        JSONObject deviceRisk = deviceInfo.optJSONObject(\"device_risk_label\");\n        JSONObject deviceDetail = deviceInfo.optJSONObject(\"device_detail\");\n    }\n});\nTDRisk.initWithOptions(context, builder);\n```\n\n`callback` is in a sub-thread, please do not perform UI operations.\n\n## Data Sample\n\n```json\n{\n  \"device_id\": \"55161BB8343D62230217F2D8206B67D428AE288F788C379341A0A95D4300B3A3\",\n  \"device_risk_label\": {\n    \"root\": \"true\",\n    \"debug\": \"true\",\n    \"multiple\": \"false\",\n    \"xposed\": \"false\",\n    \"magisk\": \"true\",\n    \"hook\": \"false\",\n    \"emulator\": \"false\",\n    \"vpn\": \"false\",\n    \"device_info_tampered\": \"false\"\n  },\n  \"device_detail\": {\n    \"abiType\": \"arm64-v8a,armeabi-v7a,armeabi\",\n    \"accessibilityEnabled\": \"0\",\n    \"adbEnabled\": \"1\",\n    \"allowMockLocation\": \"0\",\n    \"androidId\": \"4d52a39e07b9e464\",\n    \"androidVersion\": \"13\",\n    \"appList\": \"...\",\n    \"availableMemory\": \"3012796416\",\n    \"availableStorage\": \"44510015488\",\n    \"batteryHealthStatus\": \"good\",\n    \"batteryLevel\": \"100\",\n    \"batteryStatus\": \"full\",\n    \"batteryTemp\": \"294\",\n    \"batteryTotalCapacity\": \"2800.0\",\n    \"brand\": \"google\",\n    \"coresCount\": \"8\",\n    \"country\": \"CN\",\n    \"cpuHardware\": \"Qualcomm Technologies, Inc SM8150\",\n    \"cpuProcessor\": \"AArch64 Processor rev 14 (aarch64)\",\n    \"dataRoaming\": \"0\",\n    \"debug\": \"7\",\n    \"defaultInputMethod\": \"com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME\",\n    \"developmentSettingEnabled\": \"1\",\n    \"display\": \"TP1A.221005.002\",\n    \"emulator\": \"false\",\n    \"filesAbsolutePath\": \"/data/user/0/com.trustdevice.android/files\",\n    \"fingerprint\": \"google/flame/flame:13/TP1A.221005.002/9012097:user/release-keys\",\n    \"gsfId\": \"3750143927290222004\",\n    \"hardware\": \"flame\",\n    \"harmonyOS\": \"false\",\n    \"hook\": \"\",\n    \"host\": \"abfarm-release-rbe-64-00071\",\n    \"httpProxy\": \"\",\n    \"kernelVersion\": \"4.14.276-gecab2e0c9918-ab8931408\",\n    \"language\": \"zh\",\n    \"magisk\": \"true\",\n    \"manufacturer\": \"Google\",\n    \"mediaDrmId\": \"A069CC34B11C17F1C390575C794166F83CDE53B0887D2F718EDC901ED337FDF4\",\n    \"model\": \"Pixel 4\",\n    \"packageName\": \"com.trustdevice.android\",\n    \"product\": \"flame\",\n    \"root\": \"true\",\n    \"screenBrightness\": \"57\",\n    \"screenInches\": \"5.67\",\n    \"screenOffTimeout\": \"600000\",\n    \"screenResolution\": \"1080x2280\",\n    \"sdkVersion\": \"33\",\n    \"sensorsInfo\": \"...\",\n    \"systemAppList\": \"...\",\n    \"timezone\": \"中国标准时间\",\n    \"totalMemory\": \"5730922496\",\n    \"totalStorage\": \"53684973568\",\n    \"touchExplorationEnabled\": \"0\",\n    \"vbMetaDigest\": \"7258013a5672eb08b29be5b233b1b49c36b0eb1cd58a896b7575b2be3fc6dc99\",\n    \"xposed\": \"false\"\n  }\n}\n```\n\n## Open Source Features\n\n- Basic device ID, This identifier is stable, it will remain the same even after uninstalling and reinstalling your app. But it will be different after factory reset of the device.\n- Basic equipment information, which can be used for simple data analysis\n- Basic risk identification ability\n\n| RiskLabel | Risk Description                                             |\n| --------- | ------------------------------------------------------------ |\n| root      | Attackers will have higher privileges and can install many cheating software to affect the normal development of application business. |\n| debug     | Applications can be modified by attackers at will, and the program will return unexpected values. |\n| multiple  | Attackers can clone multiple app.                            |\n\n## Open Source VS Pro\n\n|                               | Open Source |       Pro        |\n| ----------------------------- |:-----------:|:----------------:|\n| 100% open source              |     Yes     |        No        |\n| Device ID                     |    Basic    | Extremely stable |\n| Device Risk Label             |    Basic    |  Extremely rich  |\n| Device Details                |    Basic    |  Extremely rich  |\n| IP Location                   |      -      |        ✓         |\n| Device Risk Score             |      -      |        ✓         |\n| Environment Risk Evaluation   |      -      |        ✓         |\n| Fraud Tools Detection         |      -      |        ✓         |\n| Behavioral Activity Capturing |      -      |        ✓         |\n\n## Pro Introduction\n\nTrustDecision TrustDevice has the leading device fingerprint technology, which has been integrated by more than 10000 global leading brands, protecting the entire customer journey.\n\n**There are 6 leading core features about TrustDevice Pro:**\n\n### 1. Wide Coverage\n\nComprehensive coverage of Android, iOS, Web, H5, applets and other device types.\n\n### 2. Stable and Reliable\n\nTrustDevice served more than 10,000 clients, 200 million+ daily active users , and 6 billion+ devices , with excellent product functions and stability.\nThe fingerprint accuracy of different terminal devices exceeded 99.9%, and the output of risk labels exceeded 70 items.\n\n### 3. Unparalleled Safety\n\nTrustDevice's code virtualization \u0026 obfuscation technology make the malware fraudsters suffer from painful cost and imprecision when performing reverse-engineering.\n\n### 4. Core Intellectual Property\n\nFully independent intellectual property rights, with a number of patented technology.\n\n### 5. Security Compliance\n\nTrustDevice is committed to the highest standards in security and compliance to keep your data safe.\nGDPR/CCA/PCI DSS/ISO 27701/ISO 9001 Compliant.\n\n### 6. Easy to Deploy\n\nSaaS(Software as a Service)deployment supported, reducing massively your integration cost and enabling rapid access to device fingerprint service.\n\n## Where to get support\n\nWe are happy to provide technical support for our open-source trustdevice-android library. We recommend using GitHub Issues to submit bugs or Discussions to ask questions. Using [Issues](https://github.com/trustdecision/trustdevice-android/issues) and [Discussions](https://github.com/trustdecision/trustdevice-android/discussions) publicly will help the open-source community and other users with similar issues.\n\nIn addition, any idea or interest in using TrustDevice Pro can be found on the [www.trustdecision.com](https://www.trustdecision.com/trustDevice),  registered account for a free trial; or via email trustdevice@trustdecision.com contact us directly and quickly open the service.\n\n## TrustDevice Android Demo App\n\nTry the library features in the [TrustDevice Android Demo App](https://github.com/trustdecision/trustdevice-android/releases/download/1.0.3/TrustDevice-release-1.0.3.apk).\n\n## Compatibility\n\n| Items                     | Description             |\n| :-----------------------: |:-----------------------:|\n| Supported System Versions | Android5.0+ ( API 21+ ) |\n| Supported Architecture    | armeabi-v7a, arm64-v8a, x86,x86_64 |\n\n## TrustDevice Pro VS Others\n\u003ctable\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003cth\u003eType\u003c/th\u003e\u003cth\u003eScene\u003c/th\u003e\u003cth\u003eResult\u003c/th\u003e\u003cth\u003eTrusDevice Pro\u003c/th\u003e\u003cth\u003eFingerprint\u003c/th\u003e\u003cth\u003eSeon\u003c/th\u003e\u003cth\u003eSift\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd rowspan=\"2\"\u003eDevice Fingerprint Compatibility\u003c/td\u003e\u003ctd\u003eSupport Hongmeng system, including HarmonyOS 3.0, etc.\u003c/td\u003e\u003ctd\u003eAble to collect device info and generate device ID\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eAndroid 5.0 and above, including Android 14, etc.\u003c/td\u003e\u003ctd\u003eAble to collect device info and generate device ID\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd rowspan=\"2\"\u003eDevice fingerprint uniqueness\u003c/td\u003e\u003ctd\u003eDifferent Apps (with different package names) on the same device\u003c/td\u003e\u003ctd\u003eDevice fingerprint/ID matches\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eThe same app on two unique devices (including the case of the same device model and the same system version)\u003c/td\u003e\u003ctd\u003eDevice fingerprint/ID should not match. Each device to have its own unique device fingeprint/ID\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd rowspan=\"7\"\u003eDevice Fingerprint Stability\u003c/td\u003e\u003ctd\u003eUninstall and reinstall of app\u003c/td\u003e\u003ctd\u003eDevice fingerprints/ID are consistent before and after reinstallation\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eClear all app data\u003c/td\u003e\u003ctd\u003eDevice fingerprints/ID are consistent before and after clearing all app data\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eDisable all app permissions except network permissions and clear app data\u003c/td\u003e\u003ctd\u003eDevice fingerprints/ID are consistent before and after disabling all permissions\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eModify the common information of the device system (brand, model, IMEI number, MAC address, etc.) through the device modification tool\u003c/td\u003e\u003ctd\u003eDevice fingerprint/ID still matches with before modification\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eRunning same app in two instances using virtualization on the same device (i.e. using parallel space or dual space tools)\u003c/td\u003e\u003ctd\u003eDevice fingerprint/ID still matches between both app instances\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eAndroid system upgrade\u003c/td\u003e\u003ctd\u003eDevice fingerprint/ID are consistent before and after system upgrade\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eFactory reset\u003c/td\u003e\u003ctd\u003eThe device fingerprints are the same before and after the device is restored to factory settings\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd rowspan=\"18\"\u003eDevice Fingerprint Risk Identification\u003c/td\u003e\u003ctd\u003eSecondary packaging\u003c/td\u003e\u003ctd\u003eAbility to identify secondary packaged unofficial apps\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eReplay attack\u003c/td\u003e\u003ctd\u003eAbility to identify replay attacks\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eSuspected risky ROM\u003c/td\u003e\u003ctd\u003eAbility to identify suspected risky ROMs\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eDevice location information has been tampered with\u003c/td\u003e\u003ctd\u003eAbility to identify tampering of location information\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eThe device does not have a SIM card inserted\u003c/td\u003e\u003ctd\u003eCan identify whether the device is inserted with a SIM card\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eThe device uses an HTTP proxy\u003c/td\u003e\u003ctd\u003eCan identify HTTP proxy risks\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eThe device uses a VPN proxy\u003c/td\u003e\u003ctd\u003eCan identify VPN proxy risks\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eThe device is Rooted\u003c/td\u003e\u003ctd\u003eAbility to identify root risks\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eThe device is an Android emulator\u003c/td\u003e\u003ctd\u003eCan recognize emulator/simulator\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eThe device is an Android cloud emulator\u003c/td\u003e\u003ctd\u003eAbility to recognize cloud emulators\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eThe device is an Android cloud real device\u003c/td\u003e\u003ctd\u003eCan identify cloud real device\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eDevices use system virtualization tools (i.e. parallel space, dual space, etc)\u003c/td\u003e\u003ctd\u003eAble to identify system virtualization tools\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eThe device uses the virtualization tool to launch multiple instances of same application\u003c/td\u003e\u003ctd\u003eRecognize multiple instances of same applications on same device opened via virtualization tool\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eThe device uses the device modification tool to modify the device parameter information\u003c/td\u003e\u003ctd\u003eAbility to identify mainstream modification tools\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eThe device uses scripting tools\u003c/td\u003e\u003ctd\u003eCan identify mainstream scripting tools\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eThe device uses the group control tool (tools to control multiple devices via a single terminal - device farm/device group)\u003c/td\u003e\u003ctd\u003eCan identify mainstream group control tools\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eThe device is in Android ADB debugging state\u003c/td\u003e\u003ctd\u003eAble to recognize Android ADB debugging\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eThe device uses offerwall software (ad scamming software)\u003c/td\u003e\u003ctd\u003eAbility to identify devices using offerwall software\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd rowspan=\"3\"\u003eSecurity and Stability\u003c/td\u003e\u003ctd\u003eCode Protection\u003c/td\u003e\u003ctd\u003eThe device fingerprint SDK and JS have code protection mechanisms (such as VMP), which effectively resist black hat cracking attempts to manipulate code logic and falsify data\u003c/td\u003e\u003ctd\u003e✅ (OLLVM, VMP)\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eDowngrade\u003c/td\u003e\u003ctd\u003eIntercepting and sending collection requests in the Android environment can still generate device fingerprints normally\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eAnti packet capture\u003c/td\u003e\u003ctd\u003eAndroid has the ability to prevent packet capture\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n## License\n\nThis library is MIT licensed. Copyright trustdecision, Inc. 2022.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrustdecision%2Ftrustdevice-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrustdecision%2Ftrustdevice-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrustdecision%2Ftrustdevice-android/lists"}