Halium 9 尝鲜 -- 在小米平板4上的移植 (一)

废话

最近Apple出了一个基于arm的笔记本,arm的低功耗、高续航的特点的确香到我了,但是学生党太穷买不太起,只有一个安卓系统的小米平板4在吃灰。在UOS和菊花厂的推动下,好多国产软件都有了arm64版,如果调通了halium应该配合着deepin桌面做一个移动办公的小电脑应该还是比较有意思的。
Halium 好像7版本的教程挺多的,但是9还没什么教程,主要是多了一个treble(vendor分区),还有现在的设备的soc大多数都是arm64和halium 7时大多数的设备都还是armhf的情况不大一样了,so 还是有必要造个像教程一样的轮子。。。。

本人以前没有适配过任何安卓设备的包,以下的内容只是我个人尝试的记录,说的不对的地方就请各位大佬轻喷。

从你那开始!

Halium大体上是一个阉割了图形界面和加入了比较成熟的Salifish OS底层mer/hybris的一些让bionic libc在libhybris下工作的补丁,生成的system.img作为传统linux的一个lxc容器用于驱动任何依赖于Android框架的bionic闭源驱动。而boot.img用于启动位于data分区中的文件系统,然后基于systemd的rootfs起来以后再去挂载和启动lxc容器中的安卓,再利用libhybris去使用安卓世界中的各种驱动。

看了gayhub上各位大佬的commit不难发现移植的基本步骤:

  • 把device和vendor里的与java和安卓apk有关的东西全部都去掉,使其能够通过halium9的编译生成system.img、vendor.img和halium-boot.img
  • 修改内核配置,使得systemd、lxc这些ubuntu touch或者其他基于Halium的rootfs的基本服务能够起来。
  • 修改一部分内核的驱动和安全策略,比如彻底关掉selinux而使用apparmor,关掉内核对模块版本和其他信息的检验,使得被修改后的内核仍然能够使用vendor分区中的内核模块。
  • 在能够进文件系统的前提下使用ssh进行debug,检查lxc容器是否能够正常挂载和运行,安卓容器的debug,使得ubuntu touch的图形界面能够正常启动。
  • 使用dmesg和logcat等工具在系统已经跑起来的前提下查看系统和安卓容器可能出现的错误,把没驱动的东西调起来。

由于没玩过lineage os和其他aosp的编译,最好是选择一个能够正常编译的lineage os 16的适配包作为修改的基础,魔趣的适配包是不太行的,Android版本高于9或低于9的适配包都是无法通过编译的。其次要是有一个相同的cpu家族的设备有ubuntu touch或者salifish的移植(例如我的小米平板4是sdm660而红米note7也是sdm660而且有完全工作的ubuntu适配)那就更好了,照搬大神的commit基本上跑起基本的图形界面是没什么问题的。
当然也有大神弄出了简易的移植办法,就是使用project treble,只需要搞出能够启动systemd和lxc的安卓内核,刷入通用包就可以使用了,建议不要使用这种方案,还是直接编译halium 9来的稳妥。(我试了这种方法换了好多gsi包都没成功过~~)。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值