- 论坛徽章:
- 0
|
从 http://android.git.kernel.org/ 查看各个分支及其TAG
- mkdir /android; cd /android
- curl http://android.git.kernel.org/repo > repo
# repo上android的下载源码脚本 - mkdir -p /android/cupcake_release; cd /android/cupcake_release
- ../repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake-release
- ../repo sync
- mkdir /android/cupcake_kernel; cd /android/cupcake_kernel
- git clone git://android.git.kernel.org/kernel/linux-2.6.git
- #cat include/linux/version.h 查看版本号,2.6.31版本
- cd linux-2.6; git branch; 查看分支
- vi Makefile : 设置 ARCH和CROSS_COMPILE为 arm/ arm-eabi-
- make ARCH=arm menuconfig 尝试编译。
- vic.c 加入 头文件引用。
- make CROSS_COMPILE=arm-eabi-
- sudo apt-get -y install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind g++ sun-javadb-javadoc
- export JAVA_HOME=/usr/lib/jvm/java-5-sun
- export JRE_HOME=${JAVA_HOME}/jre
- export ANDROID_JAVA_HOME=$JAVA_HOME
- export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATH
- export ANDROID_HOME=/android/cupcake_release
- export ANDROID_PRODUCT_OUT=$ANDROID_HOME/out/target/product/generic
- export PATH=$PATH:$JAVA_HOME/bin:${JRE_HOME}/bin:$ANDROID_HOME/out/host/linux-x86/bin:$ANDROID_HOME:/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin
- sudo update-alternatives --config javac [java/javadoc]
#配置使用 java-5-sun的配置。
- 编译make (make sdk)
- cd $ANDROID_HOME; make #修改做部分修改,详情看最后
- 编译完成后,使用模拟器进行测试。
模拟器
./android create avd -n NO1 -t 1
./androld list avd
./emulator -avd NO1
调试桥
./adb remount
./adb shell
根文件系统
目录在 out/target/product/generic/ 下
从模拟器中获取默认配置文件
adb pull /proc/config.gz /tmp; cd /tmp
gunzip config.gz
mv config /android/cupcake_kernel/.config
测试配置文件
cd /android/cupcake_kernel
make ARCH=arm menuconfig
make CROSS_COMPILE=arm-eabi-
- 初始化完成,进行第二步,内核的移植,搭载idea 6410 自带的rootfs
==== 编译android时需要改动的源码地方 BEGIN===
E: ‘EAI_NODATA’ undeclared
S: vi external/qemu/Makefile.android
ifeq ($(HOST_OS)-$(HOST_ARCH),linux-x86)
- MY_CFLAGS += -Wa,--32
+ MY_CFLAGS += -Wa,--32 -D_GNU_SOURCE
endif
E: cupcake battery bug
S: vi frameworks/base/services/java/com/android/server/BatteryService.java
private final void sendIntent() {
// Pack up the values and broadcast them to everyone
+ mBatteryLevel = 100;
==== 编译android时需要改动的源码地方 END ===
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/90973/showart_2067217.html |
|