编译Android1.6(Donut) Emulator的内核

来源:互联网 发布:wampserver 域名 编辑:程序博客网 时间:2024/06/05 00:24

编译Android1.6(Donut) Emulator的内核

SDK更新内核到了2.6.29,我们可以自己来编译一个。
首先,你需要下载最新的Android Emulator的内核代码,它位于“Common Android Kernel Tree”

  1. mkdir kernel
  2. cd kernel
  3. git clone git://android.git.kernel.org/kernel/common.git
  4. cd common
  5. git checkout origin/android-goldfish-2.6.29 -b android-goldfish-2.6.29

然后,你还需要一个gcc编译器来编译kernel,它位于你的Android repo目录下,eg:prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/。如果你还没有初始化你的repo,那么开始吧:

  1. mkdir mydroid
  2. cd mydroid
  3. repo init -u git://android.git.kernel.org/platform/manifest.git
  4. repo sync

好了,准备环境变量还是编译:

  1. export PATH=$PATH:<REPO_ROOT>/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/
  2. export ARCH=arm
  3. export CROSS_COMPILE=arm-eabi-
  4. make goldfish_defconfig
  5. make

编译完成后,你就会得到Emulator的内核:arch/arm/boot/zImage。把他命名为kernel-qemu,替代SDK1.6的kernel-qemu(platforms/android-1.6/images/kernel-qemu),当然,你也可以直接将这个内核拷贝的AVD的目录(e.g.$HOME/.android/avd/donut.avd/kernel-qemu)。这样,再次运行Emulator,他就会使用新的内核了。

emulator: argv[00] = "./emulator"
emulator: argv[01] = "-kernel"
emulator: argv[02] = "/home/william/.android/avd/donut.avd/kernel-qemu"
....
UncompressingLinux.........................................................................................done, booting the kernel.
原创粉丝点击