可参考清华教程:
http://mirrors.tuna.tsinghua.edu.cn/help/#AOSP(需在Linux系统下访问)
中科大教程:
http://wiki.jikexueyuan.com/project/android-source/download-build.html
csdn教程
http://blog.csdn.net/oldmtn/article/details/9189509
Google官网教程:
https://source.android.com/source/downloading.html
一、准备工作
1.准备一个Linux系统,推荐Ubuntu,版本最好为12.04。其他版本亦可。Ubuntu系统安装在实体机或者虚拟机里都行,实体机安装过程可参考csdn资料:
http://blog.csdn.net/xdw1985829/article/details/22649315
如果是虚拟机安装Ubuntu可参考资料,推荐使用VM-WARE
http://jingyan.baidu.com/article/14bd256e0ca52ebb6d26129c.html
提示:无论是虚拟机还是物理机,下载安卓源码前请确认你的硬盘空间有80G,如果需要编译源码,请确认你的硬盘空间100G以上。如果已经建立好了虚拟机,而硬盘空间不够,参考资料对虚拟机进行扩容
http://www.linuxidc.com/Linux/2014-10/107590.htm
先在vmware下进行虚拟机硬盘的扩容,在参考资料在Ubuntu系统内部进行扩容。
二、下载前的环境准备
1.确定已经安装好的Ubuntu版本。然后执行命令行:
sudo gedit /etc/apt/sources.list
更换更新源。可用源如下
https://lug.ustc.edu.cn/wiki/mirrors/help/ubuntu
根据自己的Ubuntu版本在网址中查找。
更换之后,使用命令
sudo apt-get update
完成更新源的同步。
2.确认你的Ubuntu系统已经安装Python 2.6-2.7 ,使用命令行
/usr/bin/python
打开Python查看版本。如果系统内没有安装Python,你可以从 python.org 上下载。
3.安装GNU Make 3.81-3.82,可从官网 gnu.org 上下载。Ubuntu可忽略,系统自带。
4.安装JDK:使用命令行
$ sudo apt-get update
$ sudo apt-get install openjdk-7-jdk
即可安装JDK7.
5.安装git:使用命令行
apt-get install git
获取git。
6.安装需要的包:使用如下命令行:
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown
注意:这是一条命令,获取所有的包,当然也可以分别执行apt-get install命令。
下一条是:
sudo apt-get install libxml2-utils xsltproc gcc-multilib
之后需要安装然后你安装lib32readline5-dev
sudo apt-get install lib32readline5-dev
的时候有如下提示:
那么就需要执行下面语句替代
sudo apt-get install lib32readline-gplv2-dev
至此,所有需要的包已经安装完成。
三、下载源码
1.下载repo工具
①确保在你的主目录下有一个 bin/ 目录并且它包含在你的路径中
$ mkdir ~/bin
$ PATH=~/bin:$PATH
②下载 Repo 工具并确保它是可执行的:
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
<span style="line-height: 20pt; font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> $ chmod a+x ~/bin/repo</span>
2.创建一个工作目录
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
WORKING_DIRECTORY可以随意取名字
3、准备初始化仓库
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
或者
repo init -u git://aosp.tuna.tsinghua.edu.cn/aosp/platform/manifest
如果提示无法连接到 gerrit.googlesource.com,可以编辑 ~/bin/repo,把 REPO_URL 一行替换成下面的
REPO_URL = 'https://gerrit-google.tuna.tsinghua.edu.cn/git-repo'
注意,此时获取的是最新的版本,如果需要制定版本,使用如下命令:
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.0.1_r1
以Android-4.0.1_r1为例。
4.之后开始同步源码,使用命令行
repo sync
在实体机下载时,使用的是ipv6下载,但是在虚拟机下载,使用的是ipv4。如果流量不够,那么就是使用cygwind在Windows下面下载,具体没有尝试,想使用的话,参考资料.
http://my.oschina.net/stdying/blog/120379
提示:repo sync命令是可以断点续传的,如果一次没有下载完,可以ctrl+c关闭,再次开机时,cd到你的工作目录,然后视同repo sync即可继续下载。如果下载过程中出现卡顿、停止的情况,ctrl+c关闭之后继续repo sync。最后下载完成时,系统会自行check out files。Check out完成时,代码下载也结束了。
2016.4.26日更新:由于repo sync经常中断,所以我在这个例程里加入一个脚本文件,方便中断后自动继续下载:
echo "======start repo sync======"
repo sync
while [ $? = 1 ]; do
echo "======sync failed, re-sync again======"
sleep 3
repo sync
done