【保姆级教程】小米6X编译LineageOS 20.0完整指南(Android 13)

📅 2026/6/29 22:22:54
【保姆级教程】小米6X编译LineageOS 20.0完整指南(Android 13)
【保姆级教程】小米6X编译LineageOS 20.0完整指南Android 13LineageOS 20.0 编译教程 - Xiaomi 6X (wayne)项目简介设备信息快速开始编译环境要求硬件要求软件依赖详细编译步骤1. 安装平台工具2. 安装构建依赖Ubuntu 22.04 / 24.04 (推荐)Ubuntu 23.10 (Mantic) 或更新版本3. 创建目录4. 安装 Repo 命令5. 配置 Git6. 启用 ccache 加速构建7. 初始化 LineageOS 源码仓库8. 配置设备清单9. 下载源代码10. 准备构建环境11. 准备设备特定代码12. 提取专有 Blobs13. 开始构建问题 1: 网络同步失败问题 2: 本地检出失败 - 未跟踪文件冲突问题 3: Hooks 链接错误问题 4: Git 锁文件冲突问题 5: Vendor 文件缺失问题 6: 使用 -j1 --fail-fast 定位问题8. 构建系统常见问题与解决方案Q1: repo sync 总是失败怎么办Q2: 构建时 ccache 报错 Not a directoryQ3: breakfast 报错找不到设备Q4: 构建失败缺少某个模块Q5: 内存不足导致构建失败Q6: 如何清理构建输出重新构建刷入系统准备工作刷入步骤刷入后的设置项目文件说明目录结构辅助脚本说明run.sh - 主运行脚本fix\_repo.sh - 修复特定仓库fix\_all\_repos.sh - 批量扫描修复快速参考命令免责声明参考资料更新日志LineageOS 20.0 编译教程 - Xiaomi 6X (wayne)仓库https://gitee.com/joker888/lineageos-wayne-build项目简介这是为小米 6X (代号wayne) 设备构建 LineageOS 20.0 (基于 Android 13) 的完整教程。LineageOS 是一个基于 Android 开源项目的自由、开源操作系统为各种设备提供长期支持和安全更新。本教程记录了实际编译过程中遇到的所有问题及其解决方案确保您能够顺利完成编译。设备信息属性值设备名称Xiaomi 6X代号wayne处理器Qualcomm Snapdragon 660 (SDM660)内存4GB/6GB存储64GB/128GB屏幕5.99英寸 1080x2160相机后置双摄 12MP20MP前置 20MPLineageOS 版本20.0 (Android 13)快速开始# 克隆仓库gitclone https://github.com/joker888/lineageos-wayne-build.gitcdlineageos-wayne-build# 安装 repo首次运行时 run.sh 也会自动下载curlhttps://storage.googleapis.com/git-repo-downloads/repo./bin/repochmodax ./bin/repo# 一键编译同步源码 构建./bin/run.sh编译环境要求硬件要求项目最低要求推荐配置操作系统Ubuntu 20.04 LTSUbuntu 22.04 LTS 或 Deepin内存16GB RAM32GB RAM 或更多存储200GB 可用空间300GB SSDCPU4核心8核心或更多软件依赖Java: OpenJDK 11 (Android 13 需要)Python: Python 3.6Git: 2.x 版本Make: 4.0其他工具: flex, bison, gcc, g, curl, zip, unzip 等详细编译步骤1. 安装平台工具如果尚未安装adb和fastboot可以从 Google 下载# 下载 platform-toolswgethttps://dl.google.com/android/repository/platform-tools-latest-linux.zip# 解压到主目录unzipplatform-tools-latest-linux.zip-d~# 添加到 PATH编辑 ~/.profile 添加以下内容# add Android SDK platform tools to pathif[-d$HOME/platform-tools];thenPATH$HOME/platform-tools:$PATHfi# 使配置生效source~/.profile2. 安装构建依赖根据您的 Ubuntu 版本安装相应的依赖包Ubuntu 22.04 / 24.04 (推荐)# 更新软件源sudoapt-getupdate# 安装所有必需的构建工具sudoapt-getinstall-ybcbison build-essential ccachecurlflex\g-multilib gcc-multilibgitgit-lfs gnupg gperf\imagemagick protobuf-compiler python3-protobuf\lib32readline-dev lib32z1-dev libdw-dev libelf-dev\libgnutls28-dev lz4 libsdl1.2-dev libssl-dev\libxml2 libxml2-utils lzop pngcrushrsyncschedtool\squashfs-tools xsltproc xxdzipzlib1g-dev\libncurses5 libncurses5-dev lib32ncurses5-dev# 安装 PythonLineageOS 20 需要 Python 3sudoapt-getinstall-ypython-is-python3# 安装 OpenJDK 11LineageOS 18.1 需要sudoapt-getinstall-yopenjdk-11-jdk# 安装 ccachesudoapt-getinstall-yccache# 验证安装java-versionpython3--versionccache--versionUbuntu 23.10 (Mantic) 或更新版本由于 Ubuntu 23.10 移除了libncurses5需要额外安装# 下载并安装 libncurses5wgethttps://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2_amd64.debsudodpkg-ilibtinfo5_6.3-2_amd64.debrm-flibtinfo5_6.3-2_amd64.debwgethttps://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libncurses5_6.3-2_amd64.debsudodpkg-ilibncurses5_6.3-2_amd64.debrm-flibncurses5_6.3-2_amd64.deb# 然后执行上面的完整依赖安装命令3. 创建目录设置构建环境所需的目录mkdir-p~/binmkdir-p~/android/lineage# ~/bin 将包含 repo 工具# ~/android/lineage 将包含 LineageOS 源代码4. 安装 Repo 命令下载并安装 Repo 工具# 下载 repocurlhttps://storage.googleapis.com/git-repo-downloads/repo~/bin/repo# 设置执行权限chmodax ~/bin/repo5. 配置 Git# 配置 Git LFS大文件存储gitlfsinstall# 避免重复的 Change-Id提交时避免冲突gitconfig--globaltrailer.changeid.keyChange-Id6. 启用 ccache 加速构建使用 ccache 可以显著加快后续构建速度# 启用 ccacheexportUSE_CCACHE1exportCCACHE_EXEC/usr/bin/ccache# 将上述配置添加到 ~/.bashrc永久生效echoexport USE_CCACHE1~/.bashrcechoexport CCACHE_EXEC/usr/bin/ccache~/.bashrc# 设置缓存大小推荐 50GB-100GB# 典型构建时间可以从 1 小时减少到 20 分钟ccache-M50G# 启用压缩节省空间缓存空间可减少到约 20GBccache-ocompressiontrue# 查看缓存状态ccache-s7. 初始化 LineageOS 源码仓库# 进入源码目录cd~/android/lineage# 初始化仓库选择您要构建的版本分支# LineageOS 20.0 (基于 Android 13)repo init-uhttps://github.com/LineageOS/android.git-blineage-20.0 --git-lfs --no-clone-bundle# LineageOS 18.1 (基于 Android 11)# repo init -u https://github.com/LineageOS/android.git -b lineage-18.1 --git-lfs --no-clone-bundle# 国内用户修改为清华镜像加速 AOSP 代码下载sed-is#https://android.googlesource.com#https://mirrors.tuna.tsinghua.edu.cn/git/AOSP#g.repo/manifests/default.xml版本要求说明LineageOS 版本Android 版本需要 JDK需要 Pythonlineage-21Android 14OpenJDK 17Python 3lineage-20.0Android 13OpenJDK 11Python 3lineage-18.1Android 11OpenJDK 11Python 3lineage-17.1Android 10OpenJDK 1.9Python 38. 配置设备清单创建本地清单文件添加设备特定的仓库# 创建 local_manifests 目录mkdir-p.repo/local_manifests# 创建 roomservice.xml 文件cat.repo/local_manifests/roomservice.xmlEOF ?xml version1.0 encodingUTF-8? manifest !-- 设备树 -- project nameLineageOS/android_device_xiaomi_wayne pathdevice/xiaomi/wayne remotegithub revisionlineage-20 / project nameLineageOS/android_device_xiaomi_wayne-common pathdevice/xiaomi/wayne-common remotegithub revisionlineage-20 / project nameLineageOS/android_device_xiaomi_sdm660-common pathdevice/xiaomi/sdm660-common remotegithub revisionlineage-20 / !-- 内核源码 -- project nameLineageOS/android_kernel_xiaomi_sdm660 pathkernel/xiaomi/sdm660 remotegithub revisionlineage-20 / !-- 硬件配置 -- project pathhardware/xiaomi remotegithub nameLineageOS/android_hardware_xiaomi revisionlineage-20 / !-- Vendor Blobs (专有文件) - 来自 TheMuppets -- project nameTheMuppets/proprietary_vendor_xiaomi_wayne pathvendor/xiaomi/wayne remotegithub revisionlineage-20 / project nameTheMuppets/proprietary_vendor_xiaomi_wayne-common pathvendor/xiaomi/wayne-common remotegithub revisionlineage-20 / project nameTheMuppets/proprietary_vendor_xiaomi_sdm660-common pathvendor/xiaomi/sdm660-common remotegithub revisionlineage-20 / /manifest EOF9. 下载源代码同步所有仓库这可能需要较长时间取决于网络速度# 进入源码目录cd~/android/lineage# 开始同步使用所有 CPU 核心reposync-c-j$(nproc--all)# 如果遇到问题可以使用以下参数# -c: 只同步当前分支推荐# -j: 并行任务数# --force-sync: 强制同步# --no-clone-bundle: 不使用 clone bundle# --no-tags: 不同步标签# --fail-fast: 遇到第一个错误即停止适合排查问题# 推荐的完整同步命令适合稳定网络reposync-c--force-sync --no-clone-bundle --no-tags -j$(nproc--all)# 如果网络不稳定使用较少并行数reposync-c-j4# 如果同步失败使用 --fail-fast 排查问题单线程模式reposync-c-j1--fail-fast提示首次同步可能需要数小时甚至更长时间建议在网络稳定时进行LineageOS 默认配置是-j4和-c如果不是最新版本可能会更慢如果同步中断可以随时重新运行repo sync10. 准备构建环境进入源码根目录并设置构建环境# 进入源码目录cd~/android/lineage# 加载构建环境sourcebuild/envsetup.sh# 验证环境设置是否成功croot# 命令应该切换到 ~/android/lineage 目录11. 准备设备特定代码# 下载设备特定的配置和内核源码breakfast wayne这个命令会自动下载设备树配置device/xiaomi/wayne通用设备配置device/xiaomi/wayne-common、device/xiaomi/sdm660-common内核源码kernel/xiaomi/sdm660重要如果遇到 vendor 目录相关的错误请跳到下一步提取专有 blobs。12. 提取专有 Blobs注意此步骤需要在已运行最新 LineageOS 的设备上进行。# 确保设备已连接并启用 ADB 和 root 权限adb devices# 应该显示设备序列号# 进入设备目录cd~/android/lineage/device/xiaomi/wayne# 提取 blobs根据设备目录内容选择脚本# 如果有 extract-files.py./extract-files.py# 或者使用 extract-files.sh./extract-files.sh提取的 blobs 会保存到~/android/lineage/vendor/xiaomi目录。如果没有可用的设备可以从已安装的 LineageOS zip 包中提取 blobs参考官方指南从 zip 包提取 blobs13. 开始构建# 确保在源码根目录cd~/android/lineage# 设置构建环境sourcebuild/envsetup.sh# 选择设备目标breakfast wayne# 开始构建brunch wayne或者分步执行cd~/android/lineagesourcebuild/envsetup.sh croot lunch lineage_wayne-userdebug mka bacon构建选项说明命令说明breakfast wayne自动下载设备依赖并设置构建目标lunch手动选择构建目标和变体brunch wayne完整构建流程推荐mka bacon构建 OTA 安装包mkaMake 的替代支持并行构建构建变体变体说明user生产版本无 root调试受限userdebug开发版本有 root完整调试推荐测试eng工程版本完整开发工具构建时间首次构建约 4-8 小时取决于硬件后续构建约 30-60 分钟使用 ccache构建产物位置~/android/lineage/out/target/product/wayne/ ├── lineage-20.0-YYYYMMDD-UNOFFICIAL-wayne.zip # OTA 安装包 ├── recovery.img # Recovery 映像 ├── boot.img # Boot 映像 ├── system.img # System 映像 ├── vendor.img # Vendor 映像 └── ... # 其他文件同步过程中可能遇到的问题及解决方案问题 1: 网络同步失败error: Downloading network changes failed. Failing repos (network): external/gptfdisk frameworks/base ...解决方案# 检查网络连接pinggithub.com# 如果是国内网络问题确保使用了清华镜像# 检查 default.xml 配置cat.repo/manifests/default.xml|grepfetch# 重新尝试同步reposync-c-j$(nproc--all)问题 2: 本地检出失败 - 未跟踪文件冲突错误工作区中下列未跟踪的文件将会因为检出操作而被覆盖 .clang-format .gitignore ...解决方案# 方法 1: 手动清理单个仓库cdproblematic_repo_pathgitclean-fdgitreset--hardcd/path/to/lineageos/android/lineage# 方法 2: 批量清理所有问题仓库# 创建修复脚本cat/path/to/lineageos/bin/fix_all_repos.shEOF #!/bin/bash LINEAGE_ROOT/path/to/lineageos cd $LINEAGE_ROOT/android/lineage echo 开始扫描并修复所有有问题的仓库... # 收集所有项目路径 projects() while IFS read -d $\0 project; do if [ -d $project ] [ -d $project/.git ]; then projects($project) fi done (find . -maxdepth 4 -name .git -type d | sed s|/\.git$|| | sort | grep -v ^./\.repo | tr \n \0) echo 找到 ${#projects[]} 个项目 count0 fixed0 for project in ${projects[]}; do count$((count 1)) rel_path${project:2} echo -ne 检查 $rel_path ($count/${#projects[]})\033[0K\r cd $project # 检查是否有未跟踪的文件或修改 status_output$(git status --porcelain) if [ -n $status_output ]; then echo -e \n修复: $rel_path echo $status_output git clean -fd git reset --hard fixed$((fixed 1)) fi cd $LINEAGE_ROOT/android/lineage done echo -e \n\n修复了 $fixed 个仓库 echo 现在重新同步... .repo/repo/repo sync -c -j$(nproc --all) EOFchmodx /path/to/lineageos/bin/fix_all_repos.sh /path/to/lineageos/bin/fix_all_repos.sh问题 3: Hooks 链接错误从旧版本切换到新版本时可能遇到 hooks 链接错误error: hooks is different in .repo/projects/art.git vs .repo/project-objects/platform/art.git解决方案# 删除损坏的 hooks 链接cd/path/to/lineageos/android/lineagefind.repo/projects-namehooks-typel-delete# 重新同步reposync-c-j$(nproc--all)问题 4: Git 锁文件冲突致命错误无法创建 /path/to/repo/.git/index.lock文件已存在。解决方案# 清理所有 Git 锁文件cd/path/to/lineageos/android/lineagefind.-nameindex.lock-typef-delete# 重新同步reposync-c-j$(nproc--all)问题 5: Vendor 文件缺失error: vendor/xiaomi/wayne/wayne-vendor.mk does not exist.解决方案确保.repo/local_manifests/roomservice.xml包含正确的 vendor 项目配置见步骤 6然后# 同步 vendor 仓库reposync-cvendor/xiaomi# 或者完整同步reposync-c-j$(nproc--all)问题 6: 使用 -j1 --fail-fast 定位问题当同步失败时可以使用单线程模式定位具体问题reposync-j1--fail-fast这会在遇到第一个错误时停止便于定位问题仓库。8. 构建系统同步完成后开始构建 LineageOS。# 进入源代码目录cd/path/to/lineageos/android/lineage# 设置构建环境sourcebuild/envsetup.sh# 选择设备目标# 方式 1: breakfast (自动处理依赖)breakfast wayne# 方式 2: lunch (手动选择)lunch lineage_wayne-userdebug# 开始构建# 方式 1: brunch (推荐包含所有步骤)brunch wayne# 方式 2: mka (手动构建)mka bacon -j$(nproc--all)构建选项说明命令说明breakfast自动下载设备依赖并设置构建目标lunch选择构建目标和变体brunch完整构建流程包含 baconmka bacon构建 OTA 包mkaMake 的替代支持并行构建构建变体变体说明user生产版本无 root有限调试userdebug开发版本有 root完整调试eng工程版本完整开发工具构建时间首次构建约 4-8 小时取决于硬件后续构建约 30-60 分钟使用 ccache构建产物位置out/target/product/wayne/ ├── lineage-20.0-YYYYMMDD-UNOFFICIAL-wayne.zip # OTA 安装包 ├── recovery.img # Recovery 映像 ├── boot.img # Boot 映像 ├── system.img # System 映像 ├── vendor.img # Vendor 映像 └── ... # 其他文件常见问题与解决方案Q1: repo sync 总是失败怎么办解决方案确保网络稳定使用镜像源清华镜像使用--force-sync参数强制同步清理问题仓库后重新同步使用-j1 --fail-fast定位具体问题Q2: 构建时 ccache 报错 “Not a directory”ccache: error: Not a directory解决方案# 创建 ccache 目录mkdir-p~/.ccache# 配置 ccacheccache-M50G ccache-ocompressiontrue# 确保环境变量设置正确exportUSE_CCACHE1exportCCACHE_EXEC/usr/bin/ccacheQ3: breakfast 报错找不到设备Device wayne not found.解决方案确保.repo/local_manifests/roomservice.xml配置正确确保设备树仓库已同步repo sync device/xiaomi/wayne重新执行source build/envsetup.shQ4: 构建失败缺少某个模块解决方案检查错误信息确定缺失的模块搜索相关仓库grep -r module_name .repo/manifests/添加到roomservice.xml并重新同步Q5: 内存不足导致构建失败解决方案# 减少并行任务数mka bacon-j4# 限制为 4 个任务# 或者使用更保守的设置mka bacon-j2Q6: 如何清理构建输出重新构建# 清理所有构建输出makeclean# 或者完全清理包括 ccachemakeclobber# 只清理特定模块makeclean-module_name刷入系统准备工作确保设备已解锁 Bootloader安装最新版 TWRP Recovery备份重要数据刷入步骤# 1. 将设备连接到电脑adb devices# 2. 进入 fastboot 模式adbrebootbootloader# 3. 刷入 Recovery如果需要更新fastboot flash recovery out/target/product/wayne/recovery.img# 4. 进入 Recovery 模式fastbootrebootrecovery# 5. 在 Recovery 中执行以下操作# - Wipe - Advanced Wipe - 选择 Dalvik/ART Cache, System, Data, Cache# - Swipe to Wipe# - 返回主菜单# 6. 刷入 LineageOSadb sideload out/target/product/wayne/lineage-*.zip# 7. 可选刷入 GAppsadb sideload MindTheGapps-*.zip# 8. 可选刷入 Magisk (Root)adb sideload Magisk-*.zip# 9. 重启系统adbreboot刷入后的设置首次启动可能需要较长时间约 5-10 分钟设置基本配置语言、网络等检查系统功能是否正常更新系统设置开发者选项等项目文件说明目录结构/path/to/lineageos/ ├── android/ │ └── lineage/ # LineageOS 源代码 │ ├── .repo/ # Repo 配置目录 │ │ ├── manifests/ # 主清单 │ │ │ └── default.xml # 默认清单可修改为镜像 │ │ └── local_manifests/ # 本地清单 │ │ └── roomservice.xml # 设备特定清单 │ ├── device/ # 设备树 │ │ └── xiaomi/ │ │ ├── wayne/ # 设备配置 │ │ ├── wayne-common/ # 设备通用配置 │ │ └── sdm660-common/ # 平台通用配置 │ ├── kernel/ # 内核源码 │ │ └── xiaomi/sdm660/ │ ├── hardware/ # 硬件抽象层 │ │ └── xiaomi/ │ ├── vendor/ # 专有文件 │ │ └── xiaomi/ │ │ ├── wayne/ │ │ ├── wayne-common/ │ │ └── sdm660-common/ │ ├── out/ # 构建输出构建后生成 │ │ └── target/product/wayne/ │ └── build/ # 构建系统 ├── bin/ # 辅助脚本 │ ├── run.sh # 主运行脚本 │ ├── fix_repo.sh # 修复单个仓库 │ ├── fix_all_repos.sh # 批量修复仓库 │ └── roomservice.xml # 设备清单模板 └── README.md # 本文档辅助脚本说明run.sh - 主运行脚本完整的初始化和构建脚本#!/bin/bashexportLINEAGE_ROOT/path/to/lineageosPATH$LINEAGE_ROOT/bin:$PATH# 配置 ccacheexportUSE_CCACHE1exportCCACHE_EXEC/usr/bin/ccache ccache-M50G ccache-ocompressiontrue# 创建目录mkdir-p$LINEAGE_ROOT/android/lineagecd$LINEAGE_ROOT/android/lineage# 初始化仓库repo init-uhttps://github.com/LineageOS/android.git-blineage-20.0 --git-lfs --no-clone-bundle# 使用清华镜像sed-is#https://android.googlesource.com#https://mirrors.tuna.tsinghua.edu.cn/git/AOSP#g.repo/manifests/default.xml# 配置设备清单if[!-d.repo/local_manifests];thenmkdir-p.repo/local_manifestsfiif[!-f.repo/local_manifests/roomservice.xml];thencp$LINEAGE_ROOT/bin/roomservice.xml .repo/local_manifests/fi# 同步源代码reposync-c-j$(nproc--all)reposync-j$(nproc--all)--fail-fast# 构建系统sourcebuild/envsetup.sh croot breakfast wayne croot brunch waynefix_repo.sh - 修复特定仓库用于修复已知问题仓库#!/bin/bashLINEAGE_ROOT/path/to/lineageoscd$LINEAGE_ROOT/android/lineage# 已知问题仓库列表declare-arepos(artdevelopers/builddevice/google/cuttlefish_prebuiltsexternal/XNNPACKexternal/antlrexternal/apache-xmlexternal/arm-neon-testsexternal/deqpexternal/perfettoexternal/python/google-api-python-client)echo开始修复仓库...forrepoin${repos[]};doif[-d$repo];thenecho修复:$repocd$repogitclean-fdgitreset--hardcd-/dev/nullfidoneecho修复完成重新同步....repo/repo/reposync-j1--fail-fastfix_all_repos.sh - 批量扫描修复自动扫描并修复所有问题仓库见上文。快速参考命令# 初始化repo init-uhttps://github.com/LineageOS/android.git-blineage-20.0 --git-lfs# 使用镜像sed-is#https://android.googlesource.com#https://mirrors.tuna.tsinghua.edu.cn/git/AOSP#g.repo/manifests/default.xml# 同步reposync-c-j$(nproc--all)# 构建准备sourcebuild/envsetup.sh breakfast wayne# 构建brunch wayne# 清理makeclean# 查看构建状态ccache-s# 查看设备信息catdevice/xiaomi/wayne/device.mk免责声明编译和刷入自定义 ROM 可能会导致设备损坏或失去保修请自行承担风险。本教程仅供学习参考不保证在所有环境下都能成功。请确保您了解解锁 Bootloader 和刷入 Recovery 的风险。建议在操作前完整备份设备数据。参考资料LineageOS 官方 WikiLineageOS 构建指南Xiaomi 6X 设备信息清华大学 AOSP 镜像Repo 工具文档更新日志日期版本说明2026-03-301.0初始版本基于实际编译经验整理祝您编译顺利