网络上已经有很多关于如何下载源码的方法介绍了。
我这里根据自己的实践(搭建两次Android 源码编译环境,并编译),记录一下手顺,方便自己记忆。
操作系统, 我装的ubuntu10.10 desktop. 在vmware 和 真实的x86都试过。
1.安装 需要的软件和库:
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev
2. 安装 repo
$ mkdir ~/bin $ PATH=~/bin:$PATH
$ curl http://android.git.kernel.org/repo > ~/bin/repo $ chmod a+x ~/bin/repo
3.初始化 repo 客户端:
A. 创建一个文件夹: myandroid
$ mkdir myandroid
$ cd myandroid
B. 下载manifest.xml 等文件
$ repo init -u git://android.git.kernel.org/platform/manifest.git
(这一步可能会报告repo的错误,此时需要将第2步中下载的repo文件删除,重新执行
$ curl http://android.git.kernel.org/repo > ~/bin/repo
$ chmod a+x ~/bin/repo)
4. 修改 manifest.xml 文件, 因为有可能git无法使用,需要将git改成http。在myandroid下,我们可以看见隐藏的.repo文件夹,这个文件夹下有一个manifest.xml文件,打开这个文件将这个文件, 将fetch="git ://android.git.kernel.org/" 改成fetch="http ://android.git.kernel.org/"。
5.同步
在myandroid 下执行 repo sync
过个一两个小时就可以下载完代码,我用的是ADSL 2M的,下载了一个多小时。
同步好代码后, 开始编译。 到myandorid 下执行make, 发现会报出 用32为系统编译的错误,这时我们只需要修改一些makefile就可以把这个错误搞定,具体的文件如下。
A. myandorid/build/core/main.mk
ifeq ($(BUILD_OS),linux) build_arch := $(shell uname -m) ifneq (64 ,$(findstring 64 ,$(build_arch)))
修改成:
ifeq ($(BUILD_OS),linux) build_arch := $(shell uname -m) ifneq (i686 ,$(findstring i686 ,$(build_arch)))
B. myandroid/external/clearsilver/cgi/Android.mk, myandroid/external/clearsilver/java-jni/Android.mk, myandroid/external/clearsilver/util/Android.mk, myandroid/external/clearsilver/cs/Android.mk
将这些文件里面的 LOCAL_CFLAGS += -m64 LOCAL_LDFLAGS += -m64 修改成: LOCAL_CFLAGS += -m32 LOCAL_LDFLAGS += -m32