zoukankan      html  css  js  c++  java
  • Android源代码下载方法具体解释

    作者:张星 

    相信非常多下载过内核的人都对这个非常熟悉
    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


     

  • 相关阅读:
    链表VS数组
    数组VS集合
    最好、最坏、平均、均摊时间复杂度
    代码时间、空间复杂度分析
    “echo >”和“echo >>”的区别
    两数之和
    hadoop学习之----------IntelliJ IDEA上实现MapReduce中最简单的单词统计的程序(本地 和 hadoop 两种实现方式)
    Ubuntu16.04中解决关于The Internet Topology Zoo 的gml文件的读取并画图的问题
    Ubuntu16.04解决Ubuntu Sofware打开后无反应
    Ubuntu16.04中如何启用floodlight的一种方式
  • 原文地址:https://www.cnblogs.com/blfshiye/p/3800780.html
Copyright © 2011-2022 走看看