谷歌致力於推進種族平等的黑人社區。 怎麼看。
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

下載源代碼

Android的源代碼樹位於由谷歌託管的Git倉庫。 Git倉庫包括為Android源元數據,包括改變源,並且當進行了更改。此頁面介紹如何下載源代碼樹特定Android的代碼行。

要開始使用特定設備,而不是下載源出廠映像,請參閱選擇設備構建

初始化回購客戶端

安裝回購啟動 ,建立你的客戶端來訪問Android的源代碼庫:

  1. 創建一個空目錄來保存你的工作文件。如果您使用MacOS的,這必須是在區分大小寫的文件系統。給它任何你喜歡的名字:

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
    
  2. 配置的Git與你的真實姓名和電子郵件地址。要使用格里特代碼審查工具,你需要一個與所連接的電子郵件地址註冊谷歌帳號 。確保這是一個動態的地址,你可以接收消息。您提供此處的名稱歸屬為您的代碼提交顯示出來。

    git config --global user.name "Your Name"
    git config --global user.email "you@example.com"
    
  3. repo init ,以獲得最新版本的回購,其最新的錯誤修正。您必須指定清單,指定其中包括在Android源的各種信息庫放在你的工作目錄中的URL。

    repo init -u https://android.googlesource.com/platform/manifest
    

    注:如果repo init在MacOS失敗,因為證書錯誤,則可能需要先運行:

    # macOS only
    open /Applications/Python\ 3.6/Install\ Certificates.command
    

    要檢查出比其他高手一分支,與指定它-b 。對於分支的列表,請參閱源代碼標籤和建立

    repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
    

如果使用Git版本2.19或更高版本,可以指定--partial-clone表演時repo init這將使使用Git的的部分克隆能力,只需要下載,而不是下載的一切,當Git對象。由於使用部分克隆意味著許多操作都需要與服務器進行通信,這是推薦誰使用具有低延遲的網絡開發人員:

repo init -u https://android.googlesource.com/platform/manifest -b master --partial-clone

一個成功的初始化結束與一條消息,說明回購在您的工作目錄初始化。您的客戶端目錄現在應該包含.repo其中的文件,如清單保存目錄。

下載Android的源代碼樹

到Android源代碼樹下載到從作為默認的清單中指定,運行庫您的工作目錄:

repo sync

Android的源代碼文件位於在工作目錄下的項目名稱。要速度同步,使用-j threadcount標誌。還考慮增加-qc只能進行安靜,當前分支同步。見回購命令參考更多的細節。

使用身份驗證

默認情況下,獲得了Android源代碼是匿名的。為了防止過度使用的服務器,每個IP地址與配額有關。

當與其他用戶共享一個IP地址(例如,從超過NAT防火牆訪問源庫時),配額可以觸發即使經常使用模式(例如,如果許多用戶同步從內相同IP地址的新客戶短期內)。

在這種情況下,你可以使用身份驗證的訪問,然後使用一個單獨的配額為每個用戶,而不管IP地址。

第一步是創建一個密碼, 密碼生成器 ,並按照密碼生成器頁面上的說明。

第二個步驟是通過使用所述清單URI強制認證訪問https://android.googlesource.com/a/platform/manifest 。注意,此時的/a/目錄前綴觸發強制認證。您可以將現有的客戶端使用強制認證使用下面的命令:

repo init -u https://android.googlesource.com/a/platform/manifest

解決網絡問題

當從後面代理(這是常見於一些企業的環境)下載,您可能需要顯式地指定隨後被回購代理:

export HTTP_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>
export HTTPS_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>

更罕見的是,Linux客戶端遇到連接問題,(通常在接收對象 )被陷在下載的中間。它已經報導,扭捏的TCP / IP棧的設置和使用非並行命令可以改善這種情況。你需要root權限修改TCP設置:

sudo sysctl -w net.ipv4.tcp_window_scaling=0
repo sync -j1

使用本地鏡像

當使用多個客戶,尤其是在情況下的帶寬是稀缺的,它是更好地創建整個服務器內容的本地鏡像,並從鏡子(這不需要網絡訪問)的同步客戶端。下載一個完整的鏡子比下載兩個客戶端小,而包含更多的信息。

這些說明假設反射鏡中創建/usr/local/aosp/mirror 。首先,創建和同步的鏡子本身。注意--mirror標誌,你可以創建一個新的客戶端時,只註明:

mkdir -p /usr/local/aosp/mirror
cd /usr/local/aosp/mirror
repo init -u https://android.googlesource.com/mirror/manifest --mirror
repo sync

當鏡子被同步,你可以從它創建新的客戶。注指定一個絕對路徑,這是非常重要的:

mkdir -p /usr/local/aosp/master
cd /usr/local/aosp/master
repo init -u /usr/local/aosp/mirror/platform/manifest.git
repo sync

最後,同步客戶端對服務器,同步對服務器,然後對鏡像的客戶端中的反射鏡:

cd /usr/local/aosp/mirror
repo sync
cd /usr/local/aosp/master
repo sync

這是可能的鏡子局域網的服務器上,並訪問它通過NFS,SSH或Git的存儲。它也可以將其存儲在可移動驅動器上,通過用戶或機器間的車程。

