Android源代码下载和编译:
http://source.android.com/source/initializing.html
按照官方指导,成功Build!
Android开发环境的搭建:
http://developer.android.com/sdk/installing.html
实际上很简单,就四步:
1. 安装JDK,
2. 下载Android SDK,
3. 安装Eclipse(安装插件ADT),
4. 通过ADT将SDK配置进来(Window->Preferences->Android->SDK Location),
5. 通过SDK附带的Android SDK Manager来进行SDK的管理(Window->Android SDK Manager)。
Android内核下载和编译:
背景知识:
Android模拟器运行需要四个文件,分别是:
Kernel镜像:zImage,和Android镜像文件:system.img、userdata.img、ramdisk.img。
执行emulator命令时,如果不带任何参数,则Kernel镜像默认使用Android源码目录下的/prebuilt/android-arm/kernel下的kernel-qemu,而Android镜像文件则默认使用ANDROID_PRODUCT_OUT目录下的system.img、userdata.img、ramdisk.img。
当然,我们也可以指定镜像文件来运行模拟器:
emulator -kernel ./prebuilt/android-arm/kernel/kernel-qemu -sysdir ./out/target/product/generic -system system.img -data userdata.img -ramdisk ramdisk.img
一、下载Kernel源代码
官方文档:
http://source.android.com/source/initializing.html
只提到了Kernel的下载,其中goldfish对应的是emulator的Kernel,其它的都是针对各个硬件平台的Kernel,例如msm是高通的,omap是TI的,等等。针对各个硬件平台的Kernel不一定都能build成功,需要做大量的移植工作。所以我们一般都只进行emulator,也就是goldfish的build。
注意:git clone之后,记得git checkout才能拿到指定branch的源代码。
二、准备Tool Chain
首先我们需要准备build kernel需要的tool chain,其实在Android源码目录下的/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin已经提供了一整套tool chain,当然我们也可以单独下载tool chain,只能下载免费的Lite版本,:
http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/
下载“ARM processors”标题下面的“Download the EABI Release”。
下载之后得到一个压缩包,直接解压就可以,并把所在的路径export到~\.bashrc中:
export PATH=$PATH:<tool chain所在的路径>/bin
如果你使用Android源码中提供的tool chain,也需要把所在的路径export到~\.bashrc中:
export PATH=$PATH:~/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin
保存后,记得同步变化:
$ source ~/.bashrc
三、修改Kernel的Makefile
打开kernel目录下的Makefile文件,进行下面的修改:
1. ARCH ?= 的值设定为: ARCH ?= arm
2. CROSS_COMPILE ?= 的值设定为tool chain的前缀:CROSS_COMPILE ?= arm-eabi-(Android源码的Tool Chain)或者arm-none-linux-gnueabi-(自己下载的Tool Chain)
四、生成.config文件
Linux支持多种平台架构,在Kernel源码的arch目录下,已经将各种平台架构的源码分门别类。为了配置方便,在各种平台架构的目录下,一般都配有一个名为configs的目录。其中,放置着许多已经初步配置好的defconfig文件。
比如我们需要编译arm架构的内核,那我们就可以从arch/arm/configs/中找到各种具体芯片_defconfig,例如,高通的msm_defconfig等等。
Kernel在build时需要根目录里面的.config文件,该文件有以下几种方式获得:
1. 可以通过adb pull /proc/config.gz获得,并gunzip config.gz得到。
2. 可以通过make defconfig,前提是该defconfig已经存在,实际上就是:cp arch/arm/configs/defconfig .config。
3. 可以通过make menuconfig,进行图形化界面的设定。
五、生成Kernel的映像文件为:
~/kernel-goldfish/arch/arm/boot目录下的zImage
本文详细介绍了Android源代码的下载和编译过程,包括如何搭建Android开发环境,涉及JDK、Android SDK、Eclipse和ADT的安装与配置。同时,文章讲解了Android内核的下载、Tool Chain的准备、Makefile的修改,以及.config文件的生成方法,最终目标是编译生成Kernel的zImage。

4626

被折叠的 条评论
为什么被折叠?



