下載 Android 原始碼

Android 原始碼位於託管於 Google。Git 存放區包含 Android 原始碼的完整歷史記錄 包括來源變更及變更時間這個頁面 ,瞭解如何下載原始碼。

初始化存放區用戶端

設定用戶端以存取 Android 原始碼存放區:

  1. 建立並前往工作目錄:

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
    
  2. 初始化工作目錄以進行來源控制:

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

    -b 選項用於識別您要初始化的分支版本。如果 -b 未提供時,repo init 會預設為主要分支版本。如需 分支版本和標記名稱,請參閱 原始碼標記和建構

    -u 是必要選項,可用來指定資訊清單檔案 這是 XML 檔案,用於指定不同 Git 專案的位置 會放在工作目錄中。 這個範例並未指定資訊清單檔案的名稱 因此指令會使用預設的資訊清單檔案 (default.xml)。

    輸出內容應包含訊息:

    repo has been initialized in path_to_working_directory
    
,瞭解如何調查及移除這項存取權。

如需資訊清單檔案格式的相關資訊,請參閱 存放區資訊清單格式

如需所有存放區指令的清單,請參閱 Repo 指令參考資料

下載 Android 原始碼

執行下列指令,將 Android 原始碼樹狀結構下載至工作環境 目錄:

$ repo sync -c -j8

-c 引數會指示存放區從以下來源擷取目前的資訊清單分支版本: 伺服器-j8 指令會將同步作業分割至多個執行緒,以加快作業速度 完成。

這項作業應該會在一小時內完成。

如果您在下載過程中遇到任何問題,請參閱 疑難排解並修正同步處理問題

下載專屬二進位檔

Android 開放原始碼計畫可以直接在 Cuttlefish 模擬器上執行,但無法在沒有其他裝置專屬程式庫的硬體上使用 Android 開放原始碼計畫。以下說明如何取得裝置二進位檔:

  • 如要下載 Nexus 或 Pixel 的 main 分支版本和建構應用程式, 請從以下程式中下載最新的二進位檔: 二進位檔預覽網站
  • 如果要下載和建構 main 分支版本 您必須提供裝置專屬的二進位檔。
  • 如果要下載並建構標記、非主要、分支版本和建築物 如果是 Nexus 或 Pixel 裝置,請從以下位置下載裝置專用的二進位檔: Nexus 和 Pixel 裝置的二進位檔

擷取專屬二進位檔

每組二進位檔都提供一個壓縮檔的自我解壓縮指令碼 封存。擷取這些二進位檔,並放在 來源樹狀結構:

  1. 將封存檔解壓縮。
  2. 從 Android 開放原始碼計畫根目錄執行隨附的自我擷取殼層指令碼 來源樹狀結構。
  3. 同意所附授權協議的條款。二進位檔及其相關 相符的 makefile 會安裝在來源樹狀結構的 vendor/ 階層中。

(選用) 確認程式碼是否合法

如果您擔心原始碼是否合法,例如是否存在 ,您可以驗證分支的 Git 標記。如何驗證 Git 標記:

  1. 複製下列鍵區塊並貼到文字檔中,例如 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-----
    
  2. 執行下列指令,將公開金鑰輸入 GnuPG 金鑰資料庫。金鑰的用途是簽署代表版本的標記,並加上註解。

    $ gpg --import keyfile.asc
    
  3. 匯入金鑰後,您可以執行下列指令來驗證任何代碼:

    $ git tag -v TAG_NAME