{"adoption": {"forks": 66, "observed_at": "2026-08-28T04:04:27.169957+00:00", "stars": 1344}, "canonical_url": "https://ross.abutalabs.com/products/owndroid", "card": {"archived": false, "artifact_type": "application", "description": "使用安卓Device owner特权管理你的设备。Use Android Device owner privilege to manage your device.", "domain": ["android-tools", "privacy", "self-hosted"], "enriched": true, "function": ["security", "configuration-management", "developer-tools"], "health_score": 100, "homepage": null, "language": "Kotlin", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["BinTianqi/OwnDroid"], "name": "BinTianqi/OwnDroid", "platform": [], "pushed_at": "2026-08-26T10:13:12+00:00", "repo": "BinTianqi/OwnDroid", "stars": 1344, "tags": ["device-owner", "devicepolicymanager", "device-administration", "kotlin", "shizuku", "adb", "root", "work-profile", "fdroid", "automation", "android", "mobile"], "topics": ["android", "device-owner", "kotlin"], "urls": [], "use_cases": ["manage my android device with device owner privileges", "disable camera or screenshots on my phone", "block app uninstallation or hide apps on android", "reset the screen lock password via adb", "create and switch android users programmatically", "restrict usb file transfer and nfc on my device"], "what_it_is": "OwnDroid is an Android app that uses the DevicePolicyManager API with Device owner privileges to manage your own device. It provides system, network, application, user, and password management controls without requiring a dedicated MDM server.", "when_to_avoid": ["you need remote/centralized enterprise device management across many devices", "your device is a Samsung with user limits or a vendor that blocks device owner provisioning", "you cannot enable ADB debugging or obtain root/Shizuku access"], "when_to_choose": ["you want fine-grained control over your own Android device without an MDM server", "you can activate device owner via ADB, root, Shizuku, or Dhizuku", "you need to restrict apps, permissions, users, or system features locally"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/owndroid", "repo": "BinTianqi/OwnDroid", "role": "main", "score": 89}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.169957+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:42:47.677323+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca2de1eec5d02bc9c44d78c0590955c54cb19ce20709d2230b731e762ed3cd67", "fetched_at": "2026-08-28T04:04:27.169957+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BinTianqi/OwnDroid"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.169957+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:42:47.677323+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca2de1eec5d02bc9c44d78c0590955c54cb19ce20709d2230b731e762ed3cd67", "fetched_at": "2026-08-28T04:04:27.169957+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BinTianqi/OwnDroid"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:42:47.677323+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca2de1eec5d02bc9c44d78c0590955c54cb19ce20709d2230b731e762ed3cd67", "fetched_at": "2026-08-28T04:04:27.169957+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BinTianqi/OwnDroid"}], "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:27.169957+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.169957+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.169957+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:42:47.677323+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca2de1eec5d02bc9c44d78c0590955c54cb19ce20709d2230b731e762ed3cd67", "fetched_at": "2026-08-28T04:04:27.169957+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BinTianqi/OwnDroid"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.169957+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.169957+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:42:47.677323+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca2de1eec5d02bc9c44d78c0590955c54cb19ce20709d2230b731e762ed3cd67", "fetched_at": "2026-08-28T04:04:27.169957+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BinTianqi/OwnDroid"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.169957+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.169957+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.169957+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:42:47.677323+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca2de1eec5d02bc9c44d78c0590955c54cb19ce20709d2230b731e762ed3cd67", "fetched_at": "2026-08-28T04:04:27.169957+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BinTianqi/OwnDroid"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.169957+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.169957+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:42:47.677323+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca2de1eec5d02bc9c44d78c0590955c54cb19ce20709d2230b731e762ed3cd67", "fetched_at": "2026-08-28T04:04:27.169957+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BinTianqi/OwnDroid"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:42:47.677323+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca2de1eec5d02bc9c44d78c0590955c54cb19ce20709d2230b731e762ed3cd67", "fetched_at": "2026-08-28T04:04:27.169957+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BinTianqi/OwnDroid"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:42:47.677323+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca2de1eec5d02bc9c44d78c0590955c54cb19ce20709d2230b731e762ed3cd67", "fetched_at": "2026-08-28T04:04:27.169957+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BinTianqi/OwnDroid"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:42:47.677323+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca2de1eec5d02bc9c44d78c0590955c54cb19ce20709d2230b731e762ed3cd67", "fetched_at": "2026-08-28T04:04:27.169957+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BinTianqi/OwnDroid"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 68, "rhythm": 87}, "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": 963, "days_push": 7, "days_rel": 7, "gap_med": 37.0, "n_releases_24m": 15}, "score": 89, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}