GithubHelp home page GithubHelp logo

twoyi / twoyi Goto Github PK

View Code? Open in Web Editor NEW
1.6K 1.6K 229.0 4.29 MB

A lightweight Android container on Android

Home Page: https://twoyi.io

License: Mozilla Public License 2.0

Shell 0.15% Rust 10.05% C 0.34% Java 89.46%
android twoyi virtual

twoyi's Introduction

Due to the complexity of the project and lack of any revenue, the project has been discontinued.

Twoyi Platform

A lightweight Android container

contributions welcome Website

Made with ❤︎ by weishu


Screenshot

README 中文版

Introduction

Twoyi 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.

Capability

  1. Use Taichi·Yang without unlocking the bootloader. Xposed, EdXposed and LSPosed will be supported.
  2. Use root on non-rooted devices.
  3. Use a few Magisk modules.
  4. Implement additional system components such as virtual camera by virtualizing the HAL layer.
  5. Do security research such as shelling.

Features

  1. 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.
  2. The internal Android version is Android 8.1 and Android 10 will be supported.
  3. Booting up twoyi is very fast (within three seconds) except for the initialization process.
  4. Twoyi is an open source project.
  5. 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.

Building

Twoyi contains two parts:

  1. The twoyi app, which is actually a UI rendering engine.
  2. The internal ROM of twoyi.

This 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.

Build the App manually

Install Rust

Twoyi is partially written in Rust, so it's nessesary to install Rust and Cargo first.

Install cargo-xdk

Please refer to cargo-xdk.

You 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.

PS. Please use ndk v22 or lower, otherwise it may fail.

Integrating rootfs

Currently you cannot build the ROM yourself, instead you can use the prebuilt ROM. To do that, extract rootfs.7z from the official release apk and copy it to app/src/main/assets.

Build the app with Android Studio

Build it with Android Studio normally.

Build the ROM

WIP

Discussion

Telegram Group

Contact Me

[email protected]

twoyi's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

twoyi's Issues

魅族17Pro使用问题

0.17安装启动正常,但是点击导入授予权限后两仪重启到主界面,强制停止后再尝试依然如此

[0.1.8]卡顿/闪退/应用消失问题

【设备信息】Mi 9 / MIUI 12.5.4 (Android 11)
【复现方式】第一次打开后直接点两仪设置,退出来之后会使键盘设置应用消失,并且再点开设置就回闪退回锁屏界面,再次解锁点击app会变得很卡,此时两仪设置会打不开,打开其他应用会疯狂闪屏并且巨卡无比。

[rust编译失败解决方案]

cargo编译失败及结局办法

1. 平台

mac m1, 12.0.1

2. 软件环境

  • cargo版本

    > cargo -V
    cargo 1.58.0 (f01b232bc 2022-01-19)
    

