Android 4.0.1 模拟器内核 最新下载地址及编译步骤

本文提供最新方法指导如何自行编译Android 4.0.1模拟器内核,包括同步源代码、配置及编译步骤。详细介绍了更新的同步地址、正确的方法及注意事项,确保成功自定义模拟器内核。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android 4.0.1已经放出来了,但是其模拟器内核是预编译的bianry。没有提供内核源代码。 想自己编译一个内核,这样子可以改内核代码完,可是找了网上的资料,发现都已经过时了。 本文提供最新的 地址和方法。

由于Android kernel的部分封闭策略,kernel org已经将 android kernel踢出主线。原有的 同步地址已经被重定向,再加上android kernel本身结构的调整,很多原来的同步方法已经不能使用。 下面是最新的方法,适用于编译 android 4.0.1 模拟器的内核 ( qemu kernel, goldfish branch)。


原有的方法大多使用一下地址同步 Android goldfish

  1. $ 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  但是我们可以在 浏览器里输入
    1. Android.git.kernel.org/kernel/common.git  
    它实际上已经被重定向到
    1. Android.googlesource.com/kernel/common.git  
    但是这个repo 里已经不包含 goldfish的分支了。如果同步下来后我们用 git branch -a 将看到只有最新的 3.0 和2.6.39的分支:
    1. $git branch -a  
    2. * (no branch)  
    3.   master  
    4.   remotes/origin/HEAD -> origin/master  
    5.   remotes/origin/Android-2.6.39  
    6.   remotes/origin/Android-3.0  
    7.   remotes/origin/master  

    其实 goldfish分支已经被独立为一个单独的repo:http://Android.googlesource.com/kernel/goldfish.git

    以下是最新的正确的 同步步骤:

    1. $git clone http://Android.googlesource.com/kernel/goldfish.git  
    2. $cd goldfish  
    3. $git branch -a  
    4. * (no branch)  
    5.   master  
    6.   remotes/origin/HEAD -> origin/master  
    7.   remotes/origin/Android-goldfish-2.6.29  
    8.   remotes/origin/master  
    9. $git checkout <pre name="code" class="plain">remotes/origin/Android-goldfish-2.6.29  
     

    编译步骤基本没有变,但需要使用新的config:

    1. $ make ARCH=arm goldfish_armv7_defconfig  
    2. $make ARCH-arm CROSS_COMPILE=arm-eabi-   
    3.   
    4. ...  
    5. OBJCOPY arch/arm/boot/zImage  
    6.   Kernel: arch/arm/boot/zImage is ready  

    然后就可以用着新的kernel img 来启动模拟器了:

    1. $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里的信息和脚本的实现还是有出去的。正确的用法是:

    1. $cd ics/platform  ( your $TOP)  
    2. $prebuild/Android-arm/kernel/rebuild.sh kernel/goldfish/   (刚才同步的goldfish kernel 目录)  
    编译可以顺利完成,并且生成的新的kernel 会被自动拷贝到 prebuild/Android-arm/kernel 里去。但是如果不指定 kernel img 启动,发现用的还是原来自带的的img。
    还是需要再启动 emulator是 用 -kernel 参数 显式的指定编译出来的img:
    1. ./emulator -avd ics -kernel  <$TOP>/prebuilt/Android-arm/kernel/kernel-qemu-armv7  
    这样子的话,google提供的这个脚本根本就是鸡肋了...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值