安卓内核及源码编译

来源:互联网 发布:web前端连接数据库 编辑:程序博客网 时间:2024/04/28 15:48

1.由于安卓源码和内核源码是要分开下载的,这里我找到了2.3.5版本的源码和内核,测试可以用

内核:http://pan.baidu.com/s/1qW0TkkO

源码:http://pan.baidu.com/share/link?shareid=7577&uk=4246628909



2.下载后解压

目录结构,这里我直接把内核源码放在android系统源码中




3.新建SDK emulator的脚本方便编译后直接刷入我们的内核

# EXPORT SDK ENVexport ANDROID_SRC_HOME=/home/linux/Applications/android_2.3.5export ANDROID_PRODUCT_OUT=$ANDROID_SRC_HOME/out/target/product/genericexport PATH=$PATH:$ANDROID_SRC_HOME/out/host/linux-x86/bin# EXPORT GCCexport PATH=$PATH:$ANDROID_SRC_HOME/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin# EXCUTE EMULATORemulator -kernel $ANDROID_SRC_HOME/kernel/arch/arm/boot/zImage

4.编译内核


进入kernel目录

make goldfish_defconfig

前提是将上面的GCC导入PATH中,其中内核的Makefile文件的gcc编译器已经指定好了


5.编译安卓源码

这里是参考之前我介绍的embedded android

(1)安装依赖库

$ sudo apt-get install bison flex gperf git-core gnupg zip tofrodos \> build-essential g++-multilib libc6-dev libc6-dev-i386 ia32-libs mingw32 \> zlib1g-dev lib32z1-dev x11proto-core-dev libx11-dev \> lib32readline5-dev libgl1-mesa-dev lib32ncurses5-dev

$ sudo ln -s /usr/lib32/libstdc++.so.6 /usr/lib32/libstdc++.so$ sudo ln -s /usr/lib32/libz.so.1 /usr/lib32/libz.so

(2)编译

$ cd ~/android/aosp-2.3.x$ . build/envsetup.shincluding device/acme/coyotepad/vendorsetup.shincluding device/htc/passion/vendorsetup.shincluding device/samsung/crespo4g/vendorsetup.shincluding device/samsung/crespo/vendorsetup.sh$ lunchYou're building on LinuxLunch menu... pick a combo:1. generic-eng2. simulator3. full_passion-userdebug4. full_crespo4g-userdebug5. full_crespo-userdebugWhich would you like? [generic-eng] ENTER

$ make -j2

编译之前确定你的系统是的gcc是4.4,以及安装好jdk1.6


6.启动系统和内核

./emulator.sh

补充一点

我们可以在控制台打印内核的信息,修改emulator.sh

# EXPORT SDK ENVexport ANDROID_SRC_HOME=/home/linux/Applications/android_2.3.5export ANDROID_PRODUCT_OUT=$ANDROID_SRC_HOME/out/target/product/genericexport PATH=$PATH:$ANDROID_SRC_HOME/out/host/linux-x86/bin# EXPORT GCCexport PATH=$PATH:$ANDROID_SRC_HOME/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin# EXCUTE EMULATORemulator -kernel $ANDROID_SRC_HOME/kernel/arch/arm/boot/zImage -show-kernel -logcat d


内核信息被刷过去了,自己操作观察吧



这里我们选择了安卓2.3.5,不仅它经典,关键是好编译,我也试过高版本的android源码,可惜我的笔记本性能差(赛扬),不过,如果你要探究android源码的话2.3.5还是不错的选择,我看过基本国外的教材,基本都是以2.3~






0 0