关闭

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

313人阅读 评论(0) 收藏 举报
分类:
文章参照来源:http://source.android.com/source/downloading.html
一、window平台
关于在window平台下载Android源码,网上一般使用的是直接用git来下载。
比如:
这种方式最严重的问题是,对源码只能分块(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"目录下。
如果已经下载了Android源码,但是现在需要想更新,便可以直接使用repo sync同步到本地。
可能会出现如下错误:

$ repo sync
remote: Counting objects: 10, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 2), reused 6 (delta 2)
Unpacking objects: 100% (6/6), done.
From git://github.com/richi-chen/Pandaboard-ICS-repo
   3ea7f09..11ecd6d  master     -> origin/master
   534d620..5fa74f5  omapzoom   -> origin/omapzoom
error: .repo/manifests/: contains uncommitted changes

网友解决:
richi 大虾:
to recover any uncommitted change, you should use 'git stash' and 'git clean -f -d'
for example: if you find it say there are uncommitted changes in .repo/manifests, you shoud 'cd .repo/manifests' and then 'git stash', 'git clean -f -d'
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、以授权方式取得代码
如果你需要向google提交对原生Android的修改。你就需要以授权方式取得代码。

By default, access to the Android source code is anonymous. To protect the servers against excessive usage, each IP address is associated with a quota.

When sharing an IP address with other users (e.g. when accessing the source repositories from beyond a NAT firewall), the quotas can trigger even for regular usage patterns (e.g. if many users sync new clients from the same IP address within a short period).

In that case, it is possible to use authenticated access, which then uses a separate quota for each user, regardless of the IP address.

The first step is to create a password from the password generator and to save it in ~/.netrc according to the instructions on that page.

The second step is to force authenticated access, by using the following manifest URI: https://android.googlesource.com/a/platform/manifest. Notice how the /a/directory prefix triggers mandatory authentication. You can convert an existing client to use mandatory authentication with the following command:

$ repo init -u https://android.googlesource.com/a/platform/manifest 
2.7、可能遇到的一些网络问题

When downloading from behind a proxy (which is common in some corporate environments), it might be necessary to explicitly specify the proxy that is then used by repo:

$ export HTTP_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>
 $ export HTTPS_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>

More rarely, Linux clients experience connectivity issues, getting stuck in the middle of downloads (typically during "Receiving objects"). It has been reported that tweaking the settings of the TCP/IP stack and using non-parallel commands can improve the situation. You need root access to modify the TCP setting:

$ sudo sysctl -w net.ipv4.tcp_window_scaling=0 $ repo sync -j1
2.8、下载kernel源码
同1.7
结束!


0
0
查看评论

windows平台下载android源码

最近在看《android内核剖析》,很多细节不具体看代码很难理解,记住了印象也不深,感觉还是跟着源码走一遍好些,回来下载android源码,遇到不少问题,终于开始下载了,整理下流程,鉴于网上很多教程时间久了都会失效,本文截止14年4月18日亲测有效。 需要工具如下: 下载msysgit,安装...
  • jason0539
  • jason0539
  • 2014-04-18 13:37
  • 17575

linux 下android源码下载

官方网址步骤 :http://source.android.com/source/downloading.html 先描述步骤,再说遇到的问题 环境:ubuntu12.04  64 位。   1.安装git sudo apt-get install ...
  • lixin88
  • lixin88
  • 2014-04-15 16:53
  • 4784

在Ubuntu上下载Android最新源代码

最近准备潜心研究Android源代码,首先第一步肯定是下载源代码啦,众所周知,Android源码只能运行在Linux或Mac OS上,买不起Mac,那就只能用Linux了,Linux的话推荐使用Ubuntu,为什么?因为Google推荐。。。你可以装windows+Ubuntu双系统,或者在wind...
  • u013571486
  • u013571486
  • 2016-01-21 16:59
  • 973

Windows 环境下载 Android 源码

前言Android 官网(该方式不适合 Windows 平台):https://source.android.com/source/downloading.html可是我就想在 Windows 中使用 Source Insight 看看源代码,当然可以!准备环境 安装 git 安装 Python 自...
  • freekiteyu
  • freekiteyu
  • 2017-04-28 19:25
  • 3648

Windows7 下载android源码

1. 第一步: 在官网(http://code.google.com/p/msysgit/downloads/list)上下载最新的git工具 2.安装下载的exe文件(直接下一步下一步就好) 3.在硬盘上建立存放源码的文件夹,我存放的位置是D:\MyGit\android,在文件夹上右...
  • Singleton1900
  • Singleton1900
  • 2012-12-25 21:22
  • 15624

Windows环境下通过Git得到Android源代码

Git是一个分布式版本控制/软件配置管理软件,原来是linux内核开发者林纳斯·托瓦兹(Linus Torvalds)为了更好地管理linux内核开发而创立的;由于Android操作系统的核心属于Linux核心的一个分支,所以它也由Git管理。要想理深入学习Android,有必要好好查看它...
  • deng0zhaotai
  • deng0zhaotai
  • 2013-12-24 20:06
  • 10865

Android Studio SDK 如何获取到源码

使用Android Studio 有一段时间了,我用的SDK不是Android Studio自带的,每次进入SDK Manager并不显示sources for android sdk选项,然而就算有下载也会很慢。以下是本人查找很多资料,觉得比较好比较快的方法,希望能帮到和我有一样困扰的...
  • pys214371027
  • pys214371027
  • 2016-12-07 14:06
  • 772

不翻墙下载Android内核源码

在之前的文章不翻墙下载Android源码中,描述了如何通过中科大、清华的开源镜像下载Android AOSP源码。 其实Android还有一个部分容易被大家忽视的就是Android内核的源码,Android系统使用的是Linux内核,但与主线分枝的Linux内核又有一些差异。各个不同的厂商又有自己...
  • sunao2002002
  • sunao2002002
  • 2016-11-06 23:52
  • 5441

(国内)完美下载Android源码Ubuntu版

今天写的文章莫名奇妙的没了,所以再重新写一篇。首先,为了方便起见,我已经将系统更换成里Ubuntu,因为官方推荐使用这个Linux发行版(唉,csdn给我丢文章了,没动力写东西了。)先来一张系统的截图: Ubuntu的版本是15.04(推荐用这个版本)。接下来是我们可能用到的软件。 git :使用...
  • song19891121
  • song19891121
  • 2015-11-29 21:30
  • 10074

win版git的安装及获取源码踩过的坑(超清晰)

安卓开发人员在学习到一两年以后就会碰到一个头痛的bug,这时如果想很好的解决,查看源码不失一种好办法,有些源码却不在android.rar中,怎么办?使用git去google源码网:https://android.googlesource.com,clone下载,而网上大部分都是讲mac git的,...
  • bright789
  • bright789
  • 2016-12-23 06:52
  • 1000
    个人资料
    • 访问:213693次
    • 积分:2931
    • 等级:
    • 排名:第14288名
    • 原创:24篇
    • 转载:356篇
    • 译文:2篇
    • 评论:4条
    最新评论