如何下载Android源码(window和Linux)

文章参照来源:http://source.android.com/source/downloading.html
一、window平台
关于在window平台下载Android源码,网上一般使用的是直接用git来下载。
比如:
http://wenku.baidu.com/view/a4f5f922482fb4daa58d4bb5.html
http://hendyyou.iteye.com/blog/1147738
这种方式最严重的问题是,对源码只能分块(git块)进行下载,而且块数很多。关键是现在google似乎没有提供了Android源码git块的详细列表。至少从网上文章给的链接我已经无法找到了哦。
我这里介绍的是通过在window平台上安装 cygwin来模拟Linux环境来下载Android源码。
1.1、安装cygiwn.
首先需要安装Cygwin,关于此的详细内容请参考cygwin安装详解》。
注意在安装Cygwin时,我们除了安装默认的组件,我们还需要安装bash, curl, git and python
1.2、添加path路径
编辑.bash_profile添加path路径。. bash_profile 文件位于“ %cygwin安装目录%\home\%用户% ”这个目录。比如我的就是“ D:\tools\cygwin\home\rohu
.bash_profile 文件中追加一行
export PATH=~/bin:$PATH
如果在国内,需要代理才能出去。 如果用代理的话,还需要加上一个句命令。
假设代理服务器为“ 127.0.0.2::8080 ”,则命令为:
export http_proxy=127.0.0.2:8080
1.3、安装repo
通过 Cygwin 菜单 Cygwin Terminal 进入shell命令行。
输入以下命令:
mkdir ~/bin
curl   --insecure   https://dl-ssl.google.com/dl/googlesource/git-repo/repo  >  ~/bin/repo
chmod a+x ~/bin/repo
如果在国内,需要代理才能出去。我在假设代理服务器为“ 127.0.0.2::8080
如果用代理的话,上面的命令就应该变为:
mkdir ~/bin
curl   --insecure   --proxy  127.0.0.2:8080   https://dl-ssl.google.com/dl/googlesource/git-repo/repo  >  ~/bin/repo
chmod a+x ~/bin/repo
到此repo脚本文件就安装好了。
1.4、配置git
shell命令行,输入以下命令:
git  config  --global http.sslverify "false"
如果在国内,需要代理才能出去。 如果用代理的话,还需要加上一个句命令。
假设代理服务器为“ 127.0.0.2::8080 ”,则命令为:
git   config  --global http.proxy " 127.0.0.2:8080"
到此git就配置好了。
1.5、安装repo客服端
1.5.1、新建一个工作目录 WORKING_DIRECTORY,切换到该目录,以便存放Android源码:
在shell命令行,输入以下命令:
$ mkdir WORKING_DIRECTORY $ cd WORKING_DIRECTORY
15.2、 Run repo init to bring down the latest version of Repo with all its most recent bug fixes. You must specify a URL for the manifest, which specifies where the various repositories included in the Android source will be placed within your working directory.
$ repo init -u https://android.googlesource.com/platform/manifest 

To check out a branch other than "master", specify it with -b:

$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
1.5.3、 When prompted, please configure Repo with your real name and email address. To use the Gerrit code-review tool, you will need an email address that is connected with a registered Google account. Make sure this is a live address at which you can receive messages. The name that you provide here will show up in attributions for your code submissions.在运行1.5.2的命令时,会弹出一个要求输入你的gmail邮箱的提示。最好输入有效的邮箱地址。
A successful initialization will end with a message stating that Repo is initialized in your working directory. Your client directory should now contain a .repo directory where files such as the manifest will be kept.
在repo完成初始化后,你再当前目录下,应该能看到一个".repo"目录,manifest等就在该目录下。
如果你在这步遇到gpg验证出错,抛异常。那么请修改~/bin/repo文件的第187行来跳过gpg验证。
如下:
    if _NeedSetupGnuPG():
       can_verify = False 
    else:
      can_verify = True
另外,我们可以通过在浏览器中输入 https://android.googlesource.com/platform/manifest来获得各个版本对应的branch
由于访问这个地址很慢,我就把它的内容贴到了我博客上。具体请访问《 Android源码的branch》
1.6、取得源码

To pull down files to your working directory from the repositories as specified in the default manifest, run

$ repo sync 

The Android source files will be located in your working directory under their project names. The initial sync operation will take an hour or more to complete. For more about repo sync and other Repo commands, see Version Control.

执行上面的命令,Android的源码就开始下载了,它将被下载到" .repo "目录的" projects "目录下。
1.7、下载kernel源码
执行以下命令
git clone https://android.googlesource.com/kernel/common.git
将在Android目录下看到一个 common 目录,得到的 common 里面看不到文件,只有 .git 目录
进入common再执行 git branch -a 得到
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/android-2.6.39
  remotes/origin/android-3.0
  remotes/origin/master
这时我们可以通过执行 git checkout android-3.0 得到 kernel3.0 源码 同样,
同理同过执行 git checkout android-2.6.39 将得到 kernel2.6.39 源码
二、Linux平台
在Linux平台下载Android源码,就要轻松的得多了。cygiwn都不用装。但是如果你的系统上还没有 curl, git  and  python 的话 请先安装它们。
2.1、添加path路径
编辑.bashrc添加path路径。.bashrc文件位于"/home/%用户%"这个目录
在.bashrc文件中追加一行
export PATH=~/bin:$PATH
在命令行执行以下命令:
source .bashrc
2.2、安装repo
请参照1.3
2.3、配置git
同1.4
2.4、安装repo客服端
同1.5
2.5、取得源码
同1.6
2.6、下载kernel源码
同1.7
结束!

你可能感兴趣的:(android,linux,git,Path,branch,initialization)