Android原始碼下載repo以及repo init總結
阿新 • • 發佈:2019-01-26
最近下載了一波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地址 | 清華伺服器地址 |
common | https://android.googlesource.com/kernel/common.git | https://aosp.tuna.tsinghua.edu.cn/kernel/common.git |
exynos | https://android.googlesource.com/kernel/exynos.git | https://aosp.tuna.tsinghua.edu.cn/kernel/exynos.git |
goldfish | https://android.googlesource.com/kernel/goldfish.git | https://aosp.tuna.tsinghua.edu.cn/kernel/goldfish.git |
hikey-linaro | https://android.googlesource.com/kernel/hikey-linaro | https://aosp.tuna.tsinghua.edu.cn/kernel/hikey-linaro.git |
lk | https://aosp.tuna.tsinghua.edu.cn/kernel/lk.git | |
omap | https://android.googlesource.com/kernel/omap.git | https://aosp.tuna.tsinghua.edu.cn/kernel/omap.git |
samsung | https://android.googlesource.com/kernel/samsung.git | https://aosp.tuna.tsinghua.edu.cn/kernel/samsung.git |
tegra | https://android.googlesource.com/kernel/tegra.git | https://aosp.tuna.tsinghua.edu.cn/kernel/tegra.git |
x86_64 | https://android.googlesource.com/kernel/x86_64.git | https://aosp.tuna.tsinghua.edu.cn/kernel/x86_64.git |
msm | https://android.googlesource.com/kernel/msm.git | https://aosp.tuna.tsinghua.edu.cn/kernel/msm.git |