Google Android操作系统内核编译图文教程

和标准的Linux开发流程一样,Android平台开发的一个很重要的基础工作就是对其内核的编译和移植。本文结合Android的开发文档以及本人的实践经验,简单介绍了Android内核的编译过程,希望有助于对内核移植感兴趣的开发人员。

  Android作为Google公司推出的一款手机开发平台,其本身是基于linux内核的。Google提供的内核源代码中除了linux部分外,有很大一部分是与虚拟处理器Qemu和模拟硬件平台Goldfish相关的。所以如果想将Android移植到实际的硬件平台上需要将这部分代码剥离出来。当然这不是这篇文章的重点,我们现在的目的是要编译出一个可以在模拟器上运行的系统内核,那么,现在就开始我们的工作吧!

工作环境及所需软件包

  系统环境:Redhat Linux 9.0

  交叉编译器:GNU Toolchain for ARM Processors 下载地址:http://www.codesourcery.com/gnu_toolchains/arm/download.html
  其中第一项选择ARM EABI或ARM GNU/Linux,第二项选择IA32 GNU/Linux即可。

此主题相关图片如下:

  Android内核源代码:linux-2.6.23-android-m5-rc14.tar.gz 下载地址:http://code.google.com/p/android/downloads/list
  注意该内核版本要与你选用的模拟器版本尽量一致。

此主题相关图片如下:

  Android SDK 下载地址:http://code.google.com/android/download_list.html

此主题相关图片如下:

1.搭建交叉编译环境

  1) 安装Android SDK: 将android-sdk_m5-rc14_linux-x86.zip解压缩到适当路径下即可使用。本文将其释放至/usr/local/android_sdk_linux路径下,并将其tools路径添加到PATH中:

  $ export PATH=$PATH:/usr/local/android_sdk_linux/tools

  2) 安装交叉编译器:将arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 解压缩至/usr/local/arm-2007q3目录下,并将其bin路径添加到PATH中:

  $ export PATH=$PATH:/usr/local/arm-2007q3/bin

此主题相关图片如下:

  3) 解压缩内核源代码:将linux-2.6.23-android-m5-rc14.tar.gz解压缩,得到kernel文件夹,本文中将其放置在/Android目录下。

2.获取内核编译配置文件

  交叉编译环境搭建好后需要得到android的内核编译参数的配置文件,该文件需要从android sdk 中的模拟器中得到。启动android模拟器,然后通过adb得到模拟器中提供的内核配置文件:

  $emulator &
$adb pull /proc/config.gz

  这时候adb工具会连接模拟器,并从它里面下载一个叫做config.gz的文件到你的当前目录下。将其移动至kernel目录,解压该文件得到config,将其重命名为.config,这样就可以跳过make config而直接得到Makefile所需要的内核配置文件。

  $ gunzip config.gz
$ mv config .config

此主题相关图片如下:

3.修改Makefile

  首先修改第187行,将CROSS_COMPILE值改为arm-none-linux-gnueabi-,这是我们安装的交叉编译工具链的前缀,修改此处意在告诉make在编译的时候要使用该工具链。

此主题相关图片如下:

  然后修改第519、520行,将build id 值注释掉,因为目前版本的android内核不支持该选项。

此主题相关图片如下:

4.开始编译

  在kernel目录下执行make:

  $ make

  除个别警告外编译过程一切顺利,最终在/kernel/arch/arm/boot目录下面生成一个zImage,即为编译好的内核镜像了。

此主题相关图片如下:

此主题相关图片如下:

5.运行该镜像

  $emulator -kernel ~/android/kernel/arch/arm/boot/zImage

若失败则尝试:

$emulator -data ~/android/kernel/arch/arm/boot/zImage

  最终效果如图所示。

此主题相关图片如下:
 

转载于:https://blog.51cto.com/laokaddk/1138410

