1. 下载 些工具,在编译之前 git-core 和 curl 是必需的
$ sudo apt-get install git gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ libgl1-mesa-dev g++-multilib mingw32 tofrodos ncurses-dev \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386
2 安装java6
注意:openjdk不推荐使用,编译中可能造成混淆及功能缺失。通过以下命令卸载openjdk,
$ sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
2.1 添加apt 源
sudo add-apt-repository "deb http://ppa.launchpad.net/ferramroberto/java/ubuntu natty main" & sudo apt-get update2.2 添加partner源
sudo add-apt-repository "deb http://archive.canonical.com/ubuntu maverick partner" & sudo apt-get update
2.3 安装 java6-jre
$ sudo apt-get install sun-java6-jre sun-java6-plugin2.4 安装 java6-jdk
$ sudo apt-get install sun-java6-jdk sun-java6-plugin
$ java -version显示信息如下:
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Server VM (build 20.1-b02, mixed mode)
3. 执行curl
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo就报告网络不可达,用了类似下面的代理设置后, curl加上 -v 参数启用代理功能,还是不能连接。
class="pln">HTTP_PROXYclass="pun">
=116.228.55.184:80; $ curl -v https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
可以到 http://code.google.com/p/git-repo/downloads/list 下载一个保存为 ~/bin/repo
或者使用下面命令,具体版本号参考前面网页中显示的最新版本号。
4. 建立并进入android源代码目录
5. 执行 repo init 准备下载最新版本android代码,用下面命令准备下载主干(main / trunk)版本
$ repo init -u https://android.googlesource.com/platform/manifest
(如果不能下载,试用http链接 $ repo init -u http://android.googlesource.com/platform/manifest )
或是用以下命令下载指定分支(branch)
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
(如果不能下载,试用http链接 $ repo init -u http://android.googlesource.com/platform/manifest -b android-4.0.1_r1 )
如果 repo没有找到 branch 参数指出分支版本,就会输出大量信息,其中有可以下载分支的列表,由于内容过长,请参考http://blog.csdn.net/tonyfield/article/details/9734031
实际操作中,获得错误报告:fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle,
这个地址和你看到的可能不同,但肯定是 ~/bin/repo 第5行或第6行REPO_URL 所表示的网址。
stockoverflow上有贴提及是代理环境变量造成的问题,想到前面尝试过设置 HTTP_PROXY,用下面的指令清除,HTTPS_PROXY 存在的话也要清除 HTTPS_PROXY。
unset HTTP_PROXY
unset HTTPS_PROXY
然后repo init成功。。。,
如果遇到报错:fatal: '../platform/abi/cpp.git' does not appear to be a git repository
在.repo目录下的manifest.xml里找到fetch属性,改成
fetch="git://Android.git.linaro.org/"
提示输入你的姓名 及 邮件地址,你想要使用Gerrit code-review 工具的话就要用你申请的 Google账户使用的邮件地址,没有的话去申请一个,不用花多少时间。
Your Name [XXXXXX]: XXXXXX
6. repo 信息下载后,用 “repo sync”命令将真正的Android代码同步到当前工作目录显示下载状态类似下面
如果repo 操作中遇到网络连接问题,可以通过修改hosts文件尝试解决。Windows在C:\WINDOWS\system32\drivers\etc目录下,Linux用户打开/etc/hosts文件,在文件的末尾添加下面2句:
74.125.31.82 www.googlesource.com.
74.125.31.82 android.googlesource.com