libhybris 和 halium实战分析
上面有了libhybris和halium后,需要有一个应用场景,下面以ubuntu touch为例讲述其使用方法;
1. Ubuntu touch 介绍:
Ubuntu touch 是专门为应用设备设计的操作系统,其目的是打通linux的pc和移动端的生态,使Linux应用既可以运行在pc设备有可以运行在移动设备上,由于现有移动设备绝大部分是android和iOS的,所以ubuntu touch使用libhybris将其系统运行在原来运行android系统的硬件之上,以此来降低适配难度;
Ubuntu touch 官方架构图:
Ubuntu touch是以Ubuntu14.04为基础进行开发的,版本非常旧,后面官方旧放弃了这个项目,转而由开源社区UBport接手推动,当前支持20.04的版本;
从上图可以看到,halium GSI是运行在一个容器中的,ubuntu是通过libhybris和来调用android的资源的,调用内核部分也是由android 的hal来完成的, 当然了这只是一个框架图,并不准确,其实很多操作ubuntu是直接调用内核的,android上没有hal层服务和android上闭源用户态驱动的调用一般就不需要调用android的二进制,可以直接调用内核,例如usb,输入等。
Libhybirs compat:
这个模块是Li