下载android的linux内核的方法

1、安装git

       android的linux内核可以从http://android.git.kernel.org/下载,但下载需要使用git,windows版的git可以从http://code.google.com/p/msysgit/下载,有完全安装版和便携版(portable)两个版本可供选择,不常用git的话选portable版就可以了。

      下载portable版的git后,解压缩,然后运行git-bash,会出现一个console窗口。

2、android的kernel有多个部分,可根据需要运行以下命令下载需要的内容。

      在git的console窗口中执行以下命令即可下载内核:

    $ git clone https://android.googlesource.com/kernel/common.git  //这个是linux内核,也可以是git clone http://android.git.kernel.org/kernel/common,网上许多地方介绍的命令是git clone git://android.git.kernel.org/kernel/common,但现在似乎是不能用了。也可以登录https://android.googlesource.com/kernel/common.git 这个网址查看相关文件。

    $ 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


git clone获取比较大的源码时, 不能断点续传, 比较恼火.

 

可以使用 git fetch 解决:

     mkdir common

     cd common

     git init

     git fetch http://android.git.kernel.org/common.git

     传完后,

     git branch -a

     git checkout remotes/....

 

如果中间断掉了, 可以直接进入common目录, 继续git fetch就可以续传了.


3、checkout出对应的内核

   进入samsung目录

   $git branch -a    //列出所有可用的内核版本

   $git checkout  remotes/origin/android-samsung-3.0-ics-mr1   //checkout出想要使用的内核

如果要下载所有的android源文件,下载方法见http://source.android.com/source/downloading.html

 

补充:关于android安装开发过程中的需要的一些开发包,在终端执行以下命令:

          sudo apt-get install git-core gnupg valgrind flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev





Kernel 部分的源码没有采用repo 工具管理,可以直接通过git 工具下载,步骤如下。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
步骤1 进入Android 源码根目录。 

笔者机器上的根目录是~/android/jellybean ,建立kernel  目录命令如下: 

cd ~/android/jellybean 

mkdir kernel 
cd kernel 

步骤2 下载Kernel 源码。 

读者可以在终端中执行以下任一条命令,下载Android Kernel 部分源码。这里选择 

common.git 通用版下载,其余是针对特定处理器的版本。

1
2
3
4
5
$ git clone https://android.googlesource.com/kernel/common.git 
$ 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

1
2
3
4
5
6
7
步骤3 检出Kernel 3.0 分支。 

由于Android  Jelly Bean 使用的是Linux 3.0 内核,所以还需要切换到Kernel 3.0 分支。 

$ cd common     //进入common版内核的下载路径 
$ git branch -a //查看都有哪些分支 
$ git checkout remotes/origin/Android-3.0 //检出Kernel 3.0分支 

1.3.5 编译Android 上层系统源码

1
一般来讲,源码下载后就可以直接学习Android 源代码了。但这样无法调试源码,也无法 

得知源码编译后生成的文件是什么。所以这里继续讲解Android 源代码的编译流程,步骤如下。

1
2
3
步骤1 导入预设脚本。在终端中执行以下命令: 

allong@android:~/android/jellybean$ . build/envsetup.sh 

注意  . 后面有空格,“.”在 Shell 中是指令,使用方式是 “. filename”,作用是从 filename 中读取指

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
 令并执行。读者也可以用 “source build/envsetup.sh”代替,作用是一样的。 

步骤2 指定产品名和编译变量。在终端中执行以下命令: 

   allong@android:~/android/jellybean$ lunch 
You're building on Linux 
Lunch menu... pick a combo: 
    1. full-eng 
    2. full_x86-eng 
    3. vbox_x86-eng 
    4. full_stingray-userdebug 
    ……(省略部分内容) 
 Which would you like? [full-eng] 1  (输入1) 

注意  lunch 是 envsetup.sh 脚 本 中 提 供 的 函 数, 负 责 设 置 一 些 环 境 变 量, 比 如 TARGET_

1
 PRODUCT、TARGET_BUILD_VARIANT 等。 

   full 表示完全编译,eng 表示工程版。full-eng 对应模拟器设备。

1
2
3
4
5
步骤3 编译全部源码。在终端中执行以下命令: 

allong@android:~/android/jellybean$ make -j8  (开启8线程开始编译) 

编译全部源码十分耗时,但这也是必需的,只能等待。下一节将讲解如何编译指定模块。 

1.3.6 编译指定模块源码

1
实际开发中,并不需要每次都编译所有源代码,只需要编译自己修改的模块即可。 

Android 的编译系统提供了强大的机制支持单独模块的编译,而且十分简单。Android 提供三

种方式用于编译单独模块:
make 模块名


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值