{"adoption": {"forks": 318, "observed_at": "2026-08-28T04:05:53.758067+00:00", "stars": 1915}, "canonical_url": "https://ross.abutalabs.com/products/twoyi", "card": {"archived": true, "artifact_type": "application", "description": "A lightweight Android container on Android", "domain": ["android-tools", "operating-systems", "security"], "enriched": true, "function": ["container-runtime", "security"], "health_score": 10, "homepage": "https://twoyi.io", "language": "Java", "license": "MPL-2.0", "license_family": "copyleft", "maturity": "abandoned", "member_repos": ["twoyi/twoyi"], "name": "twoyi/twoyi", "platform": [], "pushed_at": "2023-04-20T11:32:16+00:00", "repo": "twoyi/twoyi", "stars": 1915, "tags": ["android-container", "rootless", "virtualization", "xposed", "discontinued", "android"], "topics": ["twoyi", "virtual", "android"], "urls": [], "use_cases": ["run a rooted Android environment on a non-rooted device", "use Xposed or LSPosed without unlocking the bootloader", "test apps in an isolated Android container", "implement virtual camera or virtual sensors via HAL virtualization", "do Android security research such as shelling"], "what_it_is": "Twoyi is a lightweight Android-in-Android container that runs a nearly complete Android 8.1 system as a normal app on Android 8.1-12 devices without root. It enables root inside the container, Xposed frameworks, and customizable system components like virtual HAL layers.", "when_to_avoid": ["you need ongoing support or updates - the project is officially discontinued", "you need a recent Android version inside the container (internal system is Android 8.1)", "you want to build the internal ROM from source - it is not fully open-sourced"], "when_to_choose": ["you need root or Xposed on a device you cannot unlock or root", "you want a fast-booting, isolated Android sandbox for testing or research"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/twoyi", "repo": "twoyi/twoyi", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.758067+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:10:24.516311+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "867114c887b644195cc561415bc41a77cf05eb27feb121971aff540ba32675c2", "fetched_at": "2026-08-28T04:05:53.758067+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twoyi/twoyi"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.758067+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:10:24.516311+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "867114c887b644195cc561415bc41a77cf05eb27feb121971aff540ba32675c2", "fetched_at": "2026-08-28T04:05:53.758067+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twoyi/twoyi"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:10:24.516311+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "867114c887b644195cc561415bc41a77cf05eb27feb121971aff540ba32675c2", "fetched_at": "2026-08-28T04:05:53.758067+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twoyi/twoyi"}], "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:05:53.758067+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.758067+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.758067+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:10:24.516311+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "867114c887b644195cc561415bc41a77cf05eb27feb121971aff540ba32675c2", "fetched_at": "2026-08-28T04:05:53.758067+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twoyi/twoyi"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.758067+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.758067+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:10:24.516311+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "867114c887b644195cc561415bc41a77cf05eb27feb121971aff540ba32675c2", "fetched_at": "2026-08-28T04:05:53.758067+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twoyi/twoyi"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.758067+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.758067+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.758067+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:10:24.516311+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "867114c887b644195cc561415bc41a77cf05eb27feb121971aff540ba32675c2", "fetched_at": "2026-08-28T04:05:53.758067+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twoyi/twoyi"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.758067+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.758067+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:10:24.516311+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "867114c887b644195cc561415bc41a77cf05eb27feb121971aff540ba32675c2", "fetched_at": "2026-08-28T04:05:53.758067+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twoyi/twoyi"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:10:24.516311+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "867114c887b644195cc561415bc41a77cf05eb27feb121971aff540ba32675c2", "fetched_at": "2026-08-28T04:05:53.758067+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twoyi/twoyi"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:10:24.516311+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "867114c887b644195cc561415bc41a77cf05eb27feb121971aff540ba32675c2", "fetched_at": "2026-08-28T04:05:53.758067+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twoyi/twoyi"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:10:24.516311+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "867114c887b644195cc561415bc41a77cf05eb27feb121971aff540ba32675c2", "fetched_at": "2026-08-28T04:05:53.758067+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twoyi/twoyi"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1703, "days_push": 1231, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}