直接开始
一、安装Ubuntu,以管理员身份运行 cmd
运行:
wsl install Ubuntu
查看是否安装成功:
wsl --list --v
NAME STATE VERSION
* Ubuntu Running 2
打开 Ubuntu
二、安装依赖包
参考说明文档:https://wiki.lineageos.org/devices/z2_plus/build
在Ubuntu命令行执行
sudo apt-get install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses5 libncurses5-dev libsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev
直到安装完成,如果未安装JDK,下一步安装JDK:
sudo apt install openjdk-8-jdk
下一步:更新
sudo apt upgrade
配置Git
git config --global user.email "邮箱"
创建源码目录:
cd ~
mkdir -p lineage-18.1
cd lineage-18.1
初始化代码 --depth 参数值不能太大:
repo init -u --depth=1 -u git://github.com/LineageOS/android.git -b lineage-17.1
开始同步:
repo sync --force-sync -j5
等待同步完成,如果有失败可运行
repo sync -j1 --fail-fast
三、编译前准备
export USE_CCACHE=1
export CCACHE_EXEC=/usr/bin/ccache
ccache -M 150G
ccache -o compression=true
source build/envsetup.sh
breakfast z2_plus
开始构建,构建之前确保有足够磁盘空间
croot
source build/envsetup.sh
lunch lineage_z2_plus-eng
brunch lineage_z2_plus-eng
假设构建完成没有错误(完成时很明显),在构建运行的终端窗口中键入以下内容:
cd $OUT
在那里你会找到所有创建的文件。比较感兴趣的两个文件是:
recovery.img,这是 LineageOS 恢复映像。
lineage-17.1-20211011-UNOFFICIAL-z2_plus.zip,这是 LineageOS 安装程序包。
遇到问题及解决办法
1、修改Ubuntu默认登录用户名
进入目录:C:\Users\xxxx\AppData\Local\Microsoft\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
执行:ubuntu.exe config --default-user 默认用户名
2、Command 'repo' not found, did you mean
从 android 网站获取安装
https://source.android.com/setup/develop#installing-repo
mkdir ~/bin
PATH=~/bin:$PATH
export REPO=$(mktemp /tmp/repo.XXXXXXXXX)
curl -o ${REPO} https://storage.googleapis.com/git-repo-downloads/repo
chmod a+x ~/bin/repo
gpg --recv-key 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
curl -s https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ${REPO} && install -m 755 ${REPO} ~/bin/repo
3、build/target/product/verity.mk:28: error: _nic.PRODUCTS.[[device/zuk/z2_plus/lineage_z2_plus.mk]]
解决办法:
找到文件: device/zuk/msm8996-common/msm8996.mk
注释掉:$(call inherit-product, vendor/zuk/msm8996-common/msm8996-common-vendor.mk)
一行
4、出现错误:"internal error: failed to find dex jar path for module "WfdCommon"
修改 device/zuk/msm8996-common/msm8996.mk 文件
去掉 #PRODUCT_BOOT_JARS += \
# WfdCommon
5、错误:external/ant-wireless/ant_native/Android.mk: error: "antradio_app (EXECUTABLES android-arm64) missing libantradio (SHARED_LIBRARIES android-arm64)"
解决办法:
命令行执行:
export ALLOW_MISSING_DEPENDENCIES=true