您的位置:首页 > 移动开发 > Android开发

一、安卓系统源码下载

2016-05-21 22:51 435 查看
前言:为了研究安卓系统,我们需要下载安卓源码,本篇博文参考安卓官网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-jdk


Ubuntu 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 unzip


Note: To use SELinux tools for policy analysis, also install the python-networkx package.

●安装需要安装的安装包(Ubuntu 12.04)

你可能使用Ubuntu12.04来编译安卓更旧的版本。Ubuntu 12.04

不支持主分支(master 最新版本和最近版本)

$ sudo apt-get install git gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so


●安装要求安装包(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 xsltproc


On Ubuntu 10.10:

$ sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so


On 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:$PATH


2.下载Repo tool,并且确保它是可执行的。

$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo


For 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_DIRECTORY


2.配置你的用户邮箱

$ 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[/code] 
如果下载的是一个分支而非主目录(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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android