1.安装依赖
1.1 安装 openJDK 8
sudo apt-get update
sudo apt-get install openjdk-8-jdk
1.2 安装library
sudo apt-get install -y libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install -y tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install -y dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install -y gnupg flex bison gperf build-essential
sudo apt-get install -y zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install -y libc6-dev-i386
sudo apt-get install -y lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install -y libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install -y lib32z-dev ccache
//1. -y 在需要确认的场景中回应 yes
2.下载AOSP代码
2.1 下载初始化包
考虑到国内网络稳定性问题,我们可以直接从清华源下载使用每月更新的初始化包,然后解压使用
具体教程参考AOSP | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
2.1.1创建 repo
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
2.1.2 使用每月更新的初始化包
下载 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar,下载完成后记得根据 checksum.txt 的内容校验一下。
由于所有代码都是从隐藏的 .repo
目录中 checkout 出来的,所以我们只保留了 .repo
目录,下载后解压 再 repo sync
一遍即可得到完整的目录。
使用方法如下:
# 下载初始化包
wget -c https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar
# 解压压缩包
tar -xvf aosp-latest.tar
# 解压得到的 AOSP 工程目录
cd AOSP
# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录
# 正常同步一遍即可得到完整目录
repo sync
然后就是漫长的等待,
2.1.3 切换分支
分支选择列表可以看看官方文档
代号、标签和内部版本号 | Android 开源项目 | Android Open Source Project
# 查看可以切换的分支
cd .repo/manifests
git branch -a | cut -d / -f 3
#切换分支 这里我们拿 android-12.1.0_r32 举例子
repo init -b android-12.1.0_r32
repo sync # 如果不需要与服务器数据一致,可以不运行该步
repo start android-12.1.0_r32 --all
# 查看切换结果
repo branches
2.1.4 开始编译
//
source build/envsetup.sh
#这里我们用 aosp_x86-eng 举例
lunch aosp_x86-eng
#执行make 命令
make -j12
然后又是等待,如果机器性能好,会快一些