{"id":13643594,"url":"https://github.com/RikkaW/YASNAC","last_synced_at":"2025-04-21T02:30:44.033Z","repository":{"id":37105402,"uuid":"409638182","full_name":"RikkaW/YASNAC","owner":"RikkaW","description":"Yet Another SafetyNet Attestation Checker","archived":true,"fork":false,"pushed_at":"2024-01-30T13:53:47.000Z","size":330,"stargazers_count":616,"open_issues_count":4,"forks_count":35,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-11-09T15:43:05.720Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/RikkaW.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}},"created_at":"2021-09-23T15:04:11.000Z","updated_at":"2024-11-07T17:35:54.000Z","dependencies_parsed_at":"2024-01-14T10:00:56.642Z","dependency_job_id":"aa51aadd-fc8f-42e6-825b-986dbbac0aa4","html_url":"https://github.com/RikkaW/YASNAC","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RikkaW%2FYASNAC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RikkaW%2FYASNAC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RikkaW%2FYASNAC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RikkaW%2FYASNAC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RikkaW","download_url":"https://codeload.github.com/RikkaW/YASNAC/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249986029,"owners_count":21356310,"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","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":[],"created_at":"2024-08-02T01:01:49.832Z","updated_at":"2025-04-21T02:30:41.648Z","avatar_url":"https://github.com/RikkaW.png","language":"Kotlin","funding_links":[],"categories":["HarmonyOS","🧰 Power Tools \u0026 Utilities"],"sub_categories":["Windows Manager","📲 Device Info/Monitors"],"readme":"# YASNAC\n\nYASNAC (short for **Y**et **A**nother **S**afety**N**et **A**ttestation **C**hecker) is an Android app that demonstrates SafetyNet Attestation API.\n\nYASNAC is written with [Jetpack Compose](https://developer.android.com/jetpack/compose).\n\n## Introduction\n\nSafetyNet is developed by Google, it provides a set of services and APIs.\nSafetyNet Attestation API provides a cryptographically-signed attestation, assessing the device's integrity. The app developer can use SafetyNet Attestation API to check if the device is an emulator, bootloader unlocked, system integrity compromised (root for example), etc. Read [the document from Google](https://developer.android.com/training/safetynet/attestation) for more.\n\nThis app uses SafetyNet Attestation API and displays the result.\n\nIn the production environment, the response of the SafetyNet Attestation API should be transfer to a remote server for verification. As a simple demonstration project, it is impractical to provide a server, so the verification step runs locally.\n\n## Download\n\n- [Google Play](https://play.google.com/store/apps/details?id=rikka.safetynetchecker)\n\n- [GitHub release](https://github.com/RikkaW/YASNAC/releases/latest)\n\n  Some users report that attestations always fail for \"The version of the Google Play services installed on this device is not authentic\". This could be solved by installing the app from Google Play. See [#24](https://github.com/RikkaW/YASNAC/issues/24) [#22](https://github.com/RikkaW/YASNAC/issues/22).\n\nRelease apk uses our API key, which has a quota of 10,000 times per day. The quota is shared across all users. If the quota is exhausted, you will see an error.\n\n## Build\n\n1. Obtain as many API keys as desired by [following the guide from Google](https://developer.android.com/training/safetynet/attestation#obtain-api-key)\n2. Write the key(s) to `local.properties` in the form of `apiKey=api_key_1\\\",\\\"api_key_2`...\n3. Build with Android Studio or command line `gradlew :app:aR`\n\n## Something else\n\nAndroid's [Key Attestation API](https://developer.android.com/training/articles/security-key-attestation) is used by SafetyNet to check if the device is unlocked.\n\n[Key Attestation (vvb2060/KeyAttestation)](https://github.com/vvb2060/KeyAttestation) is another demonstrate app for the Key Attestation API.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRikkaW%2FYASNAC","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRikkaW%2FYASNAC","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRikkaW%2FYASNAC/lists"}