1. 程式人生 > >Android原始碼下載repo以及repo init總結

Android原始碼下載repo以及repo init總結

最近下載了一波Android的原始碼,由於google原始碼被牆,以及編譯環境等一系列問題,搞得頭皮發麻,在此寫下一篇部落格記錄一下

由於看的書是《Android系統原始碼情景分析》,我們下載的目標原始碼是Android 2.3.4,因此我們需要使用的是Ubutun 12.04版本的系統,否則編譯原始碼時會出現一堆奇怪的問題

首先,我們需要安裝java1.6,然後再安裝git和一系列的編譯一堆工具:

sudo apt-get install git-core gnupg
sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk3.0-dev build-essential zip curl valgrind

然後下載google提供的下載原始碼的repo工具,在合適的目錄下執行命令下載repo,並把它改為可執行檔案即可:
curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" > repo
chmod a+x repo

然後由於google背牆的原因,我們需要修改以下引數:

把repo中的 REPO_URL 改為 REPO_URL='http://code.google.com/p/git-repo/'

然後再repo的目錄下執行init指令即可:

repo init -u git://Android.git.linaro.org/platform/manifest.git -b android-2.3.4_r1

初始化完成後,我們再修改下init目錄下的隱藏檔案.repo中的manifest.xml檔案:

fetch="git://Android.git.kernel.org/"

改為

fetch="git://Android.git.linaro.org/"

然後執行 repo sync 指令開始下載Android原始碼

由於下載原始碼的指令經常會由於網路原因莫名奇妙中斷掉,在此分享一箇中斷後會自動重新執行repo sync的sh指令碼:

#!/bin/sh
repo sync
while [ $? -ne 0 ]
do
repo sync
done

我們儲存改指令碼並改為可執行檔案後,執行sh xxx.sh開始同步原始碼即可,在原始碼下載完成後指令碼會自行終止

在下載完Android原始碼後,我們還可以下載Android的核心原始碼,由於核心原始碼也是被牆了,原地址根本下不動,因此我們需要通過國內映象來下載:

名稱Google GIT地址清華伺服器地址
commonhttps://android.googlesource.com/kernel/common.githttps://aosp.tuna.tsinghua.edu.cn/kernel/common.git
exynoshttps://android.googlesource.com/kernel/exynos.githttps://aosp.tuna.tsinghua.edu.cn/kernel/exynos.git
goldfishhttps://android.googlesource.com/kernel/goldfish.githttps://aosp.tuna.tsinghua.edu.cn/kernel/goldfish.git
hikey-linarohttps://android.googlesource.com/kernel/hikey-linarohttps://aosp.tuna.tsinghua.edu.cn/kernel/hikey-linaro.git
lkhttps://aosp.tuna.tsinghua.edu.cn/kernel/lk.git
omaphttps://android.googlesource.com/kernel/omap.githttps://aosp.tuna.tsinghua.edu.cn/kernel/omap.git
samsunghttps://android.googlesource.com/kernel/samsung.githttps://aosp.tuna.tsinghua.edu.cn/kernel/samsung.git
tegrahttps://android.googlesource.com/kernel/tegra.githttps://aosp.tuna.tsinghua.edu.cn/kernel/tegra.git
x86_64https://android.googlesource.com/kernel/x86_64.githttps://aosp.tuna.tsinghua.edu.cn/kernel/x86_64.git
msmhttps://android.googlesource.com/kernel/msm.githttps://aosp.tuna.tsinghua.edu.cn/kernel/msm.git