{"adoption": {"forks": 2487, "observed_at": "2026-08-28T04:09:51.853912+00:00", "stars": 6975}, "canonical_url": "https://ross.abutalabs.com/products/droidplugin", "card": {"archived": false, "artifact_type": "framework", "description": "A plugin framework on android,Run any third-party apk without installation, modification or repackage", "domain": ["android-tools", "mobile-development", "developer-tools"], "enriched": true, "function": ["plugin-system", "middleware", "security"], "health_score": 20, "homepage": "http://droidpluginteam.github.io/DroidPlugin/", "language": "Java", "license": "LGPL-3.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["DroidPluginTeam/DroidPlugin"], "name": "DroidPluginTeam/DroidPlugin", "platform": ["jvm"], "pushed_at": "2024-06-06T02:32:38+00:00", "repo": "DroidPluginTeam/DroidPlugin", "stars": 6975, "tags": ["android-plugin-framework", "apk-virtualization", "app-hooking", "run-without-install", "dynamic-loading", "android", "mobile"], "topics": ["android", "plugin", "droid-plugin", "virtualization", "hook", "pluginframework"], "urls": [], "use_cases": ["run an apk inside my app without installing it", "load third-party android apps as plugins in a host app", "build an app store that runs apps without installation", "sandbox third-party apks on android", "dynamically load android app components at runtime", "integrate plugin apps into a host with minimal code changes"], "what_it_is": "DroidPlugin is an Android plugin framework that lets a host app run any third-party APK without installation, modification, or repackaging. It works by hooking system-level APIs so plugin apps' components (Activities, Services, BroadcastReceivers, ContentProviders) run inside the host process.", "when_to_avoid": ["your plugin apps rely on native (JNI) code, such as most games, since the native layer is not hooked", "you need custom notifications with remote layouts or custom intent filters for plugin components", "you are starting a new project - the framework is in maintenance mode and newer virtualization approaches may be better supported"], "when_to_choose": ["you need to run unmodified third-party APKs inside a host Android app", "you want minimal code invasion (one-line integration) and full separation of resources and code between host and plugins", "you need to support old Android versions (2.3+)"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/droidplugin", "repo": "DroidPluginTeam/DroidPlugin", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.853912+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:41:09.459228+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6a5949a96154f5f7e22eaa1ae1c6e91dcc5b5c4888620fbad9efda1e916e9676", "fetched_at": "2026-08-28T04:09:51.853912+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DroidPluginTeam/DroidPlugin"}, {"content_hash": "a62f2574343c3d78e1167cc7076e9fc662f7288cebaa936d951de5c0fa8fc91a", "fetched_at": "2026-08-29T08:36:51.459039+00:00", "kind": "homepage", "missing": false, "url": "http://droidpluginteam.github.io/DroidPlugin/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.853912+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:41:09.459228+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6a5949a96154f5f7e22eaa1ae1c6e91dcc5b5c4888620fbad9efda1e916e9676", "fetched_at": "2026-08-28T04:09:51.853912+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DroidPluginTeam/DroidPlugin"}, {"content_hash": "a62f2574343c3d78e1167cc7076e9fc662f7288cebaa936d951de5c0fa8fc91a", "fetched_at": "2026-08-29T08:36:51.459039+00:00", "kind": "homepage", "missing": false, "url": "http://droidpluginteam.github.io/DroidPlugin/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:41:09.459228+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6a5949a96154f5f7e22eaa1ae1c6e91dcc5b5c4888620fbad9efda1e916e9676", "fetched_at": "2026-08-28T04:09:51.853912+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DroidPluginTeam/DroidPlugin"}, {"content_hash": "a62f2574343c3d78e1167cc7076e9fc662f7288cebaa936d951de5c0fa8fc91a", "fetched_at": "2026-08-29T08:36:51.459039+00:00", "kind": "homepage", "missing": false, "url": "http://droidpluginteam.github.io/DroidPlugin/"}], "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:09:51.853912+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.853912+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.853912+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:41:09.459228+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6a5949a96154f5f7e22eaa1ae1c6e91dcc5b5c4888620fbad9efda1e916e9676", "fetched_at": "2026-08-28T04:09:51.853912+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DroidPluginTeam/DroidPlugin"}, {"content_hash": "a62f2574343c3d78e1167cc7076e9fc662f7288cebaa936d951de5c0fa8fc91a", "fetched_at": "2026-08-29T08:36:51.459039+00:00", "kind": "homepage", "missing": false, "url": "http://droidpluginteam.github.io/DroidPlugin/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.853912+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.853912+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:41:09.459228+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6a5949a96154f5f7e22eaa1ae1c6e91dcc5b5c4888620fbad9efda1e916e9676", "fetched_at": "2026-08-28T04:09:51.853912+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DroidPluginTeam/DroidPlugin"}, {"content_hash": "a62f2574343c3d78e1167cc7076e9fc662f7288cebaa936d951de5c0fa8fc91a", "fetched_at": "2026-08-29T08:36:51.459039+00:00", "kind": "homepage", "missing": false, "url": "http://droidpluginteam.github.io/DroidPlugin/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.853912+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.853912+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.853912+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:41:09.459228+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6a5949a96154f5f7e22eaa1ae1c6e91dcc5b5c4888620fbad9efda1e916e9676", "fetched_at": "2026-08-28T04:09:51.853912+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DroidPluginTeam/DroidPlugin"}, {"content_hash": "a62f2574343c3d78e1167cc7076e9fc662f7288cebaa936d951de5c0fa8fc91a", "fetched_at": "2026-08-29T08:36:51.459039+00:00", "kind": "homepage", "missing": false, "url": "http://droidpluginteam.github.io/DroidPlugin/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.853912+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:51.853912+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:41:09.459228+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6a5949a96154f5f7e22eaa1ae1c6e91dcc5b5c4888620fbad9efda1e916e9676", "fetched_at": "2026-08-28T04:09:51.853912+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DroidPluginTeam/DroidPlugin"}, {"content_hash": "a62f2574343c3d78e1167cc7076e9fc662f7288cebaa936d951de5c0fa8fc91a", "fetched_at": "2026-08-29T08:36:51.459039+00:00", "kind": "homepage", "missing": false, "url": "http://droidpluginteam.github.io/DroidPlugin/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:41:09.459228+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6a5949a96154f5f7e22eaa1ae1c6e91dcc5b5c4888620fbad9efda1e916e9676", "fetched_at": "2026-08-28T04:09:51.853912+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DroidPluginTeam/DroidPlugin"}, {"content_hash": "a62f2574343c3d78e1167cc7076e9fc662f7288cebaa936d951de5c0fa8fc91a", "fetched_at": "2026-08-29T08:36:51.459039+00:00", "kind": "homepage", "missing": false, "url": "http://droidpluginteam.github.io/DroidPlugin/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:41:09.459228+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6a5949a96154f5f7e22eaa1ae1c6e91dcc5b5c4888620fbad9efda1e916e9676", "fetched_at": "2026-08-28T04:09:51.853912+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DroidPluginTeam/DroidPlugin"}, {"content_hash": "a62f2574343c3d78e1167cc7076e9fc662f7288cebaa936d951de5c0fa8fc91a", "fetched_at": "2026-08-29T08:36:51.459039+00:00", "kind": "homepage", "missing": false, "url": "http://droidpluginteam.github.io/DroidPlugin/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:41:09.459228+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6a5949a96154f5f7e22eaa1ae1c6e91dcc5b5c4888620fbad9efda1e916e9676", "fetched_at": "2026-08-28T04:09:51.853912+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DroidPluginTeam/DroidPlugin"}, {"content_hash": "a62f2574343c3d78e1167cc7076e9fc662f7288cebaa936d951de5c0fa8fc91a", "fetched_at": "2026-08-29T08:36:51.459039+00:00", "kind": "homepage", "missing": false, "url": "http://droidpluginteam.github.io/DroidPlugin/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4024, "days_push": 819, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}