標籤:手機 檔案 line user led expected 問題 ann 環境
博文《Android原始碼下載——用git clone實現單個檔案夾下載》介紹了採用git clone方法下載Android單個檔案夾原始碼的方法,這篇文章已經有四年的曆史,這期間Google對原始碼的管理網站已經進行了更改,直接採用原來的方法下載原始碼已經失效。
本文介紹了在ubuntu下(在Windows下安裝Cygwin,通過Cygwin也可在Windows裡通過本文的下載步驟下載Android原始碼)擷取眼下最新的Android 4.4 全套原始碼以及單個自模組原始碼的下載方法。可依據本文方法下載全套或者僅僅下載子模組Android原始碼進行原始碼分析和編譯。下載過錯中遇到非常多問題,這些問題的解決對大家擷取源password非常有借鑒意義。
Google原始碼的官方協助頁面:http://source.android.com/source/initializing.html。下載原始碼依照此頁面介紹的步驟操作就可以。
以下簡要介紹下下載的步驟和遇到問題的解決的方法。
1、安裝 Repo
a) 建立Repo的安裝資料夾、配置環境變數
$ mkdir ~/bin
$ PATH=~/bin:$PATH
b) 擷取Repo工具
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo 問題:上面是Google制定的repo擷取地址,但擷取可能失敗。 解決的方法:網上有網友給出了替代的擷取地址,如遇報錯可用以下的地址替代: curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" > ~/bin/repo2、建立並進入原始碼下載檔案夾$ mkdir WORKING_DIRECTORY$ cd WORKING_DIRECTORY
3、初始化原始碼Repo
如是下載當前最新的代碼,則:
repo init -u https://android.googlesource.com/platform/manifest 如是下載特定Android成熟版本號碼分支的代碼,則加上-b 參數。如當前最新公布的android 4.4分支代碼: repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.1_r1 命令如順利運行,期間將要求輸入unsername和email。直接輸入自己的自己定義的username和email就可以。 問題:在init過錯中,可能會出現例如以下的443串連失敗錯誤: error: Failed connect to android.googlesource.com:443 解決的方法:找到/etc/hosts檔案,添加例如以下地址(如無法儲存須要用root許可權改動hosts檔案的訪問許可權): 74.125.128.82 android.googlesource.com 74.125.31.82 www.googlesource.com 203.208.46.172 cache.pack.google.com 173.194.74.82 gerrit.googlesource.com 上面的地址可能會發生變化,儲存前在終端用ping命令逐個ping各個網域名稱的當前IP地址替換: e.g.: ping android.googlesource.com 4、同步全套源碼 $ 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
解決的方法:
在init成功後下載的.repo檔案夾下的manifest.xml裡,找到fetch屬性,並改動為:
fetch= "git://Android.git.linaro.org/"
repo sync命令在運行過程中一般不會一次性成功,中途可能逾時或存在其它失敗,此時僅僅需再次運行repo sync就可以。曾經的記錄會被緩衝的。
5、同步子模組代碼 repo syn命令是同步所制定分支的全套代碼,但全套代碼的運行過程非常長,有時候也並不須要全套代碼而僅僅須要特定子模組的代碼。 擷取子模組的方法是在repo sync 命令後加上子模組的git節點檔案夾名就可以,比如想要擷取Launcher3模組的源碼: repo sync packages/apps/Launcher3 各個子模組的節點檔案夾尋找方法: 在init成功後下載的.repo檔案夾下的manifest.xml裡。找到子模組的project 屬性就可以: e.g. Launcher 3 的git檔案夾: ... <project path="packages/apps/Launcher2" name="platform/packages/apps/Launcher2" /> <project path="packages/apps/Launcher3" name="platform/packages/apps/Launcher3" /> <project path="packages/apps/LegacyCamera" name="platform/packages/apps/LegacyCamera" /> ...My Phone專賣店。歡迎各位看官捧場:http://vpclub.octech.com.cn/ztewd/9495.html
本文為原創文章,轉載請註明出處:http://blog.csdn.net/droidpioneer
Android 4.4 全套原始碼及子模組原始碼的下載方法