使用传统方式同步代码(不使用初始化包的方式,因为太大了)
环境准备
ubuntu: 20.04
编译安卓版本: android-10.0.0_r17(适用于pixel/pixel xl)
内存: 16G
硬盘: 600G
CPU: 1核16线程
1. 安装必备软件
apt-get install git
apt-get install curl
git config --global user.name "jiangfubang"
git config --global user.email luckybang@163.com
# 修改默认Python
sudo unlink /usr/bin/python
sudo ln -s /usr/bin/python3.8 /usr/bin/python
# 卸载vi-tiny并安装vim-full
apt-get remove vim-common
apt-get install vim
2. 创建bin目录,并将bin目录加入环境变量
mkdir ~/bin
PATH=~/bin:$PATH
3. 下载repo启动器赋予可执行权限(所有下载均使用清华镜像源)
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod a+x ~/bin/repo
4. 切换repo更新自己的源
vi ~/.bashrc
# 将下面代码添加到.bashrc文件最后一行
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
# 使之生效
source ~/.bashrc
清华源可能会报server certificate verification failed异常,可以执行下面的命令解决apt install apt-transport-https ca-certificates
5. 初始化repo,创建AOSP目录
mkdir ~/AOSP
cd ~/AOSP
# 指定分支版本
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-10.0.0_r17
# 同步源码,这个过程会持续很久
repo sync -c -j8
-c
表示同步当前分支-j8
表示开启8个线程
命令执行成功后如下图所示:
6. 编译源码
a.安装jdk8
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk
b.安装依赖
sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig libncurses5
c.获取设备驱动 https://developers.google.com/android/drivers
本地解压两个驱动文件,然后上传到AOSP根目录
d.执行驱动文件
分别执行两个驱动文件,输入“I ACCEPT”完成执行
e.执行命令source build/envsetup.sh
安装命令行
f.执行命令launch
选择设备内核和编译版本
g.如果需要增加编译产品选项,需要修改AOSP/device/google/marlin/AndroidProducts.mk
i.执行命令make -j8
开始编译
可能出现的问题
1. 编译aosp 8.1.0时增加编译产品选项的文件是AOSP/device/google/marlin/vendorsetup.sh
2. 编译aosp 8.1.0时遇到异常-语法错误,需要使用python2
apt-get install python2
unlink /usr/bin/python
ln -s /usr/bin/python2 /usr/bin/python