3. 编译问题及解决办法

  • 3.1. cargo ndk错误

    • 解决办法: 手动下载git库cargo-ndk.cargo/registry/src/github.com-*****/cargo-ndk-2.5.0 (****为自动生成目录)
    • 原因: 国内网络+cargo索引失败导致下载失败
  • 3.2. can't find crate for std / can't find crate for core

    • 日志提示: rustup target add armv7-linux-androideabi
    • 根据平台修改: rustup target add arm-linux-androideabi / rustup target add aarch64-linux-android
    • 官方库: https://static.rust-lang.org/dist/2022-01-20/ ,搜索 linux-androideabi
  • 3.3. aarch64-linux-android21-clang not found

    • 解决办法: local.properties文件中增加ndk.dir=sdk/ndk/22.0.7026061
    • 环境变量也修改下: 本地修改几个变量NDK_HOME/ANDROID_NDK_ROOT/ANDROID_NDK_HOME
      `

小米Mix4 MIUI13无法导入应用

导入后会报错,然后直接卡死。重启后,应用也不存在,我导入的是Via。
偶发性滑动时会卡死,然后直接需要强制结束应用


通过安装包导入应用时报错

非常感谢开发出两仪并开源。
微信截图_20220209155825
如图,在导入应用中点加号选中apk文件是报错。并且冷启动第一次会闪退,第二次才能进入桌面。
机型:真我GT Neo 闪速版(RMX3350)
安卓版本:11
固件版本:RMX3350_11_A.16
还有现在安卓11不root无法直接访问data文件夹,容器想和本机互传数据比较麻烦。

BUG 无法扫描到wifi

手机:华为mate 20 ,系统:鸿蒙2.0.0,应用:两仪0.3.5
尝试过开关,和重启,恢复网络设置。和物理机的开关。
均无法扫描到wifi。

0.2.2直接卡死

一进去初始化完毕就卡在壁纸那里
两仪版本:0.2.2
安卓版本:11
机型:小米8
Screenshot_20220112-073146_twoyi

[bug] 0.3.5 Has no libtwoyi.so

hasnot libtwoyi.so

Error source

  • File: Render2Activity.java
  • code
        static {
            System.loadLibrary("twoyi");
        }

EXCEPTION

2022-02-09 11:14:14.790 1995-1995/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: io.twoyi, PID: 1995
    java.lang.UnsatisfiedLinkError: dlopen failed: library "libtwoyi.so" not found
        at java.lang.Runtime.loadLibrary0(Runtime.java:1087)
        at java.lang.Runtime.loadLibrary0(Runtime.java:1008)
        at java.lang.System.loadLibrary(System.java:1664)
        at io.twoyi.Render2Activity.<clinit>(Render2Activity.java:58)
        at java.lang.Class.newInstance(Native Method)
        at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
        at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:45)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1253)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3335)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3595)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7664)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

APP频繁卡死

APP卡死很频繁。卡死只能关闭应用重新打开

点击开发者选项无响应

2022-01-03 13:47:44.208 29983-29983/? E/SystemServiceRegistry: No service published for: oem_lock
    android.os.ServiceManager$ServiceNotFoundException: No service published for: oem_lock
        at android.os.ServiceManager.getServiceOrThrow(ServiceManager.java:75)
        at android.app.SystemServiceRegistry$72.createService(SystemServiceRegistry.java:787)
        at android.app.SystemServiceRegistry$72.createService(SystemServiceRegistry.java:785)
        at android.app.SystemServiceRegistry$StaticServiceFetcher.getService(SystemServiceRegistry.java:987)
        at android.app.SystemServiceRegistry.getSystemService(SystemServiceRegistry.java:914)
        at android.app.ContextImpl.getSystemService(ContextImpl.java:1667)
        at android.view.ContextThemeWrapper.getSystemService(ContextThemeWrapper.java:171)
        at android.app.Activity.getSystemService(Activity.java:5925)
        at com.android.settings.development.DevelopmentSettings.showEnableOemUnlockPreference(DevelopmentSettings.java:1061)
        at com.android.settings.development.DevelopmentSettings.onCreate(DevelopmentSettings.java:451)
        at android.app.Fragment.performCreate(Fragment.java:2489)
        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1237)
        at android.app.FragmentManagerImpl.addAddedFragments(FragmentManager.java:2407)
        at android.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2186)
        at android.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2142)
        at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2043)
        at android.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:799)
        at com.android.settings.SettingsActivity.switchToFragment(SettingsActivity.java:748)
        at com.android.settings.SettingsActivity.launchSettingFragment(SettingsActivity.java:435)
        at com.android.settings.SettingsActivity.onCreate(SettingsActivity.java:327)
        at android.app.Activity.performCreate(Activity.java:7009)
        at android.app.Activity.performCreate(Activity.java:7000)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6494)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807

使用飞书问题汇总

工作台的banner图片加载不出来;
Screenshot_2022-01-04-12-42-09-809_io.twoyi.jpg
小程序加载不出来,一直在启动页面;
Screenshot_2022-01-04-12-41-55-762_io.twoyi.jpg

导入文件及下载问题

两仪只能导入64位应用,部分应用无法导入。
浏览器内无法下载,下载进度一直是0.

语言bug

设置语言为粤语必定卡死,
Screenshot_2022-01-04-03-02-15-33_41e8f3d7b2e3c54bc98b1507aeaff91e

部分bug v0.2.5

无音频输出
无蓝牙
无法修改默认桌面
开发者选项无法识别Google webview导致无法更改
剪贴板不互通
无法导入安装包文件
部分已安装应用导入失败
有时导入已安装应用时会一直卡在等待界面

两仪 0.2.5 , 小米mix2s A10 类原生

0.3.5版不支持导入旧模块

最新的0.3.5版本
1导入模块的时候不支持32位的模块
2系统不带浏览器,用太极没法下载模块
3不支持直接文件系统中的apk导入
3种方法都不支持

点击和显示位置偏移

  1. 我长按图中红点的位置,点的却是下面的项目
    Screenshot_20220104-020433_twoyi

  2. 将两仪移到后台,然后再返回,位置正常了
    Screenshot_20220104-020456_twoyi

  3. 重启两仪又会出现相同的问题

系统 Android 11
型号 三星SM-A528B

黑屏卡死

测试环境:OPPO Reno 安卓10
已安装magisk,LSPosed
问题反馈:
1.两仪安装后居然申请root权限,赋予后飞码刷屏
2.在两仪内,导入文件选取+采取外部安装方式,选取文件后,提示解析包错误,无法安装
3.内部时间无法更改修正
4.内部开发者选项,点击后黑屏卡死
5.建议内部桌面背景更改一下,以区别VirtualXposed,感觉一样风格背景
...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.