keyboard_arrow_left 返回概览

为以下设备构建 LineageOS
Google Chromecast with Google TV (4K)

sabrina

简介

这些说明有望帮助您从一台原厂 Google Chromecast with Google TV (4K) 开始,解锁引导加载程序(如有必要),然后下载必要的工具以及适用于您设备的 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

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

此外,对于 Ubuntu 版本早于 20.04 (focal) 的版本,也请安装

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

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

初始化 LineageOS 源代码仓库

以下分支正式支持 Google Chromecast with Google TV (4K)

输入以下内容以初始化仓库

cd ~/android/lineage
repo init -u https://github.com/LineageOS/android.git -b lineage-22.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 sabrina

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

提取专有 blobs

现在确保您的 Google Chromecast with Google TV (4K) 通过 USB 数据线连接到您的计算机,并启用了 ADB 和 root 权限,并且您位于 ~/android/lineage/device/google/sabrina 文件夹中。然后运行 extract-files.shextract-files.py 脚本之一

./extract-files.sh

或者,对于 Python 脚本

./extract-files.py

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

开始构建

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

croot
brunch sabrina

构建应该开始了。

安装构建版本

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

cd $OUT

您将在那里找到所有已创建的文件。其中两个更令人关注的文件是

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

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

您做到了!欢迎加入自构建精英俱乐部。您从头开始构建了您的操作系统。您是您领域的主人/女主人……并且希望您在此过程中学到了一些东西,并且也获得了一些乐趣。

寻求帮助