一、安卓系统源码下载

article/2025/8/24 18:28:53

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

如果下载的是一个分支而非主目录(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

http://chatgpt.dhexx.cn/article/ptQq2Roi.shtml

相关文章

从github下载最新Android源码

今年5月底开始,谷歌彻底被墙,所有谷歌的网站都不能访问了,这次包括了android.org,googlesource.com,code.google.com。Android官方的资源不能访问,想下载Android代码当然是困难重重了。 本文就为大家解决这…

Android源码下载编译(TI)

0 前言 通过《Android源码下载 & 编译(高通)》的方法下载的源码是包含有kernel目录的(也就是包含Linux内核),然而,通过其它方法下载的源码可能并不包含kernel目录(也就是不包含Linux内核&am…

安卓系统源码、内核下载

一、下载源码 以下载源码2.3.7版本为例 环境ubuntu14.04 1、安装git sudo apt-get install git git --version //查看版本 git config --global user.name "zhangsan" //设置用户名 git config --global user.email "zhangsan163.com" //设置邮箱 git…

AOSP安卓源码下载

Android源码下载 在国内想下载Android要么科学上网,要么使用国内搭建的镜像,有清华镜像,中科大的镜像网站。这里使用清华镜像网站镜像Android源码的下载清华镜像网站地址,为啥我要写这篇笔记嘞,虽然网上有很多这方便的…

安卓系统源码编译系列(一)——下载安卓系统源码教程

最近需要编译安卓系统,咨询了一个编译过安卓系统的朋友,说是下载源码就得下载两天,于是做好了长期抗战的准备,开始了下载安卓源码的旅程。在刚开始下载时,可以参照的内容只有官方教程,于是跟着官方教程一步…

【Android】系统源码下载及编译

源码及编译 步骤 1:创建一个空目录来存放源码: mkdir aosp cd aosp步骤 2:获取最新版本的 repo 并签出 android-8.1.0_r1 分支: repo init -u https://android.googlesource.com/platform/manifest -b android-8.1.0_r1其中&am…

Android源码下载编译(高通)

0 前言 本文介绍如何下载高通平台的Android源码,然后进行编译。 相关:《Android源码下载&编译(TI)》 1 安装工具 下载Android源码需要git,repo等工具,启动repo是Google写的一个专门用于下载Android源码…

Window下载Android源码

Android 10源码下载 想要研究Android 源码的同学可以用此方法进行下载。源码从清华大学开源软件镜像站(https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/)下载。 使用Linux的同学直接参照清华镜像站提供的使用帮助(https://mirrors.tuna.tsinghua.edu…

下载安卓源码

安卓内核源码下载教程 准备环境如何选择你想要下载的版本ubuntu环境配置 准备环境 Ubuntu 18.04 安装 最好是用这个版本或者高于这个版本的,低版本的有一些环境问题可能会让你很难受我使用的是VMware Workstation 16 ProPixel 3 XL、Pixel 3、Pixel 2 XL、Pixel 2、Pixel XL、…

Android13源码下载及全编译流程

一、源码下载 1.1、配置要求 官方推荐配置请参考:https://source.android.google.cn/docs/setup/start/requirements?hlzh-cn,重点有如下几项: 1.1.1、硬件配置要求 1、内存至少 16GB,实测建议至少 32G。 2、磁盘至少 250GB&am…

Java 工厂设计模式

简介 工厂设计模式在java中有大量的应用,如spring框架,这种类型的设计模式属于创建型模式。在工厂设计模式中,创建逻辑不会对客户端暴露,可以通过一个对外接口创建所需对象。 工厂模式使用场景 需要频繁创建对象且这些对象多处…

简单工厂设计模式

简单工厂设计模式 刚开始学设计模式,犹如刚睁开眼看世界的孩子,满眼都是惊奇,原来代码的世界可以如此的精彩纷呈.当然这些都是前辈智慧的结晶.简单工厂设计模式是接触的第一个设计模式,看完后更多的是不懂和迷糊.不过相信慢慢会懂得其精髓的. 简单工厂设计模式是创建型(就是把对…

Java工厂设计模式详解

前言 工厂设计模式在开发过程中有大量的运用,不管是spring框架,还是诸多的中间件,都有着工厂设计模式的体现 比如,手机生产工厂,当提供了相关生产手机的原材料,工厂就可以按要求生产出手机 工厂模式介绍 …

Android工厂设计模式(简单工厂,工厂方法,抽象工厂,BitmapFactory简单工厂分析,Retrofit抽象工厂分析)

文章目录 创建型设计模式(简单工厂,工厂方法,抽象工厂)一.简单工厂模式引出简单工厂模式 二.工厂方法模式三.抽象工厂模式 Android源码中用到的工厂模式举例一.BitmapFactory 源码工厂模式详解(简单工厂)二.Retrofit的工厂模式(抽象工厂) 创建型设计模式…

工厂设计模式有什么用?

工厂方法是非常古老且常用的设计模式。原因主要是一个系统要运转起来一定会涉及到对象的实例化过程,如果对象的实例化分散在各种逻辑代码之间,那么就会非常零乱、难以维护,bug自然也多。 工厂方法的出现解决的就是对象创建的问题&#xff0c…

Java中的工厂设计模式

引出工厂模式 package www.java.test;interface Computer{void printComputer(); } class MacbookPro implements Computer{Overridepublic void printComputer() {System.out.println("This is a MacbookPro");} } class SurfaceBook implements Computer{Override…

Java工厂设计模式

工厂设计模式 一、面向对象的设计原则1.1 OCP(开闭原则,Open-Closed Principle)1.2 DIP(依赖倒转原则,Dependence Inversion Principle)1.3 LOD(迪米特法则,Law Of Demeter&#xff…

设计模式—工厂设计模式

工厂设计模式 1.概述2.简单工厂模式2.1 结构2.2 实现2.3 优缺点2.4 扩展 3.工厂方法模式3.1 概述3.2 结构3.3 实现3.4 优缺点 4.抽象工厂模式4.1 概述4.2 结构4.3 实现4.4 优缺点4.5 应用场景 5.扩展模式5.1 第一步:定义配置文件5.2 改写工厂类 6.JDK源码解析—Coll…

工厂设计模式 - 详解

介绍 工厂模式是Java中最常用的设计模式之一,这种类型的设计模式数据创建型模式。 主要就是负责创建对象的,当我们使用new创建对象的时候会导致对该对象的耦合性很严重,当我们需要修改的时候需要对所有new的对象进行修改,违反了软…

【iOS】—— 工厂设计模式

工厂设计模式 文章目录 工厂设计模式设计模式概念设计模式七大准则开闭原则单⼀职责原则里氏替换原则依赖倒转原则接口隔离原则迪米特法则合成复用原则 类族模式简单工厂模式优点缺点主要作用示例文件分类实现效果: 工厂方法模式优点缺点主要作用:示例&a…