Android 原始碼位於 Google 代管的 Git 存放區集合中。Git 存放區包含 Android 來源的完整歷史記錄,包括原始碼變更以及變更時間。本頁面將說明如何下載來源。
初始化 Repo 用戶端
設定用戶端以存取 Android 來源存放區:
建立並前往工作目錄:
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
初始化工作目錄以進行來源控制:
repo init --partial-clone -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 原始碼
執行下列指令,將 Android 來源樹狀結構下載至工作目錄:
$ repo sync -c -j8
-c
引數會指示 Repo 從伺服器擷取目前的資訊清單分支版本。-j8
指令會將同步作業分散至各執行緒,以便加快完成速度。
這項作業應該會在一小時內完成。
如果在下載期間遇到任何問題,請參閱排解及修正同步處理問題。
下載專屬二進位檔
Android 開放原始碼計畫可以直接在 Cuttlefish 模擬器上執行,但如果沒有額外的裝置專屬專屬程式庫,就無法在硬體上使用 Android 開放原始碼計畫。取得這些裝置二進位檔的方法如下:
- 如果您要下載
main
分支並為 Nexus 或 Pixel 裝置進行建構,請從二進位檔預覽網站下載最新的二進位檔。 - 如果您要下載及建構
main
分支,並為自己的裝置進行建構,則必須提供裝置專屬的二進位檔。 - 如果您要下載及建構 Nexus 或 Pixel 裝置的已標記、非主要分支版本和建構項目,請從 Nexus 和 Pixel 裝置的二進位檔下載裝置專屬二進位檔。
擷取專屬二進位檔
每組二進位檔都是在壓縮封存檔中作為自我擷取指令碼。如何擷取這些二進位檔,並放在來源樹狀結構的正確位置:
- 將封存檔解壓縮。
- 從 AOSP 原始碼樹狀結構的根目錄執行隨附的自動解壓縮殼層指令碼。
- 同意隨附授權協議的條款。二進位檔和相符的 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