两仪APP介绍:
一句话概述:两仪就是一个轻量级的 Android 容器。它可以在 Android 系统上以一个普通 App 的身份(免ROOT)来运行一个相对完整的 Android 系统。实际上这种技术已经不是什么新鲜事了,大家都喜欢称之为“虚拟机”,但是从严格意义上讲,它更像是一个“容器”;从原理上看,内部运行的 Android 系统(guest)与外部系统(host)是共用同一个 Linux 内核的,还有一些驱动如 Ashmem 也是共用的;虽然没有 namespace 的支持,但是它模拟了 namespace 的行为,支持一定程度的隔离;所以,称它为 Android 容易或许更合适。
有童鞋会问了,这玩意跟 VirtualXposed (VXP) 有何区别?最显著的差别就是,两仪内部是一个 Android 系统,包含 system_server、systemui,独立的 ART 运行时,甚至还有自己的硬件抽象层(HAL);而 VirtualXposed 内部只有第三方 App。
从技术上来讲或许很多童鞋不好理解,更直观点来说,两仪可以在免 ROOT 设备上运行太极·阳! 正因为两仪内部是一个完整的 Android 系统,因此在这个内部的系统中自然可以完全控制系统组件,因此支持太极·阳理所当然!
两仪APP特点
或许你已经知道两仪是什么了,那么相比于 VirtualXposed 或者其它 App,它有何特殊的地方呢?两仪是一个免 ROOT 的 Android 系统级容器;它内部运行了一个相对完整的 Android 系统,与外部的系统可以形成一定程度的隔离。
两仪内部 Android 系统版本为 Android 8.1;事实上,Android 10 也是支持的,不过由于不是很稳定而我目前也没时间去修 BUG 了,所以暂时就没用它;你可以简单滴理解为:两仪支持的系统版本较新。
两仪的启动速度非常快。作为一个轻量级的 Android 容器,两仪可谓“名副其实”。除第一次初始化系统较慢之外,后续两仪基本上可以在三秒钟左右启动;这个速度可以说是做到极致了。我今天就花了七个小时直播优化启动速度,有些童鞋应该也看到了;两仪对 system_server、systemui 以及 launcher 做了深度定制,最大程度上并行化了系统的初始化过程,极大提升了启动速度。
两仪将会是一个开源项目。关于这一点的考量我已经在 新的一年,发个新东西 说清楚了;这里并没有暗讽其他同类产品的意思,开源是一个中性词,而非褒义词。我个人对开源的态度是:开源有好有坏,它只是一种对项目发展路径的选择。
两仪内部的系统将是完全可定制化的。因为其系统开源,你完全可以自己拉个分支编译 AOSP;对系统组件,如 framework,HAL 做定制化开发;实现虚拟相机,虚拟传感器等特殊功能。
上面这些特点看起来两仪是完美无缺的,其实并不是;作为一个系统容器,它也有自己的缺点:
占用资源较高。开启两仪之后,你的手机内部就相当于运行了两个 Android 系统,虽然两仪也受宿主系统的功耗管控,但是它本身会启动较多的进程,相比于常规 App 来说非常吃内存。另外,由于自带一个 Android 系统的 ROM,其安装包也将近 200M。
图形性能不如外部系统。在两仪系统内部,代码是自己接运行在设备 CPU 之上的,没有经过虚拟化或者指令翻译;因此代码执行效率与外部系统是相同的;不过图形系统是经过 opengl 模拟渲染的,虽然也会使用宿主的 GPU,但是这个过程会有损耗;不过后续我们可以实现 GPU 直通模式,这样的话性能损耗就可以忽略不计了。
两仪APP能干什么
说了这么多,这玩意儿到底能干啥?由于它是一个 Android 系统,理论上 Android 系统能干的它都能干(废话);下面是我自己的一些脑补,可能不完善,欢迎大家补充:最显然地,两仪可以实现免 ROOT 使用太极·阳;有童鞋会问了,其他框架是不是也可以?那当然,理论上都可以;并且,我选择 Android 8.1 也是有原因的,因为这是唯一一个同时可以支持 Xposed、太极、EdXposed 和 LSPosed 的 Android 版本!惊不惊喜,意不意外 : )
既然支持太极·阳了,那自然是可以支持 ROOT 了!不过遗憾的是,当前这个测试版本还是没有 ROOT 功能的,感兴趣的小伙伴只能等等咯!不过我可以很确定地告诉你,支持 ROOT!
既然支持 ROOT,那支持 Magisk 模块吗?由于两仪内部模拟了 mount namespace,所以理论上也支持的!不过不是所有的面具模块都可以支持,并且使用的方式和原始的面具也有一些差别;不过我还是可以很确定地讲,一定程度上支持!
两仪的 HAL 层是可以虚拟化的。HAL 层是大多数设备的外置硬件运行的地方,比如常见的相机、NFC、传感器等等;你完全可以实现一个自定义的相机 HAL,免 ROOT 使用虚拟相机!另外,虽然两仪将开源,但与 Android 系统架构一样,HAL 层是通过 hidl 接口提供服务的,它可以是 vendor 提供的闭源组件!
两仪还能用作安全研究。在之前我们分析恶意 App 的时候,可能会需要做脱壳等操作;这时候大家要么使用定制的系统刷入定制的手机,要么使用 Xposed 模块去 HOOK;在两仪内部,一切是如此地简单:直接去修改两仪内部的 ART,然后重新加载运行即可!
注意事项:
当前版本不保证兼容性;未来如果有新版本发布,不会考虑与测试版本的兼容性,你可能会面临升级新版之后,旧版数据完全丢失的情况;请务必不要将重要数据存入两仪。(本人oppo reno6 Pro+亲测,会出现打开软件卡死、修改默认语言卡死等等卡死情况,另据用户反馈,鸿蒙系统对两仪兼容性极差,基本用不了,华为和荣耀用户不用下了)
默认语言为英文,进入软件请修改语言在设置最下方里寻找
目前还不支持 ROOT,太极·阳等功能,请耐心等待!