Android : 下载内核源码 and 编译打包

Posted sheldon_blogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android : 下载内核源码 and 编译打包相关的知识,希望对你有一定的参考价值。

一、Android内核源码的下载:

1.Google GIT地址:

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

$ git clone https://android.googlesource.com/kernel/exynos.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  

 

2.清华服务器地址:

 git clone https://aosp.tuna.tsinghua.edu.cn/kernel/common.git
 git clone https://aosp.tuna.tsinghua.edu.cn/kernel/exynos.git
 git clone https://aosp.tuna.tsinghua.edu.cn/kernel/goldfish.git
 git clone https://aosp.tuna.tsinghua.edu.cn/kernel/hikey-linaro.git
 git clone https://aosp.tuna.tsinghua.edu.cn/kernel/lk.git
 git clone https://aosp.tuna.tsinghua.edu.cn/kernel/msm.git
 git clone https://aosp.tuna.tsinghua.edu.cn/kernel/omap.git
 git clone https://aosp.tuna.tsinghua.edu.cn/kernel/samsung.git
 git clone https://aosp.tuna.tsinghua.edu.cn/kernel/tegra.git
 git clone https://aosp.tuna.tsinghua.edu.cn/kernel/x86_64.git

goldfish这个project包含了适合于模拟器平台的源码;
msm这个project包含了适合于ADP1、ADP2、Nexus One、Nexus 4的源码,并且可以作为高通MSM芯片组开发定制内核工作的起始点;
omap这个project包含了适合于PandaBoard、Galaxy Nexus的源码,并且可以作为德州仪器OMAP芯片组内核开发定制工作的起始点;
samsung这个project包含了适合于Nexus S的源码,并且可以作为三星蜂鸟芯片组内核开发定制工作的起始点;
tegra这个project包含了适合于Xoom和Nexus 7的源码,并且可以作为英伟达图睿芯片组内核开发定制工作的起始点;
exynos这个project包含了适合与Nexus 10的源码,并且可以作为三星猎户座芯片组内核开发定制工作的起始点。

 

二、编译:
 1.代码库download之后会在对应的目录下可以通过 ls -al 查看到 .git , git branch -a 查看所有分支,我手上nexus平板刷的Android5.0的系统,所有选择以下内核版本:

  git checkout remotes/origin/android-tegra-flounder-3.10-lollipop-release

    2.分支代码下载好之后:

      (1)修改Makefile:

  #ARCH  ?= $(SUBARCH)
  #CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)

       修改为:

  ARCH ?= arm
  CROSS_COMPILE ?= arm-eabi-

      (2)配置:

       kernel/xxx/arch/arm/configs/    ,目录下有很多配置文件
       make tegra_defconfig              ,选择默认配置,之后会生成 .config
       make menuconfig                    ,可以通过此命令进一步配置内核更新 .config

      
   (3)编译:      

       配置好内核后就可以输入 : make    ,等待zImage的生成。

三、打包zImage 到 boot.img,并刷机:

# 下载解打包工具 https://github.com/derekhe/u8825d-bootimg-scripts
# 解压到任意地方后,从手机上获取得你现在正使用的boot.img放到解压出来的目录
# 1. 解压现有的boot.img
./unpack-bootimg.pl boot.img

# 2. 拷贝编译的zImage文件到此目录,路径自己确定 cp ../arch/arm/boot/zImage ./
# 3. 打包zImage和ramdisk目录 mv boot.img boot.img.bak ./repack-bootimg.pl zImage boot.img-ramdisk boot.img
# 4. 刷入boot.img,手机重启的瞬间要记得按音量减键 ./adb reboot ./fastboot devices ./fastboot erase boot ./fastboot flash boot boot.img
./fastboot reboot

如果能正常开机,就congratulation!!!^v^






























以上是关于Android : 下载内核源码 and 编译打包的主要内容,如果未能解决你的问题,请参考以下文章

第8章 Android 4.0系统的下载与编译

第八章

如何编译Android的kernel

如何解包/编辑/打包android系统的boot.img文件

Android内核的编译与测试

android 编译打包烧录