Android 4.2 r1 源码在Ubuntu上编译和 模拟运行


前提:代码已经准备好。

首先要设定环境:

USER@Android_ROOT: source ./build/envsetup.sh

这个命令设定后下一条命令才可以执行:

USER@ANDROID_ROOT: lunch full-eng

这个设定了很多环境变量,不管是编译还是模拟都要用到,

然后开始编译

make -j2

-j后面带的数字有电脑的CPU决定,如有双CPU每个CPU有4个核 则 make -j8.

编译的时间很漫长,完了后就可以开始模拟运行了

emulation

注意:如果下次打开Ubuntu的终端想要再运行模拟器,要把上面两个设置环境命令再运行一次:

USER@ANDROID_ROOT: source ./build/envsetup.sh

USER@ANDROID_ROOT: lunch full-eng

否则的话会报错 ,说emulator找不到。

另外编译自己的内核 :

1. 拉模拟器的内核代码:

git clonehttps://android.googlesource.com/kernel/goldfish.git

git branch -r

gitcheckout origin/android-goldfish-2.6.29

2. 拉编译环境,并设置环境路径

$ git clonehttps://android.googlesource.com/platform/prebuilt

这个prebuilt目录建议放到android目录下面 ,和kernel同级 $ export PATH=$(pwd)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH

把prebuild设置到环境路径

3. 建立一个shell文件叫make_goldfish.sh 里面加入内容:

#!/bin/bash export ARCH=arm export SUBARCH=arm export CROSS_COMPILE=arm-eabi- makegoldfish_armv7_defconfig make -j2

即开始编译,(确保prebuild设置到环境路径)

4.使用自己的内核运行android模拟:

USER@ANDROID_ROOT: emulator -kernel./kernel/goldfish/arch/arm/boot/zImage -shell

说明:./kernel/goldfish是我的kernel源代码目录

-shell 是在当前终端打开adb shell

也可以另开终端窗口执行 adb shell (要保证本文最开始的两条设置命令已经运行过)

至此,android内核的调试之路正式开始 。

相关内容