Bootstrap

基于Ubuntu24.04,下载并编译Android12系统源码 (一)

1. 前言

1.1 编译源码可以干什么

  • 定制Android系统
  • 将最新版本的Android系统刷入到自己的Android设备中
  • 将整个系统源码导入到Android Studio中(可以不用编译源码来实现)。
    • 只要有对应的Android源码版本的android.iml和android.ipr文件,就可以将源码导入到Android Studio中。
  • 动态调试源码(不一定需要导入整个系统源码进行调试)
    • 导入部分源码也可以进行调试的

1.2 Android系统源码编译方式

  • 在Linux中直接进行系统源码编译 (Android官方支持)
  • 在Mac OS中直接进行系统源码编译 (Android官方支持)
  • 使用Docker编译,支持Mac OS和Windows

本文会基于Ubuntu24.04,来下载并编译Android12源码

2. 下载AOSP

2.1 更新源

sudo apt-get update

2.2 安装 Git

sudo apt-get install git

2.3 设置git身份,添加自己的邮箱和姓名

git config --global user.email "[email protected]"
git config --global user.name "xxxx"

2.4 创建bin,并加入到PATH中

mkdir ~/bin
PATH=~/bin:$PATH

在这里插入图片描述

2.5 安装curl库

sudo apt-get install curl

在这里插入图片描述

2.6 下载repo并设置权限

Android源码包含数百个git库,光是下载这么多的git库就是一项繁重的任务,所以Google开发了repo,它是用于管理Android版本库的一个工具,使用了Python对git进行了一定的封装,简化了对多个Git版本库的管理。

下载AOSP前我们要先下载repo。

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo

在这里插入图片描述注意还要设置为清华源 (google官方的源访问不到的)

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

https://mirrors4.tuna.tsinghua.edu.cn/help/git-repo/

2.7 安装python

由于我们编译的是Android12系统,所以使用python3
如果是Android及之前版本,需要使用python2

sudo apt-get install python-is-python3

2.8 安装 jdk11

sudo apt-get install openjdk-11-jdk

2.9 初始化并指定版本

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-12.0.0_r1

Android 源码版本在这里查看 : https://source.android.google.cn/docs/setup/about/build-numbers?hl=zh-cn

还有一种方式 (需要有Git环境来运行这些命令)
在Android开源项目中,查看所有可用的源码版本通常需要访问Android的源代码仓库,例如Android的官方仓库或者相关的分支。
对于Android 12 (也就是API等级31),你可以在Android的官方源码仓库中找到对应的标签。
在命令行中,你可以使用以下Git命令来查看所有可用的标签:
//git clone https://android.googlesource.com/platform/manifest
git clone https://aosp.tuna.tsinghua.edu.cn/platform/manifest
cd manifest
sudo chown -R heiko:heiko /home/heiko/platform_manifest/manifest
git tag
这将会列出所有可用的标签,包括像android-12.0.0_r1这样的版本标签。
如果你想要检出特定的版本,可以使用以下命令:
git checkout android-12.0.0_r1

2.10 同步源码

-j后面的数字一般为cpu核心数的1-2倍,我的cpu为8核,这里我这设置的12

repo sync -j12

看到下面的信息可以说明AOSP下载成功了。
在这里插入图片描述

3. 源码编译

接下来,我们会来编译Android12源码,具体详见我的这篇文章 : 基于Ubuntu24.04,下载并编译Android12系统源码 (二)

;