一陣子因為受到 kernel.org 被駭的牽連, 的 git repository 也關閉了一段時間。大約二天之前 AOSP 回來了,不過網址有些許的變動,我就稍微記錄一下下載流程,以免日後忘記要怎麼弄。
先準備必要的工具要下載 AOSP 的程式碼,你至少需要 curl、git、python 這三個程式。在 Debian 或 Ubuntu 上面你只要使用:
$
sudo apt-get install curl git python就可以把它們弄到手。接下來我們要先設定 git:
$
git config --global user.name 你的名字$
git config --global user.email 你的email下載 repo 版本管理工具接下來我們必需下載 repo 版本管理工具,我們可以在家目錄之下建立一個資料夾,並把這個資料夾加到 $PATH 裡面:
$
mkdir ~/bin$
export PATH=~/bin:$PATH # 備註:你可以把上面這行加到你的 .bashrc,這樣以後要用 repo 的時候就可以直接用。然後下載 repo 這個工具:
$
curl > ~/bin/repo$
chmod +x ~/bin/repo如果你做到這裡沒有遇到問題就可以
跳到下一段。如果你遇到 SSL certificate problem 之類的問題,是因為你的系統提供的 curl 沒有內建 cacert 清冊 (也就是 https 憑證發行單位的清冊),curl 沒有辦法驗證 dl-ssl.google.com 的憑證是否正確。
你必需先行下載
cacert.pem。因為 cacert.pem 是防止中間人攻擊的重要機制,所以請務必要確保他的正確性,你可以使用 sha1sum 來檢查:
$
curl http://curl.haxx.se/ca/cacert.pem --ipv4 > ~/cacert.pem$
sha1sum ~/cacert.pemb72af26deefa3d789de4ea6d759be08f7856f709 cacert.pem
然後再使用以下指令下載 repo 這個工具:
$
curl --cacert ~/cacert.pem > ~/bin/repo另外,我們要讓 git 使用這個清冊驗證 Google 的 repository,所以我們要執行以下指令:
$
git config --global http.sslcainfo ~/cacert.pem開始下載 Android 程式碼接下來就是這篇文章的重點:下載 Android 程式碼。首先我們先建立一個用來放置 Android 程式碼的資料夾:
$
mkdir ~/android-src$
cd ~/android-src初始化 repo 相關的設定:
$
repo init -u 接著 repo 會問你一些問題,通常使用預設值就可以了。最後就是按下:
$
repo sync# 備註:你可以加上 -j2 或 -j4 平行下載。 之後經過漫長的等待,你就會有一份完整的 Android 程式碼!
注:
如果上面的方法尝试了还不行,则将
$ mkdir ~/android-src
$ cd ~/android-src
修改为
$ mkdir /android-src
$ cd /android-src
再试,基本上就可以了,我的就是这样,可能同一个路径试的多了,配置有何干扰就不知道了
參考資料
- cURL CA Extract
//////////////////////////////////////////////////////////////////
其它可以参考的方法:
1.在cygwin环境下下载源代码
1)cygwin下进入工程目录,建立cyanogenmod目录
2)进入cyanogenmod目录,下载repo文件
现在repo已经迁移到google服务器,
wget > /usr/local/bin/repo
提示error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
关闭git的SSL检测
git config --global http.sslVerify false
再执行wget下载,成功。
3)repo init -u git://github.com/CyanogenMod/manifest.git -b gingerbread
如果是android源代码,则是
repo init -u
cygwin出错,Resource temporarily unavailable。
退出cygwin,找到cygwin目录下的ash.exe,双击运行。执行shell命令
/bin/rebaseall
执行完毕,重新进入cygwin,重新repo init,应该能正常执行了。
4)repo sync来获取源代码
阅读(4427) | 评论(0) | 转发(0) |