编译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 &