如何不翻牆下載Android原始碼
由於眾所周知的原因,在國內是無法訪問谷歌伺服器的,更不用說下載十幾個G的Android版本程式碼了。幸好國內一些一流高校如清華大學和中科大都提供了Android AOSP 程式碼的映象服務,可以不用翻牆就可以下載Android程式碼。下面就以清化大學的源為例描述下如何不翻牆下載Android程式碼。
1、下載Repo
可以使用原先下載好的repo,如果沒有現成的repo或者無法從google下載,可以通過git clone從清華的源上下載。
git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/
命令執行完後,在當前目錄會出現git-repo資料夾,其中就有我們需要的repo,將其拷貝到環境變數PATH定義的路徑中,並給其加上可執行許可權。
mkdir -p ~/bin
export PATH=~/bin:$PATH
cd git-repo
cp repo ~/bin/
chmod a+x ~/bin/repo
2、修改Repo中的REPO_URL
將repo檔案中的
REPO_URL = 'https://gerrit.googlesource.com/git-repo'
修改為:
REPO_URL = 'git://aosp.tuna.tsinghua.edu.cn/android/git-repo'
3、repo init
執行repo init -u 指令下載manifest
將從google下載的指令:
修改為清華的源:repo init -u https://android.googlesource.com/platform/manifest
repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest
同原先一樣,如果需要按branch下載,加上-b brance_name即可,如:
repo init-u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-5.1.1_r9
4、同步
repo sync,清華大學的源上是有併發限制的,每個IP限制併發數為4,最大-j4,為了在下載出錯的時候能夠重新同步,可以通過以下指令碼執行同步命令:
#! /bin/sh export PATH=~/bin:$PATH repo sync -j2 if [ "$?" != "0" ]; then echo "-----------------------\n" echo "repo failed, do again...\n" sleep 30 repo sync -j2 fi
這樣就可以無需翻牆下載Android AOSP原始碼了,而且速度還挺快。
附1:對於已從Google下載的原始碼,可以通過修改程式碼目錄中的 .repo/manifest.xml 檔案,改從清華的源同步。(-表示刪除,+表示增加)
<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
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="aosp"
- fetch="https://android.googlesource.com"
+ fetch="https://android.googlesource.com"
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://[email protected]" />
附3:網址
清華大學:http://mirrors.tuna.tsinghua.edu.cn
中科大:http://mirrors.ustc.edu.cn
另外還有騰訊提供的映象:http://android-mirror.bugly.qq.com:8080