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 "xxxx@qq.com"
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系统源码 (二)