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^
时间: 2024-10-05 05:45:36

Android : 下载内核源码 and 编译、打包的相关文章

【转】Linux CentOS内核编译:下载CentOS源码、编译2.6.32-220的错误(apic.c:819 error 'numi_watchdog' undeclared)

一.下载CentOS源码 1.1 查看CentOS版本 cat /etc/issue 1.2 查看Linux内核版本 uname -r 1.3 下载 文件名:kernel-2.6.32-220.el6.src.rpm 下载地址:http://vault.centos.org/6.2/os/Source/SPackages/ 官网:http://vault.centos.org/ 1.4 从kernel-2.6.32-220.el6.src.rpm获取源码 1. rpm -i kernel-2.6

[Android编译(二)] 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机

1 前言 经过一周的奋战,终于从谷歌官网上下载最新的android 6.0.1_r62源码,编译成功,并成功的刷入nexus6p,接着root完毕,现写下这篇博客记录一下实践过程. 2 简介 自己下载android系统源码,修改定制,然后编译刷入安卓手机,想想还有点小激动呢.简单点说一句话--定制我们自己的MIUI,这就是android的魅力,这篇博客博主就来教大家实现自己的定制系统. 首先,要明白下面的基础知识: (1) 什么是aosp? aosp就是android open source p

如何在mysql官网下载mysql源码包编译

登录mysql官网: http://dev.mysql.com/downloads/mysql/ 选择相关的平台下载: 3.选择Source Code 选型后,拉倒网页下方,选择要下载的源码包 4.点击Download,跳转至下载界面 5.成功下载文件

depmod -a -version在内核源码中编译的用处

按照书本上的编译过程中,从来没有提醒需要使用到depmod指令,也没有说明必须使用make dep,很多的时候,我们如果没有搜索详细的资料,恐怕我们是无法正确的编译内核. 提出如下的疑问: 通过make menuconfig删除某些编译模块的时候,是否需要重新生成.config文件,通过如下的指令make dep 结果:在执行的过程中出现warning: This is not unnesscery now 实际上,我们还是参考了原来系统中的config文件,配置文件放置在/boot/confi

android源码的编译问题总结

由于目前的项目需要修改android的内核源码,所以我需要从android源码的编译开始学习. 下面看一下我的编译环境. 我使用的Ubuntu系统的版本是14.04,64位. gcc版本:4.8.8 编译过程我是看着google开发者官网,以及结合别人的博客进行编译的.编译的过程会遇到很多问题,在这里,我就把我遇到的问题总结一些,以便以后用到的时候容易查看,也方便别人编译android的时候遇到相同的问题,便于查看. 问题一:java版本问题 这个问题描述的是我当前使用的java版本是"1.7&

centos的linux内核源码下载方法

刚开始进行写linux驱动时,写好Makefile后进行make,出现scripts/xxx/Makefile:没有那个文件或目录,编译停止!错误,这是linux系统没有安装内核源码导致的. 例如 下面就介绍下下载内核源码方法 1.查看自己centos版本 指令cat /etc/issue 2.查看自己linux内核版本 指令uname -r或者uname -a 3.进入官网下载 由上面两个步骤我们知道了自己centos版本为6.7,内核版本为2.6.32-573.el6.i686 源代码的官网

转载 :Linux有问必答:如何在Debian或Ubuntu上安装完整的内核源码

http://linux.cn/article-5015-1.html 问题:我需要为我的Debian或Ubuntu下载并安装完整树结构的内核源码以供编译一个定制的内核.那么在Debian或Ubuntu上有什么可行的方法来下载完整的内核源码呢? 在给你的Linux安装完整内核源码之前,先问问自己是否真的需要这样做.如果你仅仅是尝试去编译一个内核模块或是为内核定制驱动,你并不需要完整的内核源码树.你只需要安装一些与内核对应的头文件,这样就足够了. 只有在你需要生成一个定制的内核,而且内核源码中的一

ubuntu下linux内核源码阅读工具和调试方法总结

http://blog.chinaunix.net/uid-20940095-id-66148.html 一 linux内核源码阅读工具 windows下当然首选source insight, 但是linux下就没有source insight这么优秀的工具了,但是也有不少的替代品,但觉绝对部分人会选择vim+ctags+cscope的组合,还有部分人或选择wine中的source insight或选择navigatror,当然对于代码阅读来说vim+ctags+cscope的组合还是比较好的一

linux内核源码级调试

一 linux内核源码阅读工具 windows下当然首选source insight, 但是linux下就没有source insight这么优秀的工具了,但是也有不少的替代品,但觉绝对部分人会选择vim+ctags+cscope的组合,还有部分人或选择wine中的source insight或选择navigatror,当然对于代码阅读来说vim+ctags+cscope的组合还是比较好的一个选择方案,但是,当我使用了eclipse之后,个人感觉用eclipse作为linux环境下源码阅读工具确