libhybris 和 halium详解(二)

概述:halium 是什么?

上一篇我们简单讲了libhybris的初衷和原理,既然有了libhybris,那么必然要有一种方式或者应用场景来使用,所以各个GNU linux的发行版用自己的方式兼容bionic C(即修改android 的源码使其在gnu环境下使用),并且android版本也在不断变化,因此开发的工作量是巨大的和重复的,在此背景下提出了halium项目,旨在为在移动设备上运行linux提供一套最小化的统一的android运行环境,这样各发行版开发者可以更专注于linux侧的开发工作, 当前使用halium + libhybris的OS有ubuntu touch, PostmarketOS, sailfish, plasma 等;

1. Halium工程:

    Halium是一个android 运行时环境,与waydroid等容器不同,这个运行环境是不支持android应用的,确切的说是两方面的功能,一是提供android 的库文件给linux使用,二是提供服务给linux使用,初衷并不是要运行android应用, 其运行原理还是基于容器技术实现的(LXC);

   Hallium的本质决定了其根源就是android,实际上Halium是由另外一个修改过的AOSP(LineageOS)而来的, 在LineageOS基础上进行裁剪和修改,使其可以运行在linux内核上;

2. Halium工程源码:

    Halium 不提供任何形式的rom,只提供了源码和构建方法,使用者需要自行编译,Halium支持android 5.1及之后的版本,其中android 9.0是一个大的分界点(9.0及之后的版本android支持GSI), 其主要区别是支持GSI的版本与设备无关,可以不用像9.0之前的版本关注与设备相关的配置,这样会大大提高设备适配效率,现在的设备基本上没有android 9.0之前的版本了,因此建议只学习9.0及之后的版本;

    Halium 源码: https://github.com/Halium/

    开源项目支持一般比正常android版本要慢, lineageOS慢于android, Halium慢于lineageOS, Halium当前支持android 12, 

    在Halium github上可以看到Halium的发展史,所有模块代码都可以找到,当然了,这也给后面的学习者造成诸多困扰,这里面最重要的一个工程是android_device_halium_halium_arm64(GitHub - Halium/android_device_halium_halium_arm64), 其中可以看到Halium的源码下载和编译方法, 建议下载源码来看Halium的实现思路;

3. GSI:

    GSI(Generic System Image): 系统通用镜像,是google为了提高android升级过程中的适配效率提出来的,是为了使设备厂商更容易升级以及上市硬件的android系统,GSI被视为“纯 Android”实现,它包含未经修改的 Android 开源项目 (AOSP) 代码,任何搭载 Android 9 或更高版本的 Android 设备都能顺利运行这种代码。

    1)Android 7.x 及更低版本中没有正式的供应商接口,因此设备制造商必须更新大量 Android 代码才能将设备更新到新版 Android 系统:

        

      2)Android 8.0 及更高版本提供了一个稳定的新供应商接口,因此设备制造商可以访问 Android 代码中特定于硬件的部分,这样一来,设备制造商只需更新 Android 操作系统框架,即可跳过芯片制造商直接提供新的 Android 版本:

      

Halium9.0 及之后的版本支持通用GSI方式的适配;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值