废话

最近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包都没成功过~~)。

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

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

    嗯,好像距离上次研究Halium已经过了很久了.虽然一直没时间弄这个,但是没全部驱动心里一直不太服气,最近还是抽出时间来把它弄好了(好了,但没完全好).小米平板4终于有机会可以摆脱"大手机& ...

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

    编译 Halium 9 在完成上述修改后,终于可以开始编译了-- 写一个xml并同步你的适配包 在halium/devices/manifests目录下创建你的机型的xml 命名格式 (厂商)_(co ...

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

    修改kernel 检查并修改内核选项 Halium提供了一个脚本检查defconfig的有些选项是否已经打开.找到内核项目里的defconfig,就可以开搞了. 脚本 ./check-kernelco ...

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

    配置环境 Halium 9 是基于lineage os 16修改而来,所以基本上对环境的要求与其一致,推荐使用内存8gb以上的台式机和梯子进行编译.Ubuntu 20.04亲测是可以通过的. 安装依赖 ...

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

    修改device 由于不同的机型情况不一样这里只列举一些常见的修改,启动到rootfs应该是没什么问题的. 准备好一个可以用的git平台账号,fork目标机型的lineage os 16适配就可以开始 ...

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

    烧写 生成了三个需要的镜像后,需要用twrp把vendor.img和halium-boot.img分别烧写到vendor分区和boot分区(在烧写前建议格式化system vendor cache d ...

  7. 发布:世界上第一个小米平板4上的Debian Linux 刷机包

    经过一段时间的研究,没搞过任何安卓刷机包适配的我还是把halium 9成功在米板4上跑起来啦.并移植上了最新的Debian GNU/Linux(Droidian).尽管还不是很完美,对文件系统的修改没 ...

  8. 小米平板4上的Debian Linux(Droidian)方便日常使用的一些设置

    这篇文章是我为日常使用Droidian做的一些记录,可能有些不太准确,仅供参考! 通过usb线进行调试 droidian在devtools那个包中默认开启了usb网络,刷入devtool那个包后可以通 ...

  9. iOS 16.1新功能尝鲜:如何在iPhone上启用实时活动?

    近日,苹果发布了iOS 16.1正式版,在本次更新中,苹果推出了全新"实时活动"功能,用户能在iPhone锁定屏幕上查看到更多信息,如果是iPhone 14 Pro机型,实时活动信 ...

最新文章

  1. react项目---基本语法字符串数组(6)
  2. 告别2019,展望2020:让我们看一看这十年中深度学习的经典瞬间
  3. pythonChallenge:第1关
  4. 如何将瀑布流里的图片加链接_只需5步!魔幻丛林瀑布后期揭秘
  5. 《c#编程语言详解》,C#编程语言详解(第2版)
  6. 动态规划 —— 动态规划概述
  7. 正月十五元宵节各种设计师需要的PSD分层展板\晚会横幅
  8. Android学习总结(4)——Andorid Studio熟练使用
  9. Intelj IDEA的pom.xml显示错误can not reconnect
  10. HDU 6599 I Love Palindrome String (回文树+hash)
  11. 【面试必会】java分布式事务面试题
  12. 前后端分离 基于SpringBoot+mybatis+Java Mail+Lay UI+Ajax 的班级管理系统(webapp +安卓应用)
  13. 2020.7.6 -- Miller_Rabin和Pollard_Rho算法
  14. 网络爬虫学习(二) selenium
  15. 谷歌云|机密 GKE 节点可在计算优化的 C2D 虚拟机上使用
  16. 【干货】今日头条的新闻推荐算法原理
  17. 朋友圈广告投放优势及广告投放案例分享
  18. SpringBoot整合Mybatis-Plus入门案例
  19. android 开启gps 简书,Android蓝牙第三方库FastBle使用注意事项(需开启GPS定位)
  20. 设置word表格行高

热门文章

  1. 史上很全的注册表修改大全
  2. 离散型随机变量及其分布律2
  3. Android self_adaption of screen
  4. c语言0x前缀的作用,C语言中的十六进制数字为什么以前缀0x开头
  5. Axue8.0基础使用篇
  6. matlab的peer啥意思,科学网—Matlab读取PEER地震动记录数据库加速度数据函数 - 王德才的博文...
  7. mysql中的round函数(*)
  8. T1214 鸣人和佐助——dfs、bfs
  9. 一种提取HTML网页正文的方法
  10. screen 命令详解