Build LineageOS for pixel6

Build LineageOS for pixel6

LineageOS 是一个基于 Android 的开源操作系统,以其高度的定制性、安全性和隐私保护而闻名。它起源于著名的 CyanogenMod 项目,并在 2016 年重组后继续发展,目前已经成为拥有庞大用户群和活跃开发者社区的开源项目。本节的内容是关于给pixel6 编译LineageOS,在参照lineageOS 官网的编译流程 https://wiki.lineageos.org/devices/raven/build/ 并不能很顺利的编译,会碰各种各样的错误。

首先按照lineageOS 官网build 文档搭建对应的环境,比如所需的python 环境,Java 环境等,还有一些依赖库,这里要注意的是python 必须是3.8 版本,不然在执行breakfast 会报错。

1
2
3
4
5
apt install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git git-lfs gnupg gperf imagemagick lib32readline-dev lib32z1-dev libelf-dev liblz4-tool libsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev

apt install lib32ncurses5-dev libncurses5 libncurses5-dev

apt install libwxgtk3.0-dev

然后同步源码,之后拉取要编译设备的配置文件和内核文件。

1
2
3
4
5
repo init -u https://github.com/LineageOS/android.git -b lineage-21.0 --git-lfs
repo sync

source build/envsetup.sh
breakfast raven // 指定设备代号,拉取对应的配置文件和内核文件。

这里在执行breakfast 的时候,会出现vendor/google/raven/raven-vendor.mk does not exit... 错误。

这是由于没有vendor blob 的原因,在官方文档中有说明这一点

其实如果把lineageOS不同设备的编译文档都看一遍,lineageOs 对于不同的设备来说,其实基础源码库都是相同的,不同的点在于下载vender device 对应的vendor 代码。要解决breakfast 的问题,需要从lineageOS 设备中提取专有的blob,官方的解决办法如下: https://wiki.lineageos.org/extracting_blobs_from_zips , 官网中提供了三种办法来提取专有的blob,我尝试了重lineageOS 安装包中提,编译的过程中会出现很多的错误,虽然不断修正错误,但依旧于事无补。

在这里找到了直接同步设备vendor的办法: https://gist.github.com/fourkbomb/261ced58cd029c5f7742350aafdd9825
https://github.com/TheMuppets/manifests/blob/lineage-21.0/muppets.xml 获取到raven/vendor,然后加入到 .repo/local_manifests/roomservice.xml

重新同步一下代码 repo sync

现在执行breakfast raven

解决完 vendor blob 的问题后,基本上编译不会出其他的问题了,编译一路畅通。

1
2
croot
brunch raven

最后将编译出来的产物直接刷入到设备中即可。

我还尝试将pixel 6P 编译出来的Kernelsu 镜像单独刷入到LineageOS 中,系统没有出现其他的异常,可能得益于GKI ,android官方的boot.img 和 lineageOS 编译出来的boot.img 是通用的。
这里需要说明一下,GKI(通用内核)推出后,部分设备的内核和Android的源码库可以分离、单独编译内核和系统。不过Lineage还是放一起的,比如在pixel 6P 中,内核和系统源码已经分离了,在pixel 5中内核代码和系统源码还是在一起的,对pixel 内核有定制化需求的可以直接使用lineageOS。


Build LineageOS for pixel6
https://tig3rhu.github.io/2024/10/12/Build_LineageOS_for_pixel6P/
Author
Tig3rHu
Posted on
October 12, 2024
Licensed under