编译android2.3.5系统源代码与goldfish2.6.29内核笔记

参考博客:http://blog.csdn.net/luoshengyang/article/details/6559955

android2.3.5系统源代码点击这里下载 , 共7个包,解压后6g

VirtualBOX安装ubuntu12.04,下载jdk1.6, 参考这里安装

用linux终端安装以下工具

sudo apt-get install gnupg flex gnupg bison gnupg gperf gnupg libsdl-dev gnupg libesd0-dev libwxgtk2.6-dev build-essential gnupg zip gnupg curl gnupg libncurses5-dev gnupg zlib1g-dev minicom gnupg tftpd gnupg uboot-mkimage expect git-core

如上图所示,mydroid为android源码

连接java,在终端中输入

cd /usr/bin
sudo ln -s -f /usr/lib/jvm/jdk1.6.0_30/bin/jar
sudo ln -s -f /usr/lib/jvm/jdk1.6.0_30/bin/javadoc
sudo ln -s -f /usr/lib/jvm/jdk1.6.0_30/bin/javah

修改文件

cd ~/mydroid
--------------------------------
gedit frameworks/base/libs/utils/Android.mk
将下面这一行
LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)
改为
LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermissive
-----------------------------
gedit build/core/combo/HOST_linux-x86.mk 61行,将
HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0
修改成
HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
--------------------------------

改完直接在终端输入make开始编译,成功后会出现类似如下信息(第一次编译需要两小时左右)

Target system fs image:    out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.img
     Install system fs image: out/target/product/generic/system.img
     Target ram disk: out/target/product/generic/ramdisk.img
     Target userdata fs image: out/target/product/generic/userdata.img
     Installed file list: out/target/product/generic/installed-files.txt 

编译完后要设置模拟器路径
export PATH=$PATH:~/mydroid/out/host/linux-x86/bin
镜像存放位置
export ANDROID_PRODUCT_OUT=~/mydroid/out/target/product/generic
运行模拟器
emulator


编译goldfish2.6.29内核

参考博客:http://blog.csdn.net/luoshengyang/article/details/6564592

在mydroid文件夹内新建文件夹kernel并在终端cd到里面去

下载goldfish2.6.29

git clone http://android.googlesource.com/kernel/goldfish.git
cd  goldfish
git branch -a
git checkout remotes/origin/archive/android-gldfish-2.6.29
(不一定是 remotes/origin/archive/android-gldfish-2.6.29,视git branch -a输出信息而定)

在终端cd到goldfish文件夹中去并修改目录下的makefile文件(注意arm前有空格)

ARCH        ?= arm
CROSS_COMPILE    ?= arm-eabi-

开始编译
make goldfish_defconfig
make

编译成功后会输出如下类似信息

OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready

完成后cd回mydroid,设置

模拟器位置
export PATH=$PATH:~/mydroid/out/host/linux-x86/bin
系统文件位置
export ANDROID_PRODUCT_OUT=~/mydroid/out/target/product/generic
设置内核启动模拟器
emulator -kernel ./kernel/goldfish/arch/arm/boot/zImage &

原文地址:https://www.cnblogs.com/tomboy/p/2711222.html