如何下载编译Android 4.4内核
来源:互联网 发布:c语言成员变量 编辑:程序博客网 时间:2024/06/06 16:28
原文:http://www.cnblogs.com/zhx831/p/3551181.html
需要知道的一点是Android使用的都是prebuild的kernel,这篇文章记录了我替换内核的过程
首先,我们需要确定当前Android使用的kernel版本,然后要确定下载kernel的版本
查看当前kernel版本
$ dd if=kernel-qemu bs=1 skip=$(LC_ALL=C grep -a -b -o $'\x1f\x8b\x08\x00\x00\x00\x00\x00' kernel-qemu | cut -d ':' -f 1) | zgrep -a 'Linux version'
结果为:
Linux version 3.4.0-gfb3ea4f (keunyoung@keunyoung-linux.mtv.corp.google.com) (gcc version 4.7 (GCC) ) #1 Tue Apr 2 17:27:47 PDT 2013
从结果可以看出来电脑模拟器使用的是3.4.0的内核
下载内核
$ mkdir android_kernel$ cd android_kernel$ git clone https://android.googlesource.com/kernel/goldfish.git
下载完成后
Cloning into 'goldfish'...remote: Sending approximately 609.12 MiB ...remote: Counting objects: 28280, doneremote: Finding sources: 100% (7/7)remote: Getting sizes: 100% (6/6)remote: Compressing objects: 100% (3709/3709)remote: Total 3063030 (delta 2572134), reused 3063028 (delta 2572134)Receiving objects: 100% (3063030/3063030), 608.82 MiB | 303 KiB/s, done.Resolving deltas: 100% (2574828/2574828), done.
查看内核版本
$ git branch -a
结果
* master remotes/origin/HEAD -> origin/master remotes/origin/android-goldfish-2.6.29 remotes/origin/android-goldfish-3.10 remotes/origin/android-goldfish-3.4 remotes/origin/linux-goldfish-3.0-wip remotes/origin/master
Checkout相对应版本
$ git checkout remotes/origin/android-goldfish-3.4
在一开始我是打算编译3.10的,但是3.10目前位置还没有goldfish_defconfig文件,所以退而求其次编译3.4的内核。
编译内核
在checkout后就可以开始编译内核了
$ export ANDROID_SRC_PATH=~/work/android_src/$ export PATH=$ANDROID_SRC_PATH/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin:$PATH$ export ARCH=arm$ export SUBARCH=arm$ export CROSS_COMPILE=arm-eab #这里可能是原作者笔误,应该是export CROSS_COMPILE=arm-eabi-$ make goldfish_armv7_defconfig$ make
编译成功后得到如下的输出:
Kernel: arch/arm/boot/zImage is ready
注意:一开始我使用的是make goldfish_defconfig来进行编译, 这样可以成功编译出内核来,但是编译出来的内核在模拟器中无法启动。Google之后得知,需要使用goldfish_armv7_defconfig才能make出可以启动的内核。
现在就可以使用我们编译出来的内核启动了
emulator -kernel ~/src/android_kernel/goldfish/arch/arm/boot/zImage &
启动后通过adb shell查看对比前后两个版本的内核有什么区别
替换前:
Linux version 3.4.0-gd853d22 (nnk@nnk.mtv.corp.google.com) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #1 PREEMPT Tue Jul 9 17:46:46 PDT 2013
替换后:
Linux version 3.4.0-g48b9692 (vincent@vincent-pc) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #2 PREEMPT Sun Feb 16 12:30:13 CST 2014
之后我们就可以把编译出来的内核拷贝到Android source tree下或者使用make bootimage来制作boot image了。
Refs:
http://source.android.com/source/building-kernels.html
本博客全部文章(除文章标题或文内有另外特别说明的)皆为本人辛苦码字而得,本人拥有其版权。 转载时请以超链接形式标明文章原始出处和作者。谢谢
分类: Android
阅读全文
0 0
- 如何下载编译Android 4.4内核
- 如何下载并编译Android内核源码goldfish(图文)
- 如何下载并编译Android 4.0内核源码Goldfish(图文)
- 如何下载Android kernel内核源代码,编译烧写验证
- 如何下载并编译Android模拟器Linux内核goldfish
- 如何编译Android内核
- 下载和编译Android内核
- 如何编译Android内核源码
- Android内核源码下载与编译
- Android模拟器*内核下载-编译-运行
- Android内核源代码下载与编译
- Android 及内核源码下载编译
- 下载android kernel内核,并编译。
- 下载并编译Android内核源代码
- 如何下载并编译Android4.0内核源码goldfish(图文)
- 如何下载并编译Android4.0内核源码goldfish(图文)
- 如何下载并编译Android4.0内核源码goldfish(图文)
- 如何下载并编译Android4.0内核源码goldfish(图文)
- Hoeffding证明
- wireshark 一些过滤命令
- android studio 导入jnilibs,so库方法
- 数据库命名规范的几点参考建议
- 裸机程序常识2 CPU运行的7种模式 system and user ,supervisior ,Abort ,IRQ,FIQ , undefined
- 如何下载编译Android 4.4内核
- 机房收费系统-报表打印
- 【剑指offer】题61:二叉树序列化、反序列化
- 目前大数据在金融行业的应用主要体现在哪些方面?
- spring boot 打jar包
- 关于泛型介于返回值同static之间的意义
- 折半查找
- # hadoop入门第六篇-Hive实例
- kuangbin 数论 E题