1.Halium是什么
在我的理解里,halium是uports社区为ubuntu touch等而建立的一个项目。我认为就是社区版的ubuntu touch,尽管官方已经放弃了这个系统,这个系统也由于小众和缺少app,处于和sailfish os,tizen os和已经被放弃的firefox os一样的境地,但是,有一点不同的是,ubuntu touch 致力于安卓高端手机上成为潮流的连接上显示器就是一台桌面终端的主机的功能。应用也可以通用,从这点来看,如果哪天谷歌对安卓系统收费,或者过渡到其新的系统的路不顺利,ubuntu touch还是有取而代之的希望的。
官方支持和社区大神构建的版本都没有我的华为荣耀全网通cheery的身影,于是,我尝试自己构建一个,虽然看到许多设备只是有前几步,依然没有成功的结果。但是,尝试是一种乐趣,学习是一种态度,折腾是一种生活。失败的可能性很大,我依旧前进,至少能给后面的同学一点小经验。不管成功或失败,在这里记录下我的大致过程,记录我的学习之路。
官方文档在这里:https://docs.halium.org/en/latest/
2.获取源代码
halium基于lineage(cm)构建,由于cherry有lineage的官方支持,前面的步骤还是比较顺的。只需要把repo的镜像地址切换成清华,速度就666的了。地址放这:
https://mirrors.tuna.tsinghua.edu.cn/help/lineageOS/
然后就是一个manifest文件的编写,参照别的机型,我也编好了,没有报错。
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project path="device/cyanogen/msm8916-common" name="android_device_cyanogen_msm8916-common" remote="los" />
<project path="kernel/huawei/msm8916" name="android_kernel_huawei_msm8916" remote="los" />
<project path="device/huawei/cherry" name="android_device_huawei_cherry" remote="los" />
<project name="proprietary_vendor_huawei" path="vendor/huawei" remote="them"/>
</manifest>
运行官方的几个命令,就顺利得到了相关源文件,有个报错提示文件路径不对,把高通的通用文件拷贝到目标目录就好了。但是,后边,linux systemd的部分,内核配置就卡在了这里,毕竟我不是专业的,还请相关计算机的同学来解决下,我也在努力学习,争取早点找到处理方法。
在内核配置文件中加上了报错的配置,又遇到了另外的报错如下:
external/speex/Android.mk:56: TODOArm64: enable neon in libspeex
halium/hybris-boot/Android.mk:69: ***************** /boot appears to live on ERROR: *fstab* not found
halium/hybris-boot/Android.mk:70: ***************** /data appears to live on ERROR: *fstab* not found
halium/hybris-boot/Android.mk:73: * There should be a one and only one device entry for HYBRIS_BOOT_PART and HYBRIS_DATA_PART.
build/core/ninja.mk:166: recipe for target '/home/zd200572/halium/out/build-lineage_cherry.ninja' failed
make: * [/home/zd200572/halium/out/build-lineage_cherry.ninja] Error 1
最近发现这个编译报错的原因应该是编译需要的环境和代码没有配置好,水平所限,不能解决。已经找了台nexus 4试试,不折腾,要抓住时间完成工作和学习,加油!
nexus 4 的ubuntu touch安装问题,始终是重启到ubuntu recovery 后连接不上电脑,按照这里的配置配置了一下这个文件就好了,https://github.com/parasetam0l/ubuntu-touch-nexus4
/etc/udev/rules.d/51-android.rules,添上了几行,当然,我是在ubuntu 16.04的环境下进行的,毕竟是ubuntu自家的系统,问题少,易搞定。好了,可以愉快地体验ubuntu touch了,或许哪天还可以体验一下融合系统,现在不是正火,华为,苹果,三星都在向这个方向努力。