AOSP源码下载

9 阅读3分钟

1. 源码下载(国内加速方案)

1.1 准备工作

  • 系统要求:推荐 Ubuntu 22.04 LTS(官方支持)或 macOS(部分限制)。

  • 磁盘空间:至少 250GB(源码 + 编译产物)。

  • 工具安装

    # Ubuntu/Debian
    sudo apt update
    sudo apt install -y git python3 python3-pip curl openjdk-11-jdk
    sudo apt install -y repo  # 如果系统仓库有 repo 工具
    

1.2 使用清华镜像加速下载

# 1. 设置 repo 使用清华镜像
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

# 2. 初始化仓库(选择分支,如 android-14.0.0_r29)
mkdir ~/aosp && cd ~/aosp
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-14.0.0_r29

# 3. 同步代码(-j8 表示并行下载,根据网络调整)
repo sync -j8

  • 如果中断,可重新运行 repo sync 继续下载。
  • 国内用户建议夜间同步(速度可能更快)。

2. 环境配置

2.1 安装编译依赖

# Ubuntu/Debian
sudo apt install -y git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

# macOS(需先安装 Xcode 和命令行工具)
xcode-select --install
brew install coreutils findutils gawk gnupg libffi libxml2 libxslt lz4 python@3.11

2.2 配置 Java 环境

  • AOSP 推荐 OpenJDK 11(Android 13+ 要求):
    sudo apt install openjdk-11-jdk
    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
    export PATH=$JAVA_HOME/bin:$PATH
    

3. 编译 AOSP

3.1 初始化编译环境

cd ~/aosp
source build/envsetup.sh  # 加载环境变量
lunch  # 选择目标设备
  • 选择编译目标(例如):

    • aosp_arm-eng:ARM 架构模拟器(带调试功能)
    • aosp_x86_64-eng:x86_64 模拟器(性能更好)

3.2 开始编译

make -j$(nproc)  # 使用所有 CPU 核心加速编译

编译时间

  • 首次编译需 3~6 小时(取决于 CPU 和磁盘速度)。
  • 成功后输出镜像在 out/target/product/[设备名]/ 目录。

4. 运行 AOSP

4.1 使用模拟器

emulator  # 自动加载刚编译的镜像
  • 如果提示 emulator: command not found,先运行:

    source build/envsetup.sh
    lunch aosp_x86_64-eng  # 确保选择模拟器目标
    

4.2 刷入真机(可选)

  • 支持的设备:Pixel 系列(如 Pixel 6,需解锁 Bootloader)。

  • 步骤:

    1. 下载对应版本的 Factory Image

    2. 刷入编译后的 system.img 和 boot.img

      adb reboot bootloader
      fastboot flash system system.img
      fastboot flash boot boot.img
      fastboot reboot
      

5. 开发工具推荐

5.1 代码阅读

  • Android Studio:导入 AOSP 子模块(如 frameworks/base)。
  • VS Code + Ctags:轻量级代码导航。

5.2 调试工具

  • logcat:查看系统日志:

    adb logcat
    
  • systrace:分析性能问题:

    python3 systrace.py -o trace.html sched freq idle
    

6. 常见问题解决

6.1 下载中断

  • 重新运行 repo sync,或手动删除 .repo/projects/ 中报错的目录。

6.2 编译失败

  • 错误Out of memory
    解决:减少并行任务数(make -j4)。
  • 错误Java version mismatch
    解决:确保使用 OpenJDK 11,并检查 JAVA_HOME

6.3 模拟器黑屏

  • 尝试换用 aosp_x86_64-eng 目标,或更新 GPU 驱动:

    emulator -gpu host  # 强制使用硬件加速
    

7. 后续学习建议