LineageOS 自编译流程
先从官方设备页取参数,再下载源码、准备设备代码并构建
1 先确认设备与分支
打开 LineageOS 官方设备列表,找到准确机型和设备代号。接下来只使用该设备页里的 Build 与 Installation 指南。
| 参数 | 从哪里确认 | 本文写法 |
|---|---|---|
| 设备代号 | 设备概览页 | <codename> |
| 源码分支 | 该设备的 Build 页 | <branch> |
| 固件与安装步骤 | 该设备的 Installation 页 | 不使用通用命令替代 |
核验于 2026-07-13:官方 manifest 的默认分支是 lineage-23.2,仓库中也存在 lineage-24.0;实际构建仍以具体设备 Build 页列出的分支为准。
2 准备构建环境
准备一台 x86_64 Linux 主机。近期分支需要的内存和磁盘空间很大,具体要求以设备 Build 页为准;官方页面对较新分支给出的参考可达到 64 GB 内存和 400 GB 存储空间。
2.1 安装依赖
依赖包会随 Ubuntu 与目标分支变化。先更新软件索引,再从设备 Build 页复制当前包清单,不要长期复用旧教程里的固定列表。
# 然后执行设备 Build 页当前列出的 sudo apt install ...
2.2 安装 repo 工具
$ curl -o ~/bin/repo https://storage.googleapis.com/git-repo-downloads/repo
$ chmod a+x ~/bin/repo
$ echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
$ source ~/.bashrc
2.3 配置 Git
$ git config --global user.email "your@email.com"
$ git lfs install
2.4 配置 ccache
ccache 可以复用部分编译结果。缓存大小按剩余磁盘空间决定,下面以 50 GB 为例:
$ ccache -o compression=true
3 初始化并同步源码
3.1 创建源码目录
$ cd ~/android/lineage
3.2 初始化 repo
把 <branch> 替换为第 1 步从设备 Build 页确认的分支。不要直接使用 manifest 默认分支。
3.3 同步源码
repo sync 提供默认并发与当前分支配置。同步失败时可以降到 repo sync -j2 重试;不要把 --force-sync 当成日常参数,它可能覆盖本地仓库状态。
第三方镜像可能存在同步延迟或目录差异。使用镜像前先看镜像站自己的 LineageOS 帮助页,并以官方 manifest 和设备 Wiki 校验分支。
4 准备设备代码
进入源码根目录并加载构建环境,然后用设备代号准备目标。对于官方支持设备,Build 页会给出该设备当前应执行的命令。
$ source build/envsetup.sh
$ breakfast <codename>
4.1 提取专有文件
只有设备 Build 页要求时才做这一步。专有文件的来源、目标目录和脚本名称都与设备及分支有关;照该页面进入指定设备目录,再执行页面列出的脚本。
$ ./extract-files.py
# 或者该设备页面明确写出的 ./extract-files.sh
5 开始构建
再次确认当前分支、设备代号和设备 Build 页一致,然后从源码根目录构建:
$ source build/envsetup.sh
$ brunch <codename>
成功后,设备 Build 页会说明主要产物;通常可以在 $OUT 对应目录找到安装包与该设备需要的镜像。先记录文件名和校验值:
$ sha256sum "$OUT"/lineage-*.zip
6 安装前复核
构建完成不等于可以套用一组通用刷入命令。回到同一设备的 Installation 页面,从头核对要求:
- 设备代号、地区/运营商变体与当前固件版本是否匹配
- Bootloader 解锁是否会清除数据,以及备份是否可恢复
- 该机型要求的启动模式、分区镜像、Recovery 与安装顺序
- 是否要求额外固件、分区复制或特定版本的附加包
以下命令只用于确认电脑是否识别设备,不会写入分区:
$ fastboot devices
fastboot flash、Format Data 或 sideload 顺序搬过来。
7 更新源码与重建
更新前先检查本地改动,避免把同步问题和自己的补丁混在一起:
$ repo status
$ repo sync
$ source build/envsetup.sh
$ breakfast <codename>
$ brunch <codename>
设备失去官方支持、Build 页撤下目标分支或安装要求改变时,先重新评估,不要只因为本地还能编译就继续安装。
8 安全排错
repo sync 反复失败
先降低并发执行 repo sync -j2,并检查磁盘、网络和系统时间。不要一上来使用 --force-sync。
breakfast 报 vendor 或设备配置缺失
回到设备 Build 页的专有文件章节,确认来源系统、分支和脚本名称。不要临时克隆一个同名 vendor 仓库来“补齐”。
构建被系统终止
用 free -h、df -h 和 ccache -s 检查内存、磁盘与缓存。OOM 或磁盘耗尽应先解决资源问题,再重试构建。
需要求助时
保留设备代号、分支、完整命令、首个实际错误以及错误前后的日志。只贴最后一行通常无法定位问题。
官方入口:设备 Wiki · Manifest 仓库 · Google repo 文档
Qiaoshuo · 返回首页