一、下载源码
╭─kevin@kevin-msi ~
╰─$ mkdir lineage
╭─kevin@kevin-msi ~
╰─$ cd lineage
╭─kevin@kevin-msi ~/lineage
╰─$ repo init -u https://github.com/LineageOS/android.git -b lineage-17.1
参考清华这个换源
添加设备相关的project
比如我这里需要编译的是HTC 10,由于HTC 10不是Lineage官方支持的版本,需要自己添加机型相关的kernel vendor device
加入设备相关的local_manifest.xml。路径.repo/local_manifests/htc_pme.xml ,内容如下
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<!-- HTC 10 pme -->
<project path="device/htc/pme" name="Fagyi/android_device_htc_pme" remote="github" revision="lineage-17.1" />
<project path="kernel/htc/msm8996" name="Fagyi/android_kernel_htc_msm8996-caf" remote="github" revision="lineage-17.1" />
<project path="vendor/htc" name="Fagyi/proprietary_vendor_htc" remote="github" revision="lineage-17.1" />
</manifest>
同步代码
repo sync
二、编译
配置环境变量
建议在添加到 .bashrc这样就不用每次设置一遍
export USE_CCACHE=1
export CCACHE_EXEC=/usr/bin/ccache
export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx8G"
配置ccache最大缓存大小,我这里配了100G。如果你的磁盘空间不大就50G也可以
kevin@kevin-msi:~$ ccache -M 100G
执行编译
kevin@kevin-msi:~$ cd lineage
kevin@kevin-msi:~/lineage$ source build/envsetup.sh
kevin@kevin-msi:~/lineage$ breakfast pme
kevin@kevin-msi:~/lineage$ brunch pme
如果编译成功了,会显示如下:
[100% 106/106] build bacon
Package Complete: out/target/product/pme/lineage-17.1-20200815-UNOFFICIAL-pme.zip
#### build completed successfully (02:25 (mm:ss)) ####