{"adoption": {"forks": 296, "observed_at": "2026-08-28T04:04:30.310473+00:00", "stars": 1362}, "canonical_url": "https://ross.abutalabs.com/products/libaums", "card": {"archived": false, "artifact_type": "library", "description": "Open source library to access USB Mass Storage devices on Android without rooting your device", "domain": ["android-tools", "files", "hardware", "developer-tools"], "enriched": true, "function": ["file-system", "sdk", "developer-tools"], "health_score": 78, "homepage": null, "language": "Kotlin", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["magnusja/libaums"], "name": "magnusja/libaums", "platform": ["jvm"], "pushed_at": "2026-08-09T10:52:18+00:00", "repo": "magnusja/libaums", "stars": 1362, "tags": ["usb-mass-storage", "usb-host-api", "fat32", "usb-otg", "no-root", "scsi", "android-library", "android"], "topics": ["mass-storage-device", "android", "java", "usb", "usb-otg", "fat32", "files", "usb-drive", "usb-flash", "mass-storage", "android-library", "usb-host", "android-usb-host", "kotlin", "kotlin-android", "kotlin-library", "libaums", "on-the-go", "storage", "android-things"], "urls": [], "use_cases": ["read files from a USB flash drive on Android", "access an external hard disk from an Android app without root", "browse a FAT32 USB stick connected via OTG", "list partitions and free space on a USB mass storage device", "serve files from a USB drive over HTTP on Android", "integrate USB card reader support into an Android app"], "what_it_is": "An open-source Android library (Java/Kotlin) that lets apps access USB mass storage devices such as pen drives, external HDDs, and card readers via the Android USB Host API without root. It implements the SCSI command set and FAT32 file system, with optional HTTP server and storage provider modules.", "when_to_avoid": ["you need file systems other than FAT32 (e.g., exFAT, NTFS)", "your target is not Android or you cannot use the USB Host API", "you only need access to built-in device storage rather than USB drives"], "when_to_choose": ["your Android app needs to read or write USB mass storage devices without rooting", "you need FAT32 support over the Android USB Host API", "you want a JVM/Android library with Java and Kotlin APIs for USB drives"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/libaums", "repo": "magnusja/libaums", "role": "main", "score": 66}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.310473+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:41:31.086470+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ad75c6dd4b77bef6146c0f0489dece9db417cbbe16a88d145946780a8c184af9", "fetched_at": "2026-08-28T04:04:30.310473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/magnusja/libaums"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.310473+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:41:31.086470+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ad75c6dd4b77bef6146c0f0489dece9db417cbbe16a88d145946780a8c184af9", "fetched_at": "2026-08-28T04:04:30.310473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/magnusja/libaums"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:41:31.086470+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ad75c6dd4b77bef6146c0f0489dece9db417cbbe16a88d145946780a8c184af9", "fetched_at": "2026-08-28T04:04:30.310473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/magnusja/libaums"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.310473+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.310473+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.310473+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:41:31.086470+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ad75c6dd4b77bef6146c0f0489dece9db417cbbe16a88d145946780a8c184af9", "fetched_at": "2026-08-28T04:04:30.310473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/magnusja/libaums"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.310473+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.310473+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:41:31.086470+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ad75c6dd4b77bef6146c0f0489dece9db417cbbe16a88d145946780a8c184af9", "fetched_at": "2026-08-28T04:04:30.310473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/magnusja/libaums"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.310473+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.310473+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.310473+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:41:31.086470+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ad75c6dd4b77bef6146c0f0489dece9db417cbbe16a88d145946780a8c184af9", "fetched_at": "2026-08-28T04:04:30.310473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/magnusja/libaums"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.310473+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.310473+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:41:31.086470+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ad75c6dd4b77bef6146c0f0489dece9db417cbbe16a88d145946780a8c184af9", "fetched_at": "2026-08-28T04:04:30.310473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/magnusja/libaums"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:41:31.086470+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ad75c6dd4b77bef6146c0f0489dece9db417cbbe16a88d145946780a8c184af9", "fetched_at": "2026-08-28T04:04:30.310473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/magnusja/libaums"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:41:31.086470+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ad75c6dd4b77bef6146c0f0489dece9db417cbbe16a88d145946780a8c184af9", "fetched_at": "2026-08-28T04:04:30.310473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/magnusja/libaums"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:41:31.086470+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ad75c6dd4b77bef6146c0f0489dece9db417cbbe16a88d145946780a8c184af9", "fetched_at": "2026-08-28T04:04:30.310473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/magnusja/libaums"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4613, "days_push": 24, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 66, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}