编译Android Gingerbread(2.3)源码

Google开发了gingerbread的源码http://android.git.kernel.org/?p=platform/manifest.git;a=summary,于是把它顺便编译了一把

 

步骤跟之前的2.1,2.2没啥区别

 

developer@ubuntu-atcn:~$ cd /git

developer@ubuntu-atcn:/git$ mkdir android2.3-r1

developer@ubuntu-atcn:/git$ cd android2.3-r1/

developer@ubuntu-atcn:/git/android2.3-r1$ 

developer@ubuntu-atcn:/git/android2.3-r1$ repo init -u git://android.git.kernel.org/platform/manifest.git -b android-2.3_r1

developer@ubuntu-atcn:/git/android2.3-r1$ cat sync.sh 

               #!/bin/bash

               echo "======start repo sync======"

               repo sync

               while [ $? = 1 ]; do

               echo "======sync failed, re-sync again======"

               sleep 3

               repo sync

               done

developer@ubuntu-atcn:/git/android2.3-r1$ sh sync.sh

 

sync结束直接编译

developer@ubuntu-atcn:/git/android2.3-r1$ make

============================================

PLATFORM_VERSION_CODENAME=REL

PLATFORM_VERSION=2.3

TARGET_PRODUCT=generic

TARGET_BUILD_VARIANT=eng

TARGET_SIMULATOR=

TARGET_BUILD_TYPE=release

TARGET_BUILD_APPS=

TARGET_ARCH=arm

HOST_ARCH=x86

HOST_OS=linux

HOST_BUILD_TYPE=release

BUILD_ID=GRH55

============================================

Checking build tools versions...

build/core/main.mk:76: ************************************************************

build/core/main.mk:77: You are attempting to build on a 32-bit system.

build/core/main.mk:78: Only 64-bit build environments are supported beyond froyo/2.2.

build/core/main.mk:79: ************************************************************

build/core/main.mk:80: *** stop.  Stop.

 

这时会有64bit操作系统的问题,这个如果之前2.2编译过master树的时候应该也会碰到,可以修改makefile绕过去。

有五处地方需要修改

./build/core/main.mk

此处修改

ifneq (64,$(findstring 64,$(build_arch)))

ifneq (i686,$(findstring i686,$(build_arch)))

 

./external/clearsilver/cgi/Android.mk
./external/clearsilver/java-jni/Android.mk
./external/clearsilver/util/Android.mk
./external/clearsilver/cs/Android.mk

这4处注释掉

-LOCAL_CFLAGS += -m64

-LOCAL_LDFLAGS += -m64

 

然后就可以编译了。这时发现另一个问题,从2.3开始,需要的JDK从1.5转从1.6,需要更新一下JDK包

 

下面就是漫长的编译过程,直到生成system.img

如果是跑emulator的话,只需要替换ramdisk.img 和system.img就可以了

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值