之前上班一直都是使用公司给的地址下载,修改源码,没有自己去下载过,想到这,所以决定自己来下载编译一下aosp源码。
首先贴出官网地址:https://source.android.com/
以下是编译源码版本对系统和jdk版本的要求,不符合要求的同学赶紧按要求安装吧。
Android 7.0 (Nougat) - Android 8.0 (O):Ubuntu - OpenJDK 8;Mac OS - jdk 8u45 或更高版本
Android 5.x (Lollipop) - Android 6.0 (Marshmallow):Ubuntu - OpenJDK 7;Mac OS - jdk-7u71-macosx-x64.dmg
Android 2.3.x (Gingerbread) - Android 4.4.x (KitKat):Ubuntu - Java JDK 6;Mac OS - Java JDK 6
Android 1.5 (Cupcake) - Android 2.2.x (Froyo):Ubuntu - Java JDK 5
满足要求的同学,可以准备开始源码下载了。
首先我们要安装repo工具,通过repo脚本我们可以下载aosp源码,使用如下命令创建一个文件夹存储repo脚本并加入到用户环境变量里:
mkdir ~/bin
PATH=~/bin:$PATH
同学们注意,不要使用root权限执行以上命令哦,不然bin文件夹会出现在计算机根目录下。下载repo脚本和添加执行权限的命令:
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
如果没有安装curl工具的同学可以安装一下,顺便安装配置一下git(安装好的同学跳过此步骤),使用如下命令:
sudo apt-get install curl git-core
git config --global user.name yourname
git config --global user.email youremail
下载好了我们可以进入~/bin/下打开repo文件查看其内容
cd ~/bin/
gedit repo
可以看到有这么几行,而其中REPO_URL就是定义的下载aosp源码的链接
#!/usr/bin/env python
# repo default configuration
#
import os
REPO_URL = os.environ.get('REPO_URL', None)
if not REPO_URL:
REPO_URL = 'https://gerrit.googlesource.com/git-repo'
REPO_REV = 'stable'
之后我们可以新建一个目录用于存放源码
cd ~
mkdir android_source & cd android_source
然而,因为某些原因,我们不使用代理的话就无法下载源码,这时我们可以使用国内的aosp开源镜像网站下载。
中科大aosp镜像源码下载方法或者清华大学aosp镜像源码下载方法
运行
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.1.2_r1
repo sync
要查看分支列表,请参阅源代码标记和版本
之后,我们就可以开始同步aosp源码了
repo sync
源码同步下来以后,就可以开始编译了。
编译源码我们首先要配置环境,安装依赖包等。
ubuntu14.04依赖包
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
ubuntu12.04依赖包
sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
source build/envsetup.sh
lunch
make -j4