如何不翻墙下载Android代码

来源:互联网 发布:数控编程培训教程 编辑:程序博客网 时间:2024/05/29 13:02
http://blog.csdn.net/sunao2002002/article/details/47869281
如何不翻墙下载Android代码


分类: Android 2015-08-23 01:27 1950人阅读 评论(2) 收藏 举报
不翻墙下载Android代码免VPN
由于众所周知的原因,在国内是无法访问谷歌的服务器的,更不用说下载十几个G的Android版本代码了。幸好国内一些一流高校如清华大学和中科大都提供了Android AOSP代码的镜像服务,可以不用翻墙就可以下载Android代码。下面就以清华大学的源为例描述下如何不翻墙下载Android代码。


1、下载Repo
可以使用原先下载好的repo,如果没有现成的repo或者无法从google下载,可以通过git clone从清华的源上下载。
[plain] view plaincopyprint?
git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/
命令执行完后,在当前目录会出现git-repo文件夹,其中就有我们需要的repo,将其拷贝到环境变量PATH定义的路径中,并给其加上可执行权限。
[plain] view plaincopyprint?
mkdir -p ~/bin  
export PATH=~/bin/:$PATH  
cd git-repo  
cp repo ~/bin/  
chmod a+x ~/bin/repo  






2、修改Repo中得REPO_URL
将repo文件中的
[plain] view plaincopyprint?
REPO_URL = 'https://gerrit.googlesource.com/git-repo'  
修改为:
[plain] view plaincopyprint?
REPO_URL = 'git://aosp.tuna.tsinghua.edu.cn/android/git-repo'  




3、repo init
执行repo init -u 指令下载manifest
将从google下载的指令:
[plain] view plaincopyprint?
repo init -u https://android.googlesource.com/platform/manifest  
改为清华的源:
[plain] view plaincopyprint?
repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest  


同原先一样,如果需要按branch下载,加上-b branch_name即可,如:
[plain] view plaincopyprint?
repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-5.1.1_r9  
repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-4.4_r1








 * [new tag]         studio_1.0.0 -> studio_1.0.0
 * [new tag]         studio_1.0.1 -> studio_1.0.1
 * [new tag]         ub-jack-arzon-mr2 -> ub-jack-arzon-mr2
 * [new tag]         webview-m40_r1 -> webview-m40_r1
 * [new tag]         webview-m40_r2 -> webview-m40_r2
 * [new tag]         webview-m40_r3 -> webview-m40_r3
 * [new tag]         webview-m40_r4 -> webview-m40_r4


Traceback (most recent call last):
  File "/home/rootroot/wyb/nexus5_android4.4/.repo/repo/main.py", line 531, in <module>
    _Main(sys.argv[1:])
  File "/home/rootroot/wyb/nexus5_android4.4/.repo/repo/main.py", line 507, in _Main
    result = repo._Run(argv) or 0
  File "/home/rootroot/wyb/nexus5_android4.4/.repo/repo/main.py", line 180, in _Run
    result = cmd.Execute(copts, cargs)
  File "/home/rootroot/wyb/nexus5_android4.4/.repo/repo/subcmds/init.py", line 395, in Execute
    self._ConfigureUser()
  File "/home/rootroot/wyb/nexus5_android4.4/.repo/repo/subcmds/init.py", line 289, in _ConfigureUser
    name  = self._Prompt('Your Name', mp.UserName)
  File "/home/rootroot/wyb/nexus5_android4.4/.repo/repo/project.py", line 703, in UserName
    self._LoadUserIdentity()
  File "/home/rootroot/wyb/nexus5_android4.4/.repo/repo/project.py", line 716, in _LoadUserIdentity
    u = self.bare_git.var('GIT_COMMITTER_IDENT')
  File "/home/rootroot/wyb/nexus5_android4.4/.repo/repo/project.py", line 2644, in runner
    p.stderr))
error.GitError: manifests var: 
*** Please tell me who you are.


Run


  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"


to set your account's default identity.
Omit --global to set the identity only in this repository.


fatal: unable to auto-detect email address (got 'rootroot@rootroot-desktop.(none)')


rootroot@rootroot-desktop:~/wyb/nexus5_android4.4$ 








git config --global user.email wb4916@qq.com
git config --global user.name wb4916








4、同步
repo sync,清华大学的源上是有并发限制的,每个IP限制并发数为4 ,最大-j4,为了在下载出错的时候能够重新同步,可以通过以下脚本执行同步命令:
[plain] view plaincopyprint?
export PATH=~/bin:$PATH  
repo sync -j2  
if [  "$?" != "0" ]; then  
    sleep 30  
    repo sync -j2  
fi  


这样就可以无需翻墙下载Android AOSP源代码了,而且速度还挺快。


附1:对于已从Google下载的源码,可以通过修改代码目录中的 .repo/manifest.xml 文件,改从清华的源同步。(-表示删除,+表示增加)
[html] view plaincopyprint?
<manifest>  
  
   <remote  name="aosp"  
-           fetch="https://android.googlesource.com"  
+           fetch="git://aosp.tuna.tsinghua.edu.cn/android/"  
            review="android-review.googlesource.com" />  
  
   <remote  name="github"  


附2:下载Cyanogenmode的代码
CM代码由两部分组成:CM自身代码和Android AOSP代码。CM自身代码无需翻墙即可同步,而AOSP代码需要翻墙下载。这部分代码同样可以从清华的源上下载下来。修改./repo/manifest.xml
[html] view plaincopyprint?
<?xml version="1.0" encoding="UTF-8"?>  
 <manifest>  
  
   <remote  name="aosp"  
-           fetch="https://android.googlesource.com"  
+           fetch="git://aosp.tuna.tsinghua.edu.cn/android/"  
            review="android-review.googlesource.com"  
            revision="refs/tags/android-5.1.1_r6" />  
  
   <remote  name="github"  
            fetch=".."  
            review="review.cyanogenmod.org" />  
  
   <remote  name="private"  
            fetch="ssh://git@github.com" />  


附3:网址
清华大学:http://mirrors.tuna.tsinghua.edu.cn
中科大:http://mirrors.ustc.edu.cn
版权声明:本文为博主原创文章,未经博主允许不得转载。

0 0
原创粉丝点击