作者:张星

相信非常多下载过内核的人都对这个非常熟悉

git clone git://android.git.kernel.org/kernel/common.git kernel

可是这是在曾经,如今假设这么运行的话,会显演示样例如以下内容

Initialized empty Git repository in /home/star/working/kernel/.git/

android.git.kernel.org[0: 149.20.4.77]: errno=Connection refused

fatal: unable to connect a socket (Connection refused)

通过浏览器输入http://android.git.kernel.org/,发现该站点已经被重定向为http://source.android.com/source/downloading.html

能够在该页面的最后发现内核的下载方法。

以下我们介绍一下Android源代码下载的步骤。

工作环境:

操作系统:Ubuntu 10.04   或  Ubuntu10.10

git程序 :1.7.0.4  或 1.7.1

转载请注明出处:http://blog.csdn.net/pku_android

方法一:

1.1 初始化安装环境

參考网页http://source.android.com/source/initializing.html

主要要做的就是安装jdk和安装一些软件包

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \

  zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \

  libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \

  libxml2-utils

假设已经安装了,就不许要这步了

1.2 不管下载内核和源代码,都须要进行例如以下操作

參考网页http://source.android.com/source/downloading.html

$ mkdir ~/bin

$ PATH=~/bin:$PATH

$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

$ chmod a+x ~/bin/repo

建立一个目录,以便下载的内容保存当中

$ mkdir WORKING_DIRECTORY

$ cd WORKING_DIRECTORY

1.3 内核下载

$ git clone https://android.googlesource.com/kernel/common.git kernel

命令行最后面的kernel的意思是保存在这个目录下,所以能够是不论什么名字,该目录不须要自己去创建,最后的这个不写也没问题

假设想下载其它版本号的内核

$ git clone https://android.googlesource.com/kernel/goldfish.git

$ git clone https://android.googlesource.com/kernel/msm.git

$ git clone https://android.googlesource.com/kernel/omap.git

$ git clone https://android.googlesource.com/kernel/samsung.git

$ git clone https://android.googlesource.com/kernel/tegra.git

下载过程中,会有例如以下信息,速度快慢取决于网速了。

Initialized empty Git repository in /home/star/kernel/kernel/.git/

remote: Counting objects: 40, done

remote: Counting objects: 2073952, done

remote: Finding sources: 100% (208/208)

remote: Getting sizes: 100% (88/88)

remote: Compressing objects: 100% (2/2)

remote: Total 2073863 (delta 1735363), reused 2073862 (delta 1735363)

Receiving objects: 100% (2073863/2073863), 427.93 MiB | 318 KiB/s, done.

Resolving deltas: 100% (1735382/1735382), done.

在我下载的过程中,出现了例如以下问题

error: RPC failed; result=56, HTTP code = 2002 MiB | 23 KiB/s

到如今我也不清楚是因为什么原因导致的,推測

1.1中所说的事情,都做了吗?我发现有一些安装包尚未安装,安装之。

或者,可能是网络问题,反复运行一下,会发现并非在同一个地方出现这个问题的,说不定哪次就成功了

或者,用别人的电脑下载一下(尽管方法是我发现的,但是并非我第一个下载成功的,我遇到了RPC failed,后来让同学尝试,成功,之后我也尝试了,在把所须要的安装包都安装后,也成功)

1.4 更换内核版本号

因为在1.3中我写的是kernel,这是能够看到当前文件夹下出现了一个kernel文件夹

$ cd kernel/

$ ls

发现没有不论什么内容

查看当前内核版本号,master,不知道是什么意思

$ git branch

* master

查看全部可用内核版本号

$ git branch -a

* master

  remotes/origin/HEAD -> origin/master

  remotes/origin/android-2.6.39

  remotes/origin/android-3.0

  remotes/origin/master

能够看到眼下仅仅提供了少数的版本号,仅仅有2.6.39和3.0,比方我要下载2.6.39

$ git checkout -b android-2.6.39 origin/android-2.6.39

Switched to a new branch 'android-2.6.39'

