keyboard_arrow_left 返回概览

为以下设备构建 LineageOS
OnePlus X

onyx

介绍

这些说明旨在帮助你从出厂状态的 OnePlus X 开始,解锁 bootloader(如果需要),然后下载必要的工具以及适用于你设备的最新 LineageOS 源代码(基于 Google 的 Android 操作系统)。使用这些,你可以构建 LineageOS 安装 zip 包和 LineageOS Recovery 镜像,并将它们安装到你的设备上。

很难说清楚遵循这些说明需要多少经验。虽然本指南肯定不适合完全的新手,但这些步骤也不需要软件开发博士学位。有些读者会毫不费力地轻松完成这些步骤。另一些人可能会在最基本的操作上挣扎。由于人们的经验、背景和直觉各不相同,最好先通读一遍,以确定你是否感到舒适,或者是否感到力不从心。

请记住,尝试此操作你将承担所有风险,但你也会获得回报!启动进入你自己在家里构建的全新操作系统是非常令人满足的 :)。一旦你成为 Android 构建忍者,就不再需要等待任何人的“每夜构建”了。你将掌握从代码构建完整操作系统并随时将其安装到运行设备上的技能。你接下来要做什么——也许你会添加一个功能、修复一个错误、添加一个翻译,或者使用你学到的知识来构建一个新的应用程序或移植到新的设备——或者也许你再也不会构建了——这一切都取决于你。

你需要的

让我们开始吧!

构建 LineageOS

安装 platform-tools

如果你之前没有安装 adbfastboot,你可以 从 Google 下载它们。运行以下命令解压:

unzip platform-tools-latest-linux.zip -d ~

现在你必须将 adbfastboot 添加到你的 PATH 环境变量中。打开 ~/.profile 并添加以下内容:

# add Android SDK platform tools to path
if [ -d "$HOME/platform-tools" ] ; then
    PATH="$HOME/platform-tools:$PATH"
fi

然后,运行 source ~/.profile 以更新你的环境变量。

安装构建软件包

构建 LineageOS 需要几个软件包。你可以使用你的发行版的软件包管理器安装这些软件包。

要构建 LineageOS,你需要

对于 Ubuntu 23.10 (mantic),请按如下方式从 23.04 (lunar) 安装 libncurses5

wget https://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2_amd64.deb && sudo dpkg -i libtinfo5_6.3-2_amd64.deb && rm -f libtinfo5_6.3-2_amd64.deb
wget https://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libncurses5_6.3-2_amd64.deb && sudo dpkg -i libncurses5_6.3-2_amd64.deb && rm -f libncurses5_6.3-2_amd64.deb

而对于早于 23.10 (mantic) 的 Ubuntu 版本,只需安装

此外,对于早于 20.04 (focal) 的 Ubuntu 版本,还需要安装

而对于早于 16.04 (xenial) 的 Ubuntu 版本,安装

Java

不同版本的 LineageOS 需要不同版本的 JDK(Java 开发工具包)。

* Ubuntu 16.04 及更高版本在标准软件包存储库中没有 OpenJDK 1.7。请参阅 Ask Ubuntu 问题“如何在 Ubuntu 16.04 或更高版本上安装 openjdk 7?”。请注意,使用 PPA openjdk-r 的建议已过时(PPA 从未更新其提供的 openjdk-7-jdk,因此缺乏安全修复);即使它是最受赞同的答案,也请跳过该答案。

Python

不同版本的 LineageOS 需要不同的默认 Python 版本。

如果你的默认版本是 python3,但你正在构建的分支需要 python2,则有多种方法可以使用它,例如 手动符号链接 或为其创建 virtualenv。我们推荐后者。

使用 virtualenv --python=python2 ~/.lineage_venv 生成一次 virtualenv。之后,在你需要默认使用 python2 的每个终端中,通过运行 ~/.lineage_venv/bin/activate 来激活它。

路径 ~/.lineage_venv 可以自由选择,这只是一个示例!

创建目录

你需要在你的构建环境中设置一些目录。

创建它们

mkdir -p ~/bin
mkdir -p ~/android/lineage

~/bin 目录将包含 git-repo 工具(通常名为“repo”),而 ~/android/lineage 目录将包含 LineageOS 的源代码。

安装 repo 命令

输入以下命令以下载 repo 二进制文件并使其可执行(可运行):

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

~/bin 目录添加到你的执行路径中

