检查安装git工具
sudo apt-get install git
git config –global user.email “eloelo@gmail.com”
git config –global user.name “eloelo”
可以执行命令检查是否已经设置:
git config --global --get user.name
git config --global --get user.email
AOSP 归根结底使用git进行管理的。
下载 repo 工具:
mkdir ~/bin #
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
(#小翻一下,下载最新的版本,repo文件很小,KB级的)
chmod a+x ~/bin/repo
vim ~/bin/repo
修改 REPO_URL的值为:
REPO_URL = 'https://gerrit-google.tuna.tsinghua.edu.cn/git-repo'
下载初始化包:aosp-latest.tar
(#androidQ 源代码已经60GB左右了),除非网络环境超好,所以直接运行repo sync 有点不靠谱。
下载 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar,下载完成后记得根据 checksum.txt 的内容校验一下。
mkdir source
cd source
wget -c https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包
tar xf aosp-latest.tar
cd aosp # 这个文件夹是解压得到的 aosp 工程目录
# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录,可以执行 ls -all
repo sync # 正常同步一遍即可得到完整目录
# 或 repo sync -l 仅checkout代码,aosp-latest.tar都是当月初的源代码打包成的。比如现在是20191113,那么这是11月初的源码打包而成的。
--------------------------------
搭建编译环境
两组命令,有重合,执行第一组在慢慢挑选缺少的吧。
-
sudo apt-get install 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 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
-
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
-
sudo apt-get install git-core gnupg flex bison gperf build-essential
-
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
-
sudo apt-get install libc6-dev-i386
-
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
-
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
-
sudo apt-get install lib32z-dev ccache
---------------------------------------------------------
# apt-get install gcc-multilib g++-multilib libc6-i386 git gnupg flex bison
# apt-get install gperf gawk build-essential zip curl libncurses5-dev
# apt-get install zlib1g-dev lib32z1-dev lib32tinfo-dev lib32ncurses5-dev
# apt-get install xsltproc libxml2-utils openjdk-8-jdk u-boot-tools libssl-dev
# apt-get install clang python-clang-3.8 libusb-1.0-0-dev libelf-dev
# apt-get install python-crypto
---------------------------------------------------------
编译:
初始化编译环境:
source build/envsetup.sh
选择编译目标:
lunch aosp_arm64-eng
实施编译:大概5到10小时的样子。
make -j8
运行模拟器
source build/envsetup.sh
lunch(选择刚才你设置的目标版本,比如这里了我选择的是2)
emulator
原理解释部分参考下文,建议代码下载部分按照本文保守的做法。
https://www.jianshu.com/p/367f0886e62b