该命令的android-2.6.39指的是分支的名字,事实上是能够随便取的,关键是origin/android-2.6.39,要相应git branch -a命令显示的remotes后面的内容

完毕后,查询当前分支

$ git branch

* android-2.6.39

  master

$ ls

arch     Documentation  init     lib          README          sound

block    drivers        ipc      MAINTAINERS  REPORTING-BUGS  tools

COPYING  firmware       Kbuild   Makefile     samples         usr

CREDITS  fs             Kconfig  mm           scripts         virt

crypto   include        kernel   net          security

会看到突然出现非常多目录,这就是内核了

因为误操作

比方$ git checkout -b android-2.6.39 origin/android-2.6.39,仅仅是输入$ git checkout -b android-2.6.39,这时,会得到一个空的分支

$ git branch -a

* android-2.6.39

  master

  remotes/origin/HEAD -> origin/master

  remotes/origin/android-2.6.39

  remotes/origin/android-3.0

  remotes/origin/master

假设再次运行

$ git checkout -b android-2.6.39 origin/android-2.6.39

fatal: git checkout: branch android-2.6.39 already exists

一种方法,就是给把-b后面的android-2.6.39改为其它名字,可是这个有问题的分支android-2.6.39还是会存在的

查看$ git branch --help,找到分支删除的命令

$ git branch -D android-2.6.39

error: Cannot delete the branch 'android-2.6.39' which you are currently on.

须要切换分支,如果也存在android-3.0,当然也能够切换为master或者其它存在的分支,$ git branch -a查看分支

$ git checkout android-3.0

Checking out files: 100% (37131/37131), done.

Switched to branch 'android-3.0'

$ git branch -D android-2.6.39

Deleted branch android-2.6.39 (was fe8bf45).

转载请注明出处:http://blog.csdn.net/pku_android

方法二

2.1 參考1.1和1.2

2.2 类似于下载Android源代码的过程,先运行例如以下命令

$ repo init -u https://android.googlesource.com/platform/manifest

在这一步还须要用到gmail的邮箱

在下载Android源代码的过程中,并不会下载kernel,那如何才干既下载源代码,又下载kernel呢

參考网页http://elinux.org/Android_Kernel_Download

 a kernel git tree并没有被默认的Android manifest file引用

既然没有引用,那就加上它

改动.repo/manifest.xml(眼下的文件夹为1.2中已经建立的WORKING_DIRECTORY)

$ vim .repo/manifest.xml

加上这条语句

<project path="kernel/common" name="kernel/common" revision="android-2.6.39"/>

位置我认为和其他的project选项并列就可以。

版本參考1.4,可能仅仅能下载2.6.39和3.0

2.3 下载源代码和内核

$ repo sync

漫长的等待

假设我仅仅想下载内核呢

非常easy,改动2.2提到的文件.repo/manifest.xml,把全部project标签都删除,再加入�

<project path="kernel/common" name="kernel/common" revision="android-2.6.39"/>

转载请注明出处:http://blog.csdn.net/pku_android

