安卓系统源代码下载(官方教程)
下載源代碼
Android 源代碼樹位于由 Google 托管的 Git 代碼庫中。Git 代碼庫中包含 Android 源代碼的元數據,其中包括與對源代碼進行的更改以及更改日期相關的元數據。本文檔介紹了如何下載特定 Android 代碼流水線的源代碼樹。
要從特定設備的出廠映像開始,請參閱選擇設備版本。
安裝 Repo
Repo 是一款工具,可讓您在 Android 環境中更輕松地使用 Git。要詳細了解 Repo,請參閱開發部分。
要安裝 Repo,請執行以下操作:
確保主目錄下有一個 bin/ 目錄,并且該目錄包含在路徑中:
$ mkdir ~/bin $ PATH=~/bin:$PATH下載 Repo 工具,并確保它可執行:
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo對于 1.21 版,Repo 的 SHA-1 校驗和為 b8bd1804f432ecf1bab730949c82b93b0fc5fede
對于 1.22 版,Repo 的 SHA-1 校驗和為 da0514e484f74648a890c0467d61ca415379f791
對于 1.23 版,Repo 的 SHA-1 校驗和為 ac9d646f6d699f6822a6bc787d3e7338ae7ab6ed
初始化 Repo 客戶端
安裝 Repo 后,設置您的客戶端以訪問 Android 源代碼代碼庫:
創建一個空目錄來存放您的工作文件。如果您使用的是 MacOS,必須在區分大小寫的文件系統中創建該目錄。為其指定一個您喜歡的任意名稱:
$ mkdir WORKING_DIRECTORY $ cd WORKING_DIRECTORY使用您的真實姓名和電子郵件地址配置 Git。要使用 Gerrit 代碼審核工具,您需要一個與已注冊的 Google 帳號關聯的電子郵件地址。確保這是您可以接收郵件的有效地址。您在此處提供的姓名將顯示在您提交的代碼的提供方信息中。
$ git config --global user.name "Your Name" $ git config --global user.email "you@example.com"運行?repo init?以獲取最新版本的 Repo 及其最近的所有錯誤更正內容。您必須為清單指定一個網址,該網址用于指定 Android 源代碼中包含的各個代碼庫將位于工作目錄中的什么位置。
$ repo init -u https://android.googlesource.com/platform/manifest要對“master”以外的分支進行校驗,請使用?-b?來指定相應分支。要查看分支列表,請參閱源代碼標記和版本。
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1初始化成功后,系統將顯示一條消息,告訴您 Repo 已在工作目錄中完成初始化。客戶端目錄中現在應包含一個?.repo?目錄,清單等文件將保存在該目錄下。
下載 Android 源代碼樹
要將 Android 源代碼樹從默認清單中指定的代碼庫下載到工作目錄,請運行以下命令:
$ repo syncAndroid 源代碼文件將位于工作目錄中對應的項目名稱下。初始同步操作將需要 1 個小時或更長時間才能完成。要詳細了解?repo sync?和其他 Repo 命令,請參閱開發部分。
使用身份驗證
默認情況下,訪問 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排查網絡問題
在使用代理的情況下下載內容(在一些企業環境中很常見)時,您可能需要明確指定 Repo 隨后使用的代理:
$ 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您可以將鏡像存儲在 LAN 服務器上,然后通過 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如果您尚未設置 ccache,現在是設置它的最佳時機。
總結
以上是生活随笔為你收集整理的安卓系统源代码下载(官方教程)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP替换回车换行的三种方法
- 下一篇: windows XP系统下oracle完