查看原文
其他

两仪:新的开始

维术 虚拟框架 2024-01-19

在 新的一年,发个新东西 中提到我即将发布一个新的 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 系统,因此在这个内部的系统中自然可以完全控制系统组件,因此支持太极·阳理所当然!


两仪的特点


或许你已经知道两仪是什么了,那么相比于 VirtualXposed 或者其它 App,它有何特殊的地方呢?


  1. 两仪是一个免 ROOT 的 Android 系统级容器;它内部运行了一个相对完整的 Android 系统,与外部的系统可以形成一定程度的隔离。

  2. 两仪内部 Android 系统版本为 Android 8.1;事实上,Android 10 也是支持的,不过由于不是很稳定而我目前也没时间去修 BUG 了,所以暂时就没用它;你可以简单滴理解为:两仪支持的系统版本较新

  3. 两仪的启动速度非常快。作为一个轻量级的 Android 容器,两仪可谓“名副其实”。除第一次初始化系统较慢之外,后续两仪基本上可以在三秒钟左右启动;这个速度可以说是做到极致了。我今天就花了七个小时直播优化启动速度,有些童鞋应该也看到了;两仪对 system_serversystemui 以及 launcher 做了深度定制,最大程度上并行化了系统的初始化过程,极大提升了启动速度。

  4. 两仪将会是一个开源项目。关于这一点的考量我已经在 新的一年,发个新东西 说清楚了;这里并没有暗讽其他同类产品的意思,开源是一个中性词,而非褒义词。我个人对开源的态度是:开源有好有坏,它只是一种对项目发展路径的选择。

  5. 两仪内部的系统将是完全可定制化的。因为其系统开源,你完全可以自己拉个分支编译 AOSP;对系统组件,如 framework,HAL 做定制化开发;实现虚拟相机,虚拟传感器等特殊功能。


上面这些特点看起来两仪是完美无缺的,其实并不是;作为一个系统容器,它也有自己的缺点:


  1. 占用资源较高。开启两仪之后,你的手机内部就相当于运行了两个 Android 系统,虽然两仪也受宿主系统的功耗管控,但是它本身会启动较多的进程,相比于常规 App 来说非常吃内存。另外,由于自带一个 Android 系统的 ROM,其安装包也将近 200M。

  2. 图形性能不如外部系统。在两仪系统内部,代码是自己接运行在设备 CPU 之上的,没有经过虚拟化或者指令翻译;因此代码执行效率与外部系统是相同的;不过图形系统是经过 opengl 模拟渲染的,虽然也会使用宿主的 GPU,但是这个过程会有损耗;不过后续我们可以实现 GPU 直通模式,这样的话性能损耗就可以忽略不计了。


两仪能干什么


说了这么多,这玩意儿到底能干啥?由于它是一个 Android 系统,理论上 Android 系统能干的它都能干(废话);下面是我自己的一些脑补,可能不完善,欢迎大家补充:


  1. 最显然地,两仪可以实现免 ROOT 使用太极·阳;有童鞋会问了,其他框架是不是也可以?那当然,理论上都可以;并且,我选择 Android 8.1 也是有原因的,因为这是唯一一个同时可以支持 Xposed、太极、EdXposed 和 LSPosed 的 Android 版本!惊不惊喜,意不意外 : )

  2. 既然支持太极·阳了,那自然是可以支持 ROOT 了!不过遗憾的是,当前这个测试版本还是没有 ROOT 功能的,感兴趣的小伙伴只能等等咯!不过我可以很确定地告诉你,支持 ROOT!

  3. 既然支持 ROOT,那支持 Magisk 模块吗?由于两仪内部模拟了 mount namespace,所以理论上也支持的!不过不是所有的面具模块都可以支持,并且使用的方式和原始的面具也有一些差别;不过我还是可以很确定地讲,一定程度上支持!

  4. 两仪的 HAL 层是可以虚拟化的。HAL 层是大多数设备的外置硬件运行的地方,比如常见的相机、NFC、传感器等等;你完全可以实现一个自定义的相机 HAL,免 ROOT 使用虚拟相机!另外,虽然两仪将开源,但与 Android 系统架构一样,HAL 层是通过 hidl 接口提供服务的,它可以是 vendor 提供的闭源组件!

  5. 两仪还能用作安全研究。在之前我们分析恶意 App 的时候,可能会需要做脱壳等操作;这时候大家要么使用定制的系统刷入定制的手机,要么使用 Xposed 模块去 HOOK;在两仪内部,一切是如此地简单:直接去修改两仪内部的 ART,然后重新加载运行即可!


哪里去尝鲜?


上面扯了那么多,可能有小伙伴已经跃跃欲试了;幸运的是我已经准备好了测试包,只需要在公众号回复:两仪 即可获得下载链接!


不过在你们使用之前,有如下情况需要注意:


  1. 当前为测试版本,可能有数不清的 BUG 和使用上的缺陷;这一切都是预料之中的,请不要感到意外!如果有人搬运下载链接,请务必告诉你的用户这一点,违者必究

  2. 当前版本不保证兼容性;未来如果有新版本发布,不会考虑与测试版本的兼容性,你可能会面临升级新版之后,旧版数据完全丢失的情况;请务必不要将重要数据存入两仪。

  3. 目前还不支持 ROOT,太极·阳等功能,请耐心等待!

  4. 使用教程可以观看视频号的最新动态!


最后,我还想说两点:第一,你可以在软件内关于页面找到志同道合的朋友,欢迎一起交流!第二,可以的话请给我赞助支持,谢谢!


最后的最后,祝大家使用愉快,晚安!

继续滑动看下一个

两仪:新的开始

维术 虚拟框架
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存