Android源代码下载方法具体解释的更多相关文章

  1. 1、android源代码下载及目录分析,和eclipser的跟踪

    1.在eclipse中跟踪源代码:假如对mainactivity.java里面的activity按Ctrl+鼠标左键(前提已经导入android源代码:方法1:在项目点击右键,然后找到properti ...

  2. Mac OS X于Android Kernel下载方法

    于上一篇日志中,我总结了大家提供的下载Android源代码的方法.这里再简单总结一下内核的下载方法. 參考这里的介绍:http://source.android.com/source/building ...

  3. Android源代码下载之《Android新闻client源代码》

    介绍 Android新闻client源代码,功能上分为:新闻.关注.读报.微博.里面比較有特色的就是读报功能.真正安装报纸的排版进行读报.给人得感觉就像是在读真实的报纸.事实上即使首页的动态云标签很有 ...

  4. Ubuntu环境中的Android源代码下载

    跟随“老罗的Android之旅”学习Android系统,首先得学会创建能用于编译Android源代码的环境. 文章参考:http://0xcc0xcd.com/p/books/978-7-121-18 ...

  5. android源代码下载备注

    android源代码下载的參考网上比較多,就不贴上来了,主要是备注下下载源代码过程中须要注意的地方. 1. google官方下载步骤地址: http://source.android.com/sour ...

  6. Android源代码下载过程中无法下载repo的解决方法【转】

    本文转载自:http://blog.csdn.net/shangyuan21/article/details/17618575 我们都知道下载Android源代码需要使用repo进行辅助下载,但是最进 ...

  7. 1、android源代码下载与跟踪

     学习Android源代码的目的 理解Android API查找API(Activity.Content Provider等) 高级应用开发(ROM定制)  在不同平台下载Android源代码 W ...

  8. Android源代码下载 “Gerrit下载源代码”

    repo init -u ssh://jenkins@gerrit.y:29419/manifest -m k86A.xml 使用-m参数指定具体使用的是k86A.mxl文件 步骤1. curl ht ...

  9. Android源代码下载以及异常查找网站推荐

    源代码下载:https://github.com/ 异常查找:http://stackoverflow.com/

随机推荐

  1. webservice-WebService试题

    ylbtech-doc:webservice-WebService试题 WebService试题 1.A,返回顶部 001.{WebService题目}下列是Web服务体系结构中的角色的是()(选择3 ...

  2. Android 模拟器中sdcard操作

    1.  在模拟器中创建sdcard目录,方法如下: 1. mksdcard命令 用cmd进入SDK的Tools目录,执行mksdcard命令.会出现如下帮助信息 我们可以看到sdcard image支 ...

  3. Matlab编程实例(1) 移动平均

    MATLAB数字信号处理作业,把自己写的程序发上来..欢迎交流~ QQ 五幺九七九零六四   首先是任意点移动平均: 主程序:mov_average_main.m (运行) 函数:mov_averag ...

  4. webdriver(python)学习笔记五——层级定位

    层级定位 在实际的项目测试中,经常会有这样的需求:页面上有很多个属性基本相同的元素,现在需要具体定位到其中的一个.由于属性基本相当,所以在定位的时候会有些麻烦,这时候就需要用到层级定位.先定位父元素, ...

  5. A Spy in the Metro

    题意: n个车站,已知到达相邻车站的时间,有m1辆车从1站出发已知发车时间,有m2辆车从n站出发已知发车时间,求从1到达n所需等车的总时间最小. 分析: 有三种情况,在原地等,乘左到右的车,乘右到左的 ...

  6. bjfu1211 推公式,筛素数

    题目是求fun(n)的值 fun(n)= Gcd(3)+Gcd(4)+…+Gcd(i)+…+Gcd(n).Gcd(n)=gcd(C[n][1],C[n][2],……,C[n][n-1])C[n][k] ...

  7. Tableau学习笔记之四

    创建基本变量图表: 1.可以创建表格,条形图,饼图,直方图,线图,堆积条形图,箱线图等. 2.根据自己选择的变量和维度的数量,Tableau中的“智能显示”会相应的提醒,可以绘制哪些图形,可以绘制的一 ...

  8. 线段和矩形相交 POJ 1410

    // 线段和矩形相交 POJ 1410 // #include <bits/stdc++.h> #include <iostream> #include <cstdio& ...

  9. CentOS下编译安装hping3

    安装hping之前,先装上libpcap-dev和tcl-dev 1.获取源码包 wget http://www.hping.org/hping3-20051105.tar.gz 2.解压,得到 hp ...

  10. 一站式Hadoop&Spark云计算分布式大数据和Android&HTML5移动互联网解决方案课程(Hadoop、Spark、Android、HTML5)V2的第一门课程

    Hadoop是云计算的事实标准软件框架,是云计算理念.机制和商业化的具体实现,是整个云计算技术学习中公认的核心和最具有价值内容. 如何从企业级开发实战的角度开始,在实际企业级动手操作中深入浅出并循序渐 ...