安卓内核及源码编译
来源:互联网 发布: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
- 安卓内核及源码编译
- 安卓5.0源码编译及烧录到真机
- 编译安卓源码以及下载Android内核
- iTOP4412内核源码编译与安卓ndk应用编程
- 安卓编译与开发、Linux内核及驱动
- 安卓源码编译
- 安卓源码编译
- 编译安卓源码
- 安卓源码+内核修改编译(修改内核调试标志绕过反调试)
- 安卓内核编译流程
- Android内核开发 内核模块编程编译及安卓虚拟机测试
- 安卓源码下编译
- 安卓7.0源码编译
- Android4.0.1源码及内核编译效果
- Android 及内核源码下载编译
- ubuntu 内核源码下载及编译
- 安卓源码阅读--源码编译
- fedora 14编译安卓内核
- python入门笔记(Day7)--slots,@property,MixIn,定制(str,iter,getitem,getattr,call)枚举(Enum)元type,metaclass,ORM
- Spring Security
- Service基础(一)---》使用服务Service
- MapReduce产生RCFile文件在HDFS,HIve将RCFile文件加载到hive的表中
- python基础之字符串
- 安卓内核及源码编译
- RadioGroup调用check(id)方法时,onCheckedChanged方法被执行多次解决办法
- Mapreduce RCFile写入和读取API示例
- linux 下 opengl的安装
- 二叉堆
- 算法与数据结构学习资源大搜罗——良心推荐
- 分布式java shiro、maven、Bootstrap、Bootstrap、SpringMVC、Mybatis、Hibernate
- NOIP2015 解题报告
- String to Integer (atoi)