{"id":13482453,"url":"https://github.com/twoyi/twoyi","last_synced_at":"2025-09-27T10:31:57.676Z","repository":{"id":37690381,"uuid":"443953724","full_name":"twoyi/twoyi","owner":"twoyi","description":"A lightweight Android container on Android","archived":true,"fork":false,"pushed_at":"2023-04-20T11:32:16.000Z","size":4393,"stargazers_count":1617,"open_issues_count":26,"forks_count":229,"subscribers_count":36,"default_branch":"main","last_synced_at":"2024-09-21T17:38:29.851Z","etag":null,"topics":["android","twoyi","virtual"],"latest_commit_sha":null,"homepage":"https://twoyi.io","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/twoyi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"tiann","patreon":"weishu","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":"https://twoyi.app/guide/sponsor.html"}},"created_at":"2022-01-03T05:45:03.000Z","updated_at":"2024-09-21T11:03:15.000Z","dependencies_parsed_at":"2024-01-13T18:24:24.153Z","dependency_job_id":"ac79ba8a-073f-4a1c-b566-24de7e15f430","html_url":"https://github.com/twoyi/twoyi","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twoyi%2Ftwoyi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twoyi%2Ftwoyi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twoyi%2Ftwoyi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twoyi%2Ftwoyi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/twoyi","download_url":"https://codeload.github.com/twoyi/twoyi/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219871972,"owners_count":16554475,"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":["android","twoyi","virtual"],"created_at":"2024-07-31T17:01:02.141Z","updated_at":"2025-09-27T10:31:51.987Z","avatar_url":"https://github.com/twoyi.png","language":"Java","funding_links":["https://github.com/sponsors/tiann","https://patreon.com/weishu","https://twoyi.app/guide/sponsor.html"],"categories":["Java"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cp\u003e\u003cb\u003eDue to the complexity of the project and lack of any revenue, the project has been discontinued.\u003c/b\u003e\u003c/p\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cp\u003e\n    \u003ch3\u003e\n      \u003cb\u003e\n        Twoyi Platform\n      \u003c/b\u003e\n    \u003c/h3\u003e\n  \u003c/p\u003e\n  \u003cp\u003e\n    \u003cb\u003e\n      A lightweight Android container\n    \u003c/b\u003e\n    \u003cbr/\u003e\n  \u003c/p\u003e\n  \u003cp\u003e\n\n[![contributions welcome](https://img.shields.io/badge/Contributions-welcome-brightgreen?logo=github)](CODE_OF_CONDUCT.md) [![Website](https://img.shields.io/badge/Website-available-brightgreen?logo=e)](https://twoyi.io)\n  \u003c/p\u003e\n  \u003cp\u003e\n    \u003csub\u003e\n      Made with ❤︎ by\n      \u003ca href=\"https://github.com/tiann\"\u003e\n        weishu\n      \u003c/a\u003e\n    \u003c/sub\u003e\n  \u003c/p\u003e\n  \u003cbr /\u003e\n  \u003cp\u003e\n    \u003ca href=\"https://twoyi.io\"\u003e\n      \u003cimg\n        src=\"https://github.com/twoyi/twoyi/blob/main/assets/twoyi_screen.jpg?raw=true\"\n        alt=\"Screenshot\"\n        width=\"25%\"\n      /\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n[README 中文版](README_CN.md)\n\n## Introduction\n\nTwoyi is a lightweight Android container. It runs a nearly complete Android system as a normal app (no root required) on Android. Additionally, it supports Android 8.1 ~ 12.\n\n## Capability\n\n1. Use Taichi·Yang without unlocking the bootloader. Xposed, EdXposed and LSPosed will be supported.\n2. Use root on non-rooted devices.\n3. Use a few Magisk modules.\n4. Implement additional system components such as virtual camera by virtualizing the HAL layer.\n5. Do security research such as shelling.\n\n## Features\n\n1. Twoyi is a rootless Android system-level container, which runs a nearly complete Android system as a normal app and is mostly isolated from the main system.\n2. The internal Android version is Android 8.1 and Android 10 will be supported.\n3. Booting up twoyi is very fast (within three seconds) except for the initialization process.\n4. Twoyi is an open source project.\n5. The internal system of twoyi will be fully customizable. Because its system is open source, you can fork the project to compile your own system. You can also customize the system components, such as the HAL layer to implement virtual cameras, virtual sensors and other special features.\n\n## Building\n\nTwoyi contains two parts:\n\n1. The twoyi app, which is actually a UI rendering engine.\n2. The internal ROM of twoyi.\n\nThis repository contains the twoyi app, and the twoyi ROM is currently being turned into open-source.  Therefore, at this moment, the ROM cannot be compiled from source yet.\n\n### Build the App manually\n\n#### Install Rust\n\nTwoyi is partially written in Rust, so it's nessesary to [install Rust and Cargo](https://www.rust-lang.org/tools/install) first.\n\n#### Install cargo-xdk\n\nPlease refer to [cargo-xdk](https://github.com/tiann/cargo-xdk).\n\nYou can check if it is installed by running `./gradlew cargoBuild`. If it succeeded, you will see libtwoyi.so in `app/src/main/jniLibs/arm64-v8a`.\n\nPS. Please use ndk v22 or lower, otherwise it may fail.\n\n#### Integrating rootfs\n\nCurrently you cannot build the ROM yourself, instead you can use the prebuilt ROM.\nTo do that, extract rootfs.7z from the official release apk and copy it to `app/src/main/assets`.\n\n### Build the app with Android Studio\n\nBuild it with Android Studio normally.\n\n### Build the ROM\n\nWIP\n\n## Discussion\n\n[Telegram Group](https://t.me/twoyi)\n\n## Contact Me\n\ntwsxtd@gmail.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwoyi%2Ftwoyi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftwoyi%2Ftwoyi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwoyi%2Ftwoyi/lists"}