黑白测评75103:如何用repo下载android源码 - liujishen的专栏 - CSDN博客

来源:百度文库 编辑:九乡新闻网 时间:2024/04/27 08:24:18

*************************************
1.安装repo前的准备:
*************************************
$ sudo apt-get install git-core gnupg (gnupg实际已自带)

  $ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl

  $ sudo apt-get install zlib1g-dev

  $ sudo apt-get install valgrind (可选,有21M大,我觉得一般人是用不到的)

  $ sudo apt-get install python2.5 (实际上不用装,Ubuntu 8.10已经自带)

  $ sudo apt-get install sun-java5-jdk

  注意,不要用 sun-java6-jdk, 不然在make sdk,具体来说是make doc这一步中,遇到这个错误:

Docs droiddoc: out/target/common/docs/dx

javadoc: error - In doclet class DroidDoc, method start has thrown an

exception java.lang.reflect.InvocationTargetException

com.sun.tools.javac.code.Symbol$CompletionFailure: class file for

sun.util.resources.OpenListResourceBundle not found2. 下载repo脚本,放到/bin目录下,加上可执行权限

|||||||对于公司的机器直接运行如下命令即可:(针对Ubuntu Linux (32-bit x86))||||||||

$ sudo apt-get 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


Required Packages:


Git 1.5.4 or newer and the GNU Privacy Guard.

JDK 5.0, update 12 or higher. Java 6 is not supported, because of incompatibilities with @Override.

flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev (optional), build-essential, zip, curl.


You might also want Valgrind, a tool that will help you find memory leaks, stack corruption, array bounds overflows, etc.


$ sudo apt-get install valgrind


Intrepid (8.10) users may need a newer version of libreadline:


$ sudo apt-get install lib32readline5-dev
*******************************************

2.安装repo:
*******************************************
$ cd ~

$ mkdir bin //在主目录下新建一个bin文件夹

$ echo $PATH //查看环境变量

$ curl http://android.git.kernel.org/repo >~/bin/repo
//下载repo
$ chmod a+x ~/bin/repo


更改PATH:

$ mv ~/repo /bin
***************************************
3.代理设置.
***************************************
因为在公司需要用到代理才能连接外网.所以repo命令也要用到代理设置.具体如下.
因为git的代理是借助其他软件实现的.我们需要下载一个connet.c编译,在新建一个proxy文件。
(1)下载conect.c
下载地址:http://www.newbupt.org/wForum/disparticle.php?boardName=Linux&ID=20184,下载附件内容
(2)gcc -o connect connect.c //编译成目标文件

mv connect ~/bin //移动到~/bin
(3)设置一个wrapper

echo "/home/liu/bin/connect -H http://10.99.60.201:8080 $@" >> ~/bin/proxy //注意不要漏掉$@

chmod +x ~/bin/proxy
(4)完成之后记得执行一下 proxy啊。方法:“. Proxy”
******
proxy的写法还有一个版本,我就是用的这个版本调通的。

1..在目录下/home/liu/bin下新建一个proxy.sh 的文件,内容如下:

#!/bin/sh
# /home/proxy.sh

# http proxy setting
export HTTP_PROXY=10.99.60.201:8080
export http_proxy=$HTTP_PROXY

# set git to use ssh over http proxy
export GIT_SSH="/home/liu/bin/socks-ssh.sh"
export GIT_PROXY_COMMAND="/home/liu/bin/socks-gw.sh"

2.在目录下/home/liu/bin下新建一个socks-ssh.sh文件,内容如下:

#!/bin/sh
# /home/liu/bin/socks-ssh.sh
ssh -o ProxyCommand="/home/liu/bin/socks-gw.sh %h %p" $@

3.在目录下/home/liu/bin下新建一个socks-gw.sh文件.内容如下.

#!/bin/sh
# /home/liu/bin/socks-gw.sh
# This script connects to a HTTP proxy using connect.c
connect -H 10.99.60.201:8080 $@
注意:不要忘记执行一下“. proxy”(中间有空格)

********
****************************************
4.准备完成,开始下载源代码:
****************************************
$ mkdir myandroid      //新建一个存取代码的文件夹

$ cd myandroid      //进入此文件夹

    
在myandroid目录中执行


$ repo init -u git://android.git.kernel.org/platform/manifest.git

  中间会提示输入电子邮件什么的,如果你打算要提交patch的话,用google accounts注册过的邮箱
在myandroid中执行 repo sync就可以开始下载源码了
$ repo sync
下载源代码说明:
如果想拿某个branch而不是主线上的代码,我们需要用-b参数制定branch名字,-m参数制定manifest的名字,比如:

$ repo init -u git://codeaurora.org/platform/manifest.git -b [branch] -m [manifest]
              //设置要同步的目录,地址
$ repo sync        //开始同步源代码,即开始下载

例如:
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b donut -m Q8650BSDCANLYA3170.xml  
$ repo sync            


但是这一步非常慢,这里有些文档中没有的技巧了:



repo 的使用请看repo help。如果只是要学习源码的话,那只用repo sync一个命令就行。repo sync不带参数的话会更新所有子项目,可以repo sync project_path来指定更新项目。 那么project_path在哪可以找到呢?myandroid/.repo/manifests/default.xml (你至少需要先repo init过才有这些东西)