驗證Git標籤

加載下面的公鑰到您的GnuPG密鑰數據庫。關鍵是用來簽署註釋標記,表示釋放。

gpg --import

複製並粘貼的鍵,然後輸入EOF (CTRL-d),以結束輸入並處理的鍵。

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

mQGiBEnnWD4RBACt9/h4v9xnnGDou13y3dvOx6/t43LPPIxeJ8eX9WB+8LLuROSV
lFhpHawsVAcFlmi7f7jdSRF+OvtZL9ShPKdLfwBJMNkU66/TZmPewS4m782ndtw7
8tR1cXb197Ob8kOfQB3A9yk2XZ4ei4ZC3i6wVdqHLRxABdncwu5hOF9KXwCgkxMD
u4PVgChaAJzTYJ1EG+UYBIUEAJmfearb0qRAN7dEoff0FeXsEaUA6U90sEoVks0Z
wNj96SA8BL+a1OoEUUfpMhiHyLuQSftxisJxTh+2QclzDviDyaTrkANjdYY7p2cq
/HMdOY7LJlHaqtXmZxXjjtw5Uc2QG8UY8aziU3IE9nTjSwCXeJnuyvoizl9/I1S5
jU5SA/9WwIps4SC84ielIXiGWEqq6i6/sk4I9q1YemZF2XVVKnmI1F4iCMtNKsR4
MGSa1gA8s4iQbsKNWPgp7M3a51JCVCu6l/8zTpA+uUGapw4tWCp4o0dpIvDPBEa9
b/aF/ygcR8mh5hgUfpF9IpXdknOsbKCvM9lSSfRciETykZc4wrRCVGhlIEFuZHJv
aWQgT3BlbiBTb3VyY2UgUHJvamVjdCA8aW5pdGlhbC1jb250cmlidXRpb25AYW5k
cm9pZC5jb20+iGAEExECACAFAknnWD4CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX
gAAKCRDorT+BmrEOeNr+AJ42Xy6tEW7r3KzrJxnRX8mij9z8tgCdFfQYiHpYngkI
2t09Ed+9Bm4gmEO5Ag0ESedYRBAIAKVW1JcMBWvV/0Bo9WiByJ9WJ5swMN36/vAl
QN4mWRhfzDOk/Rosdb0csAO/l8Kz0gKQPOfObtyYjvI8JMC3rmi+LIvSUT9806Up
hisyEmmHv6U8gUb/xHLIanXGxwhYzjgeuAXVCsv+EvoPIHbY4L/KvP5x+oCJIDbk
C2b1TvVk9PryzmE4BPIQL/NtgR1oLWm/uWR9zRUFtBnE411aMAN3qnAHBBMZzKMX
LWBGWE0znfRrnczI5p49i2YZJAjyX1P2WzmScK49CV82dzLo71MnrF6fj+Udtb5+
OgTg7Cow+8PRaTkJEW5Y2JIZpnRUq0CYxAmHYX79EMKHDSThf/8AAwUIAJPWsB/M
pK+KMs/s3r6nJrnYLTfdZhtmQXimpoDMJg1zxmL8UfNUKiQZ6esoAWtDgpqt7Y7s
KZ8laHRARonte394hidZzM5nb6hQvpPjt2OlPRsyqVxw4c/KsjADtAuKW9/d8phb
N8bTyOJo856qg4oOEzKG9eeF7oaZTYBy33BTL0408sEBxiMior6b8LrZrAhkqDjA
vUXRwm/fFKgpsOysxC6xi553CxBUCH2omNV6Ka1LNMwzSp9ILz8jEGqmUtkBszwo
G1S8fXgE0Lq3cdDM/GJ4QXP/p6LiwNF99faDMTV3+2SAOGvytOX6KjKVzKOSsfJQ
hN0DlsIw8hqJc0WISQQYEQIACQUCSedYRAIbDAAKCRDorT+BmrEOeCUOAJ9qmR0l
EXzeoxcdoafxqf6gZlJZlACgkWF7wi2YLW3Oa+jv2QSTlrx4KLM=
=Wi5D
-----END PGP PUBLIC KEY BLOCK-----

導入密鑰後,可以驗證任何標記有:

git tag -v TAG_NAME

獲得專有二進制

AOSP不能從唯一的純源代碼中使用並且需要額外的硬件有關的專有庫來運行,如硬件圖形加速。請參閱下文中的下載鏈接和設備的二進制文件的額外資源。

下載專有二進制

你可以下載官方的二進制文件運行從標籤AOSP版本分支機構支持的設備谷歌的驅動程序 。這些二進制文件添加到與非開源代碼的其他硬件功能的訪問。要構建AOSP主分支,使用二進制文件預覽來代替。在構建主分支的設備,使用二進制文件的最新版本編號或與最近的日期。

提取專有二進制

每組二進制文件的當屬以壓縮檔案自解壓腳本。解壓縮每個存檔,請從源樹的根附帶的自解壓腳本,然後確認你同意附帶的許可協議的條款。二進制文件和其匹配的makefile將被安裝在vendor/源代碼樹的層次結構。

清理

為了確保新安裝的二進制文件適當考慮被提取後,刪除使用任何以前的版本的現有的輸出:

make clobber