参考地址: http://source.android.com/source/index.html 官方源码下载地址
下载环境:vmplayer 虚拟机中安装Ubuntu12.04 (ubuntu安装在这不是重点,不多说!)
一、环境准备:
Python 2.6 不需要安装ubuntu自带,在ubuntu终端可以执行 python --version可检测版本
JDK 6 jdk是在编译情况下需要,安装不多说,应该很简单
Git1.7 git在下面的一个命令中一起安装.
二、安装需要package(Git在这个命令中装)
天朝的GFW或许会拦截一些关于Android相关的网络IP地址:
为了下载更顺利,先修改hosts (权限不够,使用root权限)
halo@ubuntu:~$ vi /etc/hosts
在文件最下面加上下面这段(如图:)
74.125.31.82 www.googlesource.com
74.125.31.82 android.googlesource.com
203.208.46.172 cache.pack.google.com
59.24.3.173 cache.pack.google.com
接着执行安装一些包:
halo@ubuntu:~$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc gcc-multilib lib32readline-gplv2-dev lib32z1-dev
将上面的命令拷贝到终端,回车安装!会持续5-10分钟左右,根据网络决定!
注:32位系统把上面带下划线换成(lib32readline5-dev lib32z-dev)就OK!
三、下载安装repo
halo@ubuntu:~$ mkdir ~/bin
halo@ubuntu:~$ PATH=~/bin:$PATH
halo@ubuntu:~$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
会报如下错误 curl: (7) Failed to connect to 2404:6800:4005:c00::5d: Network is unreachable
替换成如下的命令即可:
halo@ubuntu:~$ curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo"> ~/bin/repo
详见: http://php.webtutor.pl/en/2011/09/05/kernel-org-hacked-how-to-get-android-repo/
给repo赋权限:
halo@ubuntu:~$ chmod a+x ~/bin/repo
新建源码存放位置:(下面操作以android目录为例)
halo@ubuntu:~$ mkdir android
halo@ubuntu:~$ cd android
halo@ubuntu:~/android $ repo init -u https://android.googlesource.com/platform/manifest
此处是下载仓库中最新的代码,如果想下载之前,加上 -b TAG (下面是下载android4.0.1)
halo@ubuntu:~/android $ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
halo@ubuntu:~/android $ repo sync
会报以下的错误:
fatal: '../platform/abi/cpp.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
error: Cannot fetch platform/abi/cpp
解决方法:
halo@ubuntu:~/android $ cd .repo
halo@ubuntu:~/android/.repo $ ls 就能列出manifest.xml
在.repo目录下的manifest.xml里找到fetch属性,改成:
fetch= "git://Android.git.linaro.org/"
Android官方已经不提供匿名下载,必须用gmail下载,操作如下:
1. 浏览器登录https://android.googlesource.com/new-password,并用gmail帐号登录;
2. 点击网页上的“允许访问”,得到类似:
把上面红色那段信息追加到~/.netrc文件结尾(请检查当前用户的权限, 如果不存在此文件则自己新建一个)
halo@ubuntu:~$ vi ~/.netrc
(拷贝红色那段,没有权限,用root新建)
halo@ubuntu:~/android $ repo init -u https://android.googlesource.com/a/platform/manifest
执行repo sync 同步代码,
halo@ubuntu:~/android $ repo sync
经过6-10小时的下载,下载完成后页面如下:
下载完成后源码目录结构如下:
Linux下执行ls列出目录结构:
windows下列出目录结:
编译下次补上,
如只是学习,又不想下载,可以去百度云上下载android4.3源码(共计23.2G)
http://pan.baidu.com/s/1iPPBZ