一、安卓系统源码下载
前言:為了研究安卓系統,我們需要下載安卓源碼,本篇博文參考安卓官網https://source.android.com ,對安卓系統各個版本源碼的下載做出了詳細解釋。
一、環境要求概覽
在下載編譯安卓系統源碼前,我們必須對各個版本安卓系統源碼的編譯環境有一定了解,否者可能導致安卓系統源碼編譯失敗。
1 硬件要求
硬件應該滿足以下條件:
● Android 2.3.x Gingerbread(姜餅) 以及包括 master branch (主分支)在內以上的新版本,要求 以 64 位系統環境編譯。Android 2.3.x之前的舊版本可以以 32 系統環境編譯。
●至少100GB的磁盤空間用于校驗。單個版本編譯需要150GB磁盤空間,多版本編譯需要200GB以上成磁盤空間。如果你使用ccache(complier cache 編譯器緩存 ,可以提高編譯速度),你會需要更多的空間。
● 如果在虛擬機上運行 Lunix,至少需要 16GB的RAM/swap空間。
(ps:后兩條要求可能以最新系統版本編譯環境要求的,實際上我們很可能達不到。)
2 軟件要求
Android Open Source Project (AOSP) master branch (主分支)通常在Ubuntu Long Term Support (LTS) 發行版上測試開發,但也可能在其它版本上測試開發。
你的工作環境必須包含以下軟件列表:
1. 操作系統
安卓系統源碼通常在Linux或者Mac OS 操作系統上進行編譯。也可能在虛擬機中進行編譯。
Linux
● Android 6.0 (Marshmallow) - AOSP master: Ubuntu 14.04 (Trusty)
Android 2.3.x (Gingerbread) - Android 5.x (Lollipop): Ubuntu 12.04 (Precise)
● Android 1.5 (Cupcake) - Android 2.2.x (Froyo): Ubuntu 10.04 (Lucid)
Mac OS (Intel/x86)
● Android 6.0 (Marshmallow) - AOSP master: Mac OS v10.10 (Yosemite) or later with Xcode 4.5.2 and Command Line Tools
● Android 5.x (Lollipop): Mac OS v10.8 (Mountain Lion) with Xcode 4.5.2 and Command Line Tools
● Android 4.1.x-4.3.x (Jelly Bean) - Android 4.4.x (KitKat): Mac OS v10.6 (Snow Leopard) or Mac OS X v10.7 (Lion) and Xcode 4.2 (Apple’s Developer Tools)
● Android 1.5 (Cupcake) - Android 4.0.x (Ice Cream Sandwich): Mac OS v10.5 (Leopard) or Mac OS X v10.6 (Snow Leopard) and the Mac OS X v10.5 SDK
2. Java Development Kit (JDK)
由于Ubuntu 14.04沒有可支持使用的OpenJDK 8 軟件包,所以Ubuntu 14.04必須手動安裝Ubuntu 15.04 OpenJDK 8包才可使用
● The master branch of Android in AOSP: Ubuntu - OpenJDK 8, Mac OS - jdk 8u45 or newer
● Android 5.x (Lollipop) - Android 6.0 (Marshmallow): Ubuntu - OpenJDK 7, Mac OS - jdk-7u71-macosx-x64.dmg
● Android 2.3.x (Gingerbread) - Android 4.4.x (KitKat): Ubuntu - Java JDK 6, Mac OS - Java JDK 6
● Android 1.5 (Cupcake) - Android 2.2.x (Froyo): Ubuntu - Java JDK 5
3. Key packages
Python 2.6 – 2.7 下載官網 python.org
GNU Make 3.81 – 3.82 下載官網:gnu.org ; Android 4.0.x (Ice Cream Sandwich) 以及之前的版本需要 使用 maker 3.81 來避免編譯錯誤。
Git 1.7 + 下載官網 git-scm.com
二、構建編譯環境
本節將介紹如何構建本地編譯環境。
1.選擇一個版本分支
不同版本的系統源碼要求不同的編譯環境,下面給出了安卓系統各個版本的相關信息。
● 代碼名稱、版本、API級別以及相應的NDK版本信息
● 源碼標簽以及編譯版本
Factory Images for Nexus Devices下載:https://developers.google.com/android/nexus/images
Binaries for Nexus Devices 下載:
https://developers.google.com/android/nexus/drivers
2.設置 Linux平臺編譯環境
下面的指令適用于各個分支,包括主分支(master 最新版本)。
安卓系統通常在最近的系統版本Ubuntu LTS (14.04)上進行進行測試。
Gingerbread (2.3.x) 以及以上的版本(包括master在內)要求64-bit 系統環境, Gingerbread (2.3.x) 之前的版本可以在32-bit系統環境上進行編譯。
●安裝JDK
安卓系統主分支(master 最新博文)要求Java 8語言.并且要求在烏班圖上使用OpenJDK。
安卓系統各個版本使用的JDK版本,請查看本篇博文第一節中的JDK小節。
Ubuntu >= 15.04
運行下面的指令
$ sudo apt-get update $ sudo apt-get install openjdk-8-jdkUbuntu LTS 14.04
Ubuntu 14.04沒有針對該系統版本開發的OpenJDK 8 安裝包,但是Ubuntu 15.04 OpenJDK 8 安裝包可以在Ubuntu 14.04上成功安裝運行使用, 更新的 OpenJDK 8 安裝包 (e.g. those for 15.10, 16.04) 在Ubuntu 14.04上無法使用上面的指令進行安裝使用。
1.從archive.ubuntu.com 下載64-bit 架構的.deb安裝包
openjdk-8-jre-headless_8u45-b14-1_amd64.deb with SHA256
0f5aba8db39088283b51e00054813063173a4d8809f70033976f83e214ab56c0
openjdk-8-jre_8u45-b14-1_amd64.debwith SHA256
9ef76c4562d39432b69baf6c18f199707c5c56a5b4566847df908b7d74e15849
openjdk-8-jdk_8u45-b14-1_amd64.deb with SHA256
6e47215cf6205aa829e6a0a64985075bd29d1f428a4006a80c9db371c2fc3c4c
2.對安卓包進行sha256sum校檢(可省略本步驟)
例如使用sha256sum工具進行校檢
$ sha256sum {downloaded.deb file}3.安裝JDK安裝包
$ sudo apt-get update運行你下載的3個安裝包,在安裝過程中可能提示你安裝相應的依賴項
$ sudo dpkg -i {downloaded.deb file}解決這些依賴項產生的問題
$ sudo apt-get -f install● 安裝需要安裝的安裝包(Ubuntu 14.04)
你需要一個 64-bit 烏班圖環境,推薦使用 14.04 is recommended.
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \libgl1-mesa-dev libxml2-utils xsltproc unzipNote: To use SELinux tools for policy analysis, also install the python-networkx package.
●安裝需要安裝的安裝包(Ubuntu 12.04)
你可能使用Ubuntu12.04來編譯安卓更舊的版本。Ubuntu 12.04
不支持主分支(master 最新版本和最近版本)
●安裝要求安裝包(Ubuntu 10.04 – 11.10)
不再支持Ubuntu 10.04-11.10 版本的編譯,但是編譯AOSP以上的舊版本可能有用
$ sudo apt-get install git gnupg flex bison gperf build-essential \zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \libxml2-utils xsltprocOn Ubuntu 10.10:
$ sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.soOn Ubuntu 11.10:
$ sudo apt-get install libx11-dev:i386設置MAC OS環境
由于該童鞋買不起 MAC OS ,所以就偷個懶暫時不寫這寫這部分了,將來有機會再寫~^(* ̄(oo) ̄)^
三、下載系統源碼
安卓資源樹被放在谷歌的Git 倉庫中。
安裝Repo
repo 是安卓環境下的命令行工具,對Git部分命令進行封裝,將 百多個git庫進行更新。
按照如下步驟進行安裝Repo.
1.確定你的主目錄(home)下有bin目錄,并且bin目錄變量在你的path環境變量中:
$ mkdir ~/bin $ PATH=~/bin:$PATH2.下載Repo tool,并且確保它是可執行的。
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repoFor version 1.17, the SHA-1 checksum for repo is ddd79b6d5a7807e911b524cb223bc3544b661c28
For version 1.19, the SHA-1 checksum for repo is 92cbad8c880f697b58ed83e348d06619f8098e6c
For version 1.20, the SHA-1 checksum for repo is e197cb48ff4ddda4d11f23940d316e323b29671c
For version 1.21, the SHA-1 checksum for repo is b8bd1804f432ecf1bab730949c82b93b0fc5fede
For version 1.22, the SHA-1 checksum for repo is da0514e484f74648a890c0467d61ca415379f791
初始化一個Repo client
初始化 Repo 客戶端
當你安裝完Repo后,設置安卓源碼倉庫的客戶端:
1.創建一個存放安卓源碼的空目錄。如果你正在使用Mac OS,該目錄必須是一個區分大小寫的文件系統。你可以像下面一樣對安卓文件夾進行命名:
$ mkdir WORKING_DIRECTORY $ cd WORKING_DIRECTORY2.配置你的用戶郵箱
$ git config --global user.name "Your Name" $ git config --global user.email "you@example.com"3.運行 repo init 來下載最新版本的Repo。你必須為manifest文件指定一個URL,mainifest文件定義了你工作目錄中將要下載安卓源碼倉庫。
$ 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如果提示無法連接到 gerrit.googlesource.com,可以編輯 ~/bin/repo,把 REPO_URL 一行替換成下面的:
REPO_URL = ‘https://gerrit-google.tuna.tsinghua.edu.cn/git-repo’ 該地址是清華大學提供的AOSP鏡像
清華大學TUNA鏡像https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
A successful initialization will end with a message stating that Repo is initialized in your working directory. Your client directory should now contain a .repo directory where files such as the manifest will be kept.
下載安卓源碼樹
為了向你的工作目錄下載安卓源碼,你需要運行
$ repo sync總結
以上是生活随笔為你收集整理的一、安卓系统源码下载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 整理JRE瘦身或精简JRE
- 下一篇: RTX51 tiny——51MCU上的多