Google Android操作系统内核编译图文教程相关推荐

  1. Google Maps API v2 android版本开发 国内手机不支持google play Service相关问题解决--图文教程

    Google Maps API v2 android版本开发 国内手机不支持google play Service相关问题解决--图文教程 参考文章: (1)Google Maps API v2 an ...

  2. android谷歌dns设置在哪,安卓手机怎么设置DNS Android手机修改DNS图文教程

    对于PC电脑设置DNS怎么设置笔者相信大家应该有一点定的能力,但是对于运行Android系统的智能手机想必大家都缺乏了解.那么安卓手机怎么设置DNS地址呢?下面百事网小编针对运行Android系统的安 ...

  3. 安卓模拟器Android SDK安装完整图文教程

    步骤 1 2 3 4 5 6 7 8 在最新的Android 4.0.3 R2模拟器中,已经加入了GPU支持,可以支持OpenGL ES 2.0标准,让开发者可以借助模拟器来测试自己的OpenGL游戏 ...

  4. 阿里云服务器如何购买操作步骤(图文教程)

    阿里云是国内第一大云服务器厂商,所以往往我会推荐公司客户优先选择阿里云.毕竟稳定,技术可靠和安全是第一优先考虑的因素.现在来详细介绍下阿里云服务器的选购图文操作步骤. 一.选购阿里云的三种方式 根据站 ...

  5. 怎样上android官方下载,【图文教程】如何安装 iOS/Android(安卓)触动精灵?

    iOS 注意事项 必须越狱. iOS12 及其以上系统只能安装专业版 arm64 版本客户端并且购买专业版授权,专业版授权和标准版授权不通用. iPhone 7 10 系统设备由于越狱问题无法使用触动 ...

  6. VMware虚拟机安装安卓(Android)x86系统图文教程最新版

    来源:合肥电脑维修作者:老刘 在电脑上安装的安卓系统称为"(Android)x86",下载地址为:http://www.android-x86.org/download/,目前最新 ...

  7. 短信 铃声设置成功 android,玩转Android GPhone铃声设置图文教程

    第1页: 昨日,一位同事向笔者问了一个颇具"挑战性"的问题,"HTC G2如何设置铃声".的确对于一款智能手机来说,无论是来电铃声.短信铃声还是脑中铃声的设置都 ...

  8. android studio 3.4教程,android studio3.4安装指南图文教程

    本文为大家分享了android studio3.4安装指南,供大家参考,具体内容如下 1.双击运行Android Studio安装包,点击next 2.第二项为下载官方模拟器,可以勾选也可以不勾选,点 ...

  9. android studio 3安装教程,android studio3.4安装指南图文教程

    本文为大家分享了android studio3.4安装指南,供大家参考,具体内容如下 1.双击运行android studio安装包,点击next 2.第二项为下载官方模拟器,可以勾选也可以不勾选,点 ...

最新文章

  1. cocos lua 加密方案
  2. Easyui入门视频教程 第11集---Window的使用
  3. 自动化运维环境搭建过程
  4. 前后端分离的用户验证原理及Spring Boot + JWT的框架搭建(附完整的框架代码)之二
  5. easyui181版本使用记录
  6. 人脸识别Demo解析C#
  7. 接支付宝支付的那些坑
  8. sublime text3 boxy主题 (本地 压缩包 安装)
  9. 编程猫海龟编辑器 附使用教程
  10. 最新最强短视频SDK——来自RDSDK.COM
  11. Oracle greatest函数
  12. mysql LAST_DAY() 函数
  13. SQL-按照最新时间分组
  14. 苹果手机用stream获取wskey
  15. You can‘t specify target table ‘Person‘ for update in FROM clause
  16. 引用 《金枝欲孽》精彩台词
  17. 关于矩形的边框,以及边框线偶尔不显示的问题
  18. 嵌入式商业智能软件Wyn Enterprise正式步入V5.0时代!
  19. Workbook corruption: seen[2] == 4
  20. 【HBase】HBase的环境搭建及基本使用

热门文章

  1. 深入了解Debug和Release的区别
  2. 洛谷P2759 奇怪的函数
  3. OC基础1:一些基本概念
  4. Ubuntu root 密码忘记-恢复
  5. Android布局_LinearLayout布局
  6. ant 彻底了解(转)
  7. 产品经理最重要的3个能力
  8. 我清华毕业,在龙泉寺写代码
  9. 为什么说去中心化很重要
  10. mysql必须安装在c盘吗_家用冷热水管保温棉必须装吗?水管保温棉选购及安装攻略分享...