Android4.0.1 模拟器内核 最新下载地址及编译步骤
来源:互联网 发布:linux源码怎么看 知乎 编辑:程序博客网 时间:2024/04/29 08:31
Android 4.0.1已经放出来了,但是其模拟器内核是预编译的bianry。没有提供内核源代码。 想自己编译一个内核,这样子可以改内核代码完,可是找了网上的资料,发现都已经过时了。 本文提供最新的 地址和方法。
由于android kernel的部分封闭策略,kernel org已经将 android kernel踢出主线。原有的 同步地址已经被重定向,再加上android kernel本身结构的调整,很多原来的同步方法已经不能使用。 下面是最新的方法,适用于编译 android 4.0.1 模拟器的内核 ( qemu kernel, goldfish branch)。
原有的方法大多使用一下地址同步 android goldfish kernel:
$ git clone git://android.git.kernel.org/kernel/common.git$ cd common$ git branch -a$git checkout remotes/origin/archive/android-gldfish-2.6.29
但是我们可以在 浏览器里输入
android.git.kernel.org/kernel/common.git
它实际上已经被重定向到
android.googlesource.com/kernel/common.git
但是这个repo 里已经不包含 goldfish的分支了。如果同步下来后我们用 git branch -a 将看到只有最新的 3.0 和2.6.39的分支:
$git branch -a* (no branch) master remotes/origin/HEAD -> origin/master remotes/origin/android-2.6.39 remotes/origin/android-3.0 remotes/origin/master
其实 goldfish分支已经被独立为一个单独的repo:http://android.googlesource.com/kernel/goldfish.git
以下是最新的正确的 同步步骤:
$git clone http://android.googlesource.com/kernel/goldfish.git$cd goldfish$git branch -a* (no branch) master remotes/origin/HEAD -> origin/master remotes/origin/android-goldfish-2.6.29 remotes/origin/master$git checkout <pre name="code" class="plain">remotes/origin/android-goldfish-2.6.29
编译步骤基本没有变,但需要使用新的config:
$ make ARCH=arm goldfish_armv7_defconfig$make ARCH-arm CROSS_COMPILE=arm-eabi- ...OBJCOPY arch/arm/boot/zImage Kernel: arch/arm/boot/zImage is ready
然后就可以用着新的kernel img 来启动模拟器了:
$emulator -kernel ...../kernel/goldfish/arch/arm/boot/zImage &
启动模拟器,到 Setting => About 去看,kernel的确编程我们自己编译的版本。 可以手工了。
另外,Google 似乎有意提供一个简单脚本来编译 kernel,可以看看 external/qemu/docs/ANDROID-KERNEL.TXT 有提到那个 distrib/rebuild-kernel.sh.
但搜索后这个文件并不存在。最接近的两个脚本是 prebuild/android-arm/kernel/rebuild.sh.
但是这个脚本明显的是个半成品,--help里的信息和脚本的实现还是有出去的。正确的用法是:
$cd ics/platform ( your $TOP)$prebuild/android-arm/kernel/rebuild.sh kernel/goldfish/ (刚才同步的goldfish kernel 目录)
编译可以顺利完成,并且生成的新的kernel 会被自动拷贝到 prebuild/android-arm/kernel 里去。但是如果不指定 kernel img 启动,发现用的还是原来自带的的img。
还是需要再启动 emulator是 用 -kernel 参数 显式的指定编译出来的img:
./emulator -avd ics -kernel <$TOP>/prebuilt/android-arm/kernel/kernel-qemu-armv7
这样子的话,google提供的这个脚本根本就是鸡肋了...
- Android4.0.1 模拟器内核 最新下载地址及编译步骤
- Android4.0.1 模拟器内核 最新下载地址及编译步骤
- Android4.0.1 模拟器内核 最新下载地址及编译步骤
- Android4.0.1 模拟器内核 最新下载地址及编译步骤
- Android4.0.1 模拟器内核 最新下载地址及编译步骤
- Android 4.0.1 模拟器内核 最新下载地址及编译步骤
- Android4.2模拟器kernel下载及编译-linux kernel3.4.0
- Android4.2模拟器kernel下载及编译-linux kernel3.4.0
- Android4.0.1源码及内核编译效果
- Android4.0.1 源码下载,模拟器编译和运行
- Android4.0.1 源码下载,模拟器编译和运行 .
- Android4.0.1 源码下载,模拟器编译和运行
- 最新版本的MOBILE 6.0 SDK下载地址及中文模拟器下载地址
- CyanogenMod 11.0模拟器goldfish的编译方法及下载地址
- CyanogenMod 11.0模拟器goldfish的编译方法及下载地址
- android4.3下载及编译
- CentOS7下内核源码下载及编译步骤
- android4.4系统源码下载编译经验分享及总结(2014最新实践)
- 一位女性程序员的故事
- Android学习笔记10
- KVO/KVC
- android Bitmap 相关
- _beginthreadex 线程 函数 解决假死
- Android4.0.1 模拟器内核 最新下载地址及编译步骤
- Jquery主要控件的取值、赋值,包括textbox,button,lable,radio,checkbox,selected
- 创业公司感悟录之十个提醒
- 运算符
- 常用几种禁止修改输入框的方法
- mmc驱动工作流程
- Android Audio System 之一 Audio (1) AudioTrack如何与AudioFlinger交换音频数据
- 如何使用C#与XML创建动态分层菜单
- Android获取电池信息