下载编译android源码(4.0.3)内核(ubuntu11.04)

来源:互联网 发布:现在软件学什么好 编辑:程序博客网 时间:2024/05/19 23:28

1.    环境配备

首先,准备好所需要的linux操作系统以及磁盘空间,磁盘空间要足够大。memory >1G,hard disk> 40G

1.1.  安装JDK1.6:sudo apt-get install sun-java6-jdk

1.2.   安装开发过程中需要的一些开发包

sudo apt-get install git-core gnupg valgrind flex bison gperf libsdl-dev libesd0-devlibwxgtk2.6-dev build-essential zip libncurses5-dev zlib1g-dev

若自带的源里面找不到所需要的安装包,可以添加软件源:

添加源的过程:

①   备份当前的源列表sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

②   修改 sudo gedit /etc/apt/sources.list

③   修改之后保存更新 sudo apt-get update

准备好了获取android源码所需要的环境,下面开始获取android源码

 

2.获取android源码

2.1.   在用户目录下新建一个文件夹来存放我们的android目录

①  mkdir android

②  cd android

③  mkdir bin

④  cd bin

⑤  安装repo, 通过curl下载repo:curl http://git-repo.googlecode.com/files/repo-1.17 > repo

(如果没有安装curl,sudo apt-get install curl)

sudo chmod a+x repo

⑥  然后向PATH中添加bin路径:exportPATH=$PATH:~/bin

2.2.   建立存放android源代码目录source

①  mkdir source

②  cd source

③  获取git上的android源码版本: ../bin/repo init -uhttps://android.googlesource.com/platform/manifest -b android-4.0.3_r1

④  当出现提示时,请配置您的真实姓名和电子邮件地址回购。使Gerrit代码审查工具,将需要注册的Google户连接的电子邮件地址。确保这是一个激活活的地址上,你可以接收邮件。你在这里所提供的名称将显示在您的代码提交的属性中,完成之后出现“repoinitialized in/home/***(自己用户名)/android”,则表示初试化完毕,可以开始下载,在Repo初始化完毕后,会产生一个隐藏的目录”.repo”,通过查看此目录下的manifest文件可以看到相应的Project。

⑤  在终端执行命令开始下载: ../bin/reposync

3.下载android内核

新建存放android内核的目录

①mkdir kernel

②cd kernel

③android的kernel有多个部分,可根据需要运行以下命令下载需要的内容。git clone https://android.googlesource.com/kernel/goldfish.git 

下载android内核时间会比下载源码时间短,需要注意的是,android内核的下载不能被中断,而android源码支持断点下载。下载的内容是隐藏的,用du –sk命令来检测文件夹的大小

4.编译android源码

编译。在Android/source目录下执行以下命令:make

第一次编译要等待比较久的时间,编译成功后,可以看到下面的输出:

编译的时间一般不会比下载的时间长。在默认的情况下,编译完成之后,会在/root/android目录下面生成一个out文件夹,生成的所有文件都放在该文件夹下。编译生成之后会在out/target/product/generic/目录下生成一些.img镜像文件

5. 编译android内核

5.1.   确定内核的版本

进入存放android内核源码的kernel目录,我下载了goldfish.git,进入goldfish目录,在命令行输入以下命令,显示所有分支及当前所在的分支:
$git branch -a

输入以下命令选择当前的版本(goldfish为android的模拟器描述的CPU):

$git checkout -b android-goldfish-2.6.29origin/android-goldfish-2.6.29

再次输入命令git branch -a,将会显示刚刚选择的最新分支,表示目前工作在这个被选择的分支上,输出如下:



5.2.   设定环境变量

export PATH=$PATH:~/android/source/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/:$PATH

export ARCH=arm

export CROSS_COMPILE=arm-eabi-

5.3.   编译内核源码

设置完之后,就是编译android内核源码了,进入kernel目录,输入以下命令

$make ARCH=arm goldfish_armv7_defconfig

$make

第一条命令为编译时的默认配置文件。如果不执行这条命令,编译时可能会提示“找不到配置文件”。第一条命令执行完后,会在goldfish目录下生成一个.config文件。之后便是一段时间的等待了。。。时间不长,一会即可编译好,比编译android源码时间要少得多。编译完成之后,会在“kernel/arch/arm/boot/”目录下生成名为zImage的文件。

6. 运行android系统

加载我们编译的android kernel镜像:

设置路径

export PATH=$PATH:~/android/source/out/host/linux-x86/bin/

export ANDROID_PRODUCT_OUT=~/android/source/out/target/product/generic/

加载:emulator–kernel ./kernel/goldfish/arch/arm/boot/zImage




原创粉丝点击