Android 原始碼位於 Google 託管的 Git 儲存庫集合中。 Git 儲存庫包含 Android 原始碼的整個歷史記錄,包括對原始程式碼的變更以及更改的時間。本頁介紹如何下載原始碼。
初始化Repo客戶端
設定您的客戶端以存取 Android 來源儲存庫:
建立並導航到工作目錄:
$ mkdir WORKING_DIRECTORY $ cd WORKING_DIRECTORY
初始化原始碼管理的工作目錄:
$ repo init -b main -u https://android.googlesource.com/platform/manifest
-b
選項用於標識您正在初始化的分支。如果未提供 -b,repo init
預設為主分支。有關分支和標記名稱的列表,請參閱原始碼標記和建置。-u
選項是必需的,用於指定清單文件,該文件是一個 XML 文件,指定 Android 來源中的各個 Git 項目在工作目錄中的放置位置。在此範例中,未指定清單檔案的名稱,因此該指令使用預設清單檔案 (default.xml
)。輸出應包含訊息:
$ repo has been initialized in path_to_working_directory
有關清單文件格式的信息,請參閱repo 清單格式。
有關所有 Repo 命令的列表,請參閱Repo 命令參考。
下載安卓原始碼
執行以下命令將 Android 原始碼樹下載到您的工作目錄:
$ repo sync -c -j8
-c
參數指示 Repo 從伺服器取得目前清單分支。 -j8
指令將同步分割到執行緒之間以更快完成。
此操作應該需要一個多小時。
如果您在下載過程中遇到任何問題,請參閱疑難排解並修復同步問題。
下載專有二進位文件
AOSP 可以直接在 Cuttlefish 模擬器上運行,但如果沒有額外的設備特定專有庫,AOSP 就無法在硬體上使用。以下是取得這些設備二進位檔案的方法:
- 如果您要下載
main
分支並針對 Nexus 或 Pixel 裝置進行構建,請從二進位檔案預覽網站下載最新的二進位檔案。 - 如果您要下載並構建
main
分支並為您自己的設備構建,則必須提供特定於設備的二進位。 - 如果您要為 Nexus 或 Pixel 裝置下載和建置標記的非主分支和構建,請從Nexus 和 Pixel 裝置的二進位檔案下載裝置特定的二進位檔案。
提取專有二進位文件
每組二進位檔案都是壓縮存檔中的自解壓縮腳本。要提取這些二進位檔案並將其放置在來源樹的正確位置:
- 提取存檔。
- 從 AOSP 原始碼樹的根執行包含的自解壓縮 shell 腳本。
- 同意隨附的授權協議的條款。二進位檔案及其相符的 makefile 安裝在來源樹的
vendor/
層次結構中。
(可選)驗證程式碼合法性
如果您擔心原始程式碼的合法性,例如它是否來自 Google,您可以驗證分支的 git 標籤。要驗證 Git 標籤:
將下列金鑰區塊複製並貼上到文字檔案中,例如
keyfile.asc
。-----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-----
執行以下命令將公鑰輸入到 GnuPG 密鑰資料庫中。此密鑰用於簽署代表版本的帶註釋的標籤。
$ gpg --import keyfile.asc
匯入金鑰後,您可以透過執行以下命令來驗證任何標籤:
$ git tag -v TAG_NAME