在最新版本的 Ubuntu 中,~/bin 应该已经位于你的 PATH 环境变量中。你可以通过使用文本编辑器打开 ~/.profile 并验证以下代码是否存在来检查这一点(如果缺少,请添加它):

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

然后,运行 source ~/.profile 以更新你的环境变量。

配置 git

鉴于 repo 要求你标识自己以同步 Android,请运行以下命令来配置你的 git 身份:

git config --global user.email "[email protected]"
git config --global user.name "Your Name"

由于它们的大小,某些仓库配置为使用 lfsLarge File Storage。为了确保你的发行版为此做好准备,请运行:

git lfs install

为了避免在提交消息中重复出现 Change-Id: 尾部信息,尤其是在 cherry-pick 更改时,请将 Change-Id: 设置为 git 的已知尾部信息:

git config --global trailer.changeid.key "Change-Id"

开启缓存以加速构建

如果你想加快后续构建速度,请使用 ccache,方法是运行:

export USE_CCACHE=1
export CCACHE_EXEC=/usr/bin/ccache

并将该行添加到你的 ~/.bashrc 文件中。然后,通过键入以下命令来指定你希望 ccache 使用的最大磁盘空间量:

ccache -M 50G

其中 50G 对应于 50GB 的缓存。这需要运行一次。25GB-100GB 之间的任何值都会显著提高构建速度(例如,典型的 1 小时构建时间可以缩短到 20 分钟)。如果你只为一个设备构建,则 25GB-50GB 就足够了。如果你计划为多个不共享相同内核源代码的设备构建,则目标为 75GB-100GB。此空间将永久占用你的驱动器空间,因此请考虑这一点。

你还可以启用可选的 ccache 压缩。虽然这可能会导致轻微的性能下降,但它可以增加缓存中可以容纳的文件数量。要启用它,请运行:

ccache -o compression=true

配置 jack

Jack 是当前用于构建 LineageOS 14.1 和 15.1 的 Java 工具链。已知如果配置不正确,它经常会耗尽内存 - 一个简单的解决方法是运行此命令:

export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4G"

将该命令添加到你的 ~/.bashrc 文件将自动配置 Jack 以分配足够的内存(在本例中为 4GB)。

初始化 LineageOS 源代码仓库

以下分支可用于为 OnePlus X 构建:

输入以下命令以初始化仓库:

cd ~/android/lineage
repo init -u https://github.com/LineageOS/android.git -b cm-14.1 --git-lfs --no-clone-bundle

下载源代码

要开始将源代码下载到你的计算机,请键入以下命令:

repo sync

LineageOS 清单文件包含 repo 的合理默认配置,我们强烈建议你使用它(即,不要向 sync 添加任何选项)。作为参考,我们的默认值是 -j 4-c-j 4 部分意味着使用四个并发线程/连接。如果你在同步时遇到问题,可以将此值降低到 -j 3-j 2。另一方面,-c 使 repo 仅拉取当前分支,而不是 GitHub 上可用的所有分支。

准备设备特定代码

源代码下载完成后,确保你位于源代码的根目录 (cd ~/android/lineage),然后键入:

source build/envsetup.sh
breakfast onyx

这将下载你设备的 设备特定配置内核

提取专有 blobs

现在确保你的 OnePlus X 通过 USB 数据线连接到你的计算机,并启用 ADB 和 root 权限,并且你位于 ~/android/lineage/device/oneplus/onyx 文件夹中。然后运行 extract-files.shextract-files.py 脚本。

./extract-files.sh

或者,对于 Python 脚本:

./extract-files.py

blobs 应该被拉取到 ~/android/lineage/vendor/oneplus 文件夹中。如果你看到“command not found”错误,则可能需要将 adb 放在 ~/bin 中。

开始构建

是时候开始构建了!现在,键入:

croot
brunch onyx

构建应该开始了。

安装构建

假设构建没有错误地完成(完成时会很明显),请在运行构建的终端窗口中键入以下命令:

cd $OUT

在那里你会找到所有创建的文件。其中两个更重要的文件是:

  1. recovery.img,它是 LineageOS recovery 镜像。
  2. lineage-14.1-20250408-UNOFFICIAL-onyx.zip,它是 LineageOS 安装程序包。

成功!那么… 接下来是什么?

你成功了!欢迎加入自构建者的精英俱乐部。你已经从头开始构建了你的操作系统。你是你领域的主人…… 希望你在过程中也学到了一些东西,并且玩得开心。

获取帮助