1. 程式人生 > >Ubuntu14下repo的下載及Android原始碼下載

Ubuntu14下repo的下載及Android原始碼下載

因為repo是google官方用python寫的有關git命令的指令碼,
因此第下載repo之前 首先安裝git

第一步:安裝Git

$sudo apt-get install git-core 

第二步:安裝curl

因為要下載工具,android原始碼等,因此得安裝一個下載工具,而Linux中curl是一個利用URL規則在命令列下工作的檔案傳輸工具,可以說是一款很強大的http命令列工具。它支援檔案的上傳和下載,是綜合傳輸工具,但按傳統,習慣稱url為下載工具。

$sudo apt-get install git-cor curl

第三步:建立目錄,用來存放repo檔案

$mkdir ~/android-bin
#建立成功,再換到android-bin目錄
$cd ~/android-bin

第四步:下載repo並修改許可權

#一般可用下面這個命令下載
$curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/android-bin/repo

如果上面這個url不可訪問,我們可以通過下面2種方式來:

. 把url改成:把命令改成:

curl https://storage-googleapis.lug.ustc.edu.cn/git -repo-downloads/repo > ~/android-bin/repo

下載完成後,我們可以通過

$ls -l ~/android-bin/repo

命令來檢視repo的檔案許可權,如果許可權分數不是為777,則我們可以手動將repo的檔案許可權更改為777.

#我們得切換到root身份來修改
$su - root
#切換完成後,再執行下面的命令
$chmod 777 ~/android-bin/repo

第五步:repo初始化以及Android原始碼下載

在進行repo 初始化前,我們得先配置好本地Git的郵箱及使用者名稱,如下:

$git config --global user.email "[email protected]"
$git
config --global user.name "yourname"

接下來為Android原始碼建立一個倉庫目錄

#在當前主目錄下建立
$mkdir androidSources
#然後切換至目錄下
$cd androidSources

接下來就正式進入repo init了,
網上有很多映象,有各種說法,但不知為毛,我都沒有成功,我也貼出來,你們可以試下,搞不好你人品好,一下就成功了。

#一種是使用中國科技大學的映象源
$ repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-5.1.1_r4

#還有一種是使用清華大學的映象源
$ repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-5.1.1_r4

以上2種對我都沒用,
都報以下錯誤:

fatal: Cannot get https://gerrit.googlesource.com/Git-repo/clone.bundle

那怎麼辦,還是跟上面下載repo一下,命令列不能下載,那就只能手動下載了。
在翻牆的情況下開啟https://gerrit.googlesource.com/git-repo/clone.bundle
下載clone.bundle到自定義目錄
最後再在上面repo init命令最後加上clone.bundle,如下:

$ repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-5.1.1_r4 --repo-url ~/下載/clone.bundle

奇蹟發生了,成功了。

第六步:開始同步Android原始碼

這是最後一步,開始同步Android原始碼,這個過程比較漫長,我在公司的網速一般,花了半天時間,切忌中間不能手動去crtl + c,如果你取消了,那前面 下的都白下了,而如果是它自己中途斷了,則再重新執行repo sync命令,它會接著下。

$ repo sync

如圖:
這裡寫圖片描述

當然這是順利的情況,也有運氣不好的同學,在執行repo sync會遇到以下錯誤:

fatal: '../platform/abi/cpp.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
error: Cannot fetch platform/abi/cpp

這是什麼意思呢?意思是沒有找到git倉庫,那麼這個倉庫地址是在哪呢?
在我們上面建立的儲存android原始碼的目錄下的一個.repo隱藏目錄裡面,
按如下操作:

#切換到.repo目錄
$cd .repo
#用gedit開啟manifest.xml檔案
$gedit manifest.xml
#找到fetch標籤,把值替換掉:fetch="git://Android.git.linaro.org/"

以上做完後,再次執行repo sync,就可以下載了。