Android系统编译
编译 Android 系统(AOSP - Android Open Source Project)是一个复杂但结构化的过程,涉及多个步骤和工具。以下是 在 Linux 环境下 编译 AOSP 的基本指令流程,适用于官方支持的设备或通用系统镜像(如 aosp_arm64-eng)。
🧰 一、准备工作
1. 安装依赖环境(Ubuntu 20.04/22.04 推荐)
1 2 3 4
| sudo apt update sudo apt install git-core gnupg flex bison build-essential zip curl zlib1g-dev \ gcc-multilib g++-multilib libc6-dev-i386 libncurses5 libxml2-utils xsltproc \ unzip fontconfig python3 python3-pip repo
|
repo 是 Google 提供的一个管理多个 Git 仓库的工具。
📁 二、初始化代码库
1. 创建工作目录并进入
1
| mkdir ~/aosp && cd ~/aosp
|
2. 初始化仓库(以 AOSP 主分支为例)
1
| repo init -u https://android.googlesource.com/platform/manifest
|
如果想切换特定版本(如 Android 14 UDC2):
1
| repo init -u https://android.googlesource.com/platform/manifest -b android-14.0.0_r21
|
3. 同步代码
-j8 表示使用 8 个线程同步,可根据 CPU 核心数调整。
🔧 三、编译 Android 系统
1. 设置编译环境
1
| source build/envsetup.sh
|
2. 选择目标设备配置(lunch)
然后从列表中选择一个目标(例如:aosp_arm64-eng)
常见选项:
aosp_arm64-eng:模拟器(eng 版本)
aosp_x86_64-eng:x86 模拟器
pixel6a 或其他设备代号:真实设备支持
3. 开始编译
-j$(nproc) 自动根据 CPU 核心数设置并行编译任务数量
首次编译可能需要数小时,具体取决于硬件性能。
📱 四、运行编译结果
使用模拟器启动系统
如果你编译的是真机版本,需将生成的 image 文件刷入设备(使用 fastboot 工具):
🧪 五、常用命令补充
| 功能 |
命令 |
| 清理所有编译结果 |
make clean |
| 只清理某个模块 |
mmma path/to/module -B |
| 更新代码并重新编译 |
repo sync && make -j$(nproc) |
| 查看 lunch 支持的设备列表 |
lunch 后输入 Tab 键 |
| 查看当前构建信息 |
gettop && get_build_var TARGET_PRODUCT |
📝 六、注意事项
- 至少预留 250GB+ 磁盘空间
- 推荐使用 SSD
- 使用 Linux 系统(推荐 Ubuntu)
- 不同版本的 AOSP 对 JDK 版本有要求(一般为 Java 11)
- 若是定制 ROM(如 LineageOS),需导入对应设备树和 vendor blobs
If you like my article, you can reward me to support my writing.

wechat

alipay