两仪就是一个轻量级的 Android 容器。它可以在 Android 系统上以一个普通 App 的身份(免ROOT)来运行一个相对完整的 Android 系统。并且它支持 Android 8.1 ~ 12。
- 免 ROOT 使用太极·阳;后续也可以支持 Xposed、EdXposed 和 LSPosed 等。
- 免 ROOT 设备上使用 ROOT 功能。
- 部分支持 Magisk 模块。
- 两仪的 HAL 层是可以虚拟化的;如虚拟相机等。
- 两仪还能用作安全研究;如脱壳等。
- 两仪是一个免 ROOT 的 Android 系统级容器;它内部运行了一个相对完整的 Android 系统,与外部的系统可以形成一定程度的隔离。
- 两仪内部 Android 系统版本为 Android 8.1;后续会支持 Android 10.
- 两仪的启动速度非常快。除第一次初始化系统较慢之外,后续两仪基本上可以在三秒钟左右启动。
- 两仪将会是一个开源项目。
- 两仪内部的系统将是完全可定制化的。因为其系统开源,你完全可以自己拉个分支编译 AOSP;对系统组件,如 framework,HAL 做定制化开发;实现虚拟相机,虚拟传感器等特殊功能。
两仪由两部分组成:
- 两仪 App,它实际上是一个 UI 渲染引擎。
- 两仪内部运行的 ROM。
这个仓库是两仪 App 的源码,目前两仪 ROM 正在开源中,目前无法从源码编译出 ROM。
WIP
两仪有部分组件是用 Rust 写的,因此需要先 安装 Rust 和 Cargo
请参阅: cargo-xdk
可以通过如下命令检查是否成功: ./gradlew cargoBuild
,成功的话可以在 app/src/main/jniLibs/arm64-v8a
看到 libtwoyi.so。
PS. 请安装 ndk 22 或者更低版本,高版本可能无法编译成功。
- export ANDROID_NDK_HOME=xxx/ndk/22.0.7026061
- export JAVA_HOME=xxx/android-studio/jbr (使用 Android Studio 的 jdk,或者设置成你本地的)
两仪的 ROM 正在开源中,目前还无法从源码编译;不过可以使用预编译的 ROM。
可以从官方发布的 APK 包里面提取 rootfs.7z
然后放置到本项目的 app/src/main/assets
目录下。
- Build libtwoyi.so.
cd app/rs
cargo xdk -t arm64-v8a -o ../src/main/jniLibs build --release
- Build apk with Android Studio normally.
libadb.so https://github.com/tytydraco/LADB libloader.so 这个应该也是从 AOSP 编译的。 libOpenglRender.so 是从 AOSP 编译的。