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

news/2024/10/28 16:49:43/

1. 前言

1.1 编译源码可以干什么

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

Android_9">1.2 Android系统源码编译方式

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

AOSP_15">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系统源码 (二)


http://www.ppmy.cn/news/1542636.html

相关文章

移动开发(五):.NET MAUI中自定义主题设置

目录 一、.NET MAUI主题设置原理 二、.NET MAUI主题设置案例 2.1 创建主题文件 2.2 修改App.xaml 文件 2.3 设置默认主题的三种方式 2.4 通过按钮切换主题 三、.NET MAUI主题设置技巧 四、总结 今天给大家分享.NET MAUI应用中如何自定义主题,提升APP本身个性…

我在1024谈华为

华为的发展历程与技术创新 华为自成立以来,一直是通信技术领域的重要参与者。让我们回顾一下华为的一些关键发展里程碑: 1987年,华为在深圳成立,起初专注于电话交换网络的研发和销售。 进入1990年代,华为转型为通信…

k8s dockers 部署 k8s运行docker

资源:最低配置 2G、2CPU。三台机器 准备工作: 1:关闭防火墙 systemctl stop firewalld & systemctl disable firewalld2:关闭Swap sed -ri s/.*swap.*/#&/ /etc/fstab3:关闭selinux setenforce 04&#xff…

python 深度神经网络 归一化后的数据还原 pytorch ,tensorflow

归一化后的数据还原是指将经过Min-Max归一化处理的数据恢复到原始的尺度。这需要使用归一化时的最小值和最大值。如果你在使用MinMaxScaler进行归一化,可以通过inverse_transform方法来还原数据。 假设你有一组归一化后的数据和一个MinMaxScaler对象,你…

【Qt】系统相关——多线程、Qt多线程介绍、常用函数、线程安全、网络、UDP Socket、TCP Socket

文章目录 Qt系统相关1. 多线程1.1 Qt多线程介绍1.2 常用函数1.3 线程安全 2. 网络2.1 UDP Socket2.2 TCP Socket Qt 系统相关 1. 多线程 1.1 Qt多线程介绍 QThread 代表一个在应用程序中可以独立控制的线程,它还可以和进程中的其他线程共享数据。QThread 对象管理…

【线下+线上会议|国内外双会场】2024年第四届数字化社会与智能系统国际学术会议(DSInS 2024)-悉尼/郑州双会场

2024年第四届数字化社会与智能系统国际学术会议(DSInS 2024)-悉尼/郑州双会场 2024 4th International Conference on Digital Society and Intelligent Systems 会议官网:www.dsins.org 2024 4th International Conference on Digital Soc…

ReactNative TurboModule(3)

ReactNative TurboModule 简述 ReactNative新架构的两个核心支柱是TurboModule和Fabric渲染器,前者的功能是提供一个Native的模块,比如蓝牙之类的,后者则是提供一个自定义Native UI组件的能力,ReactNative本身虽然提供了非常多的…

html和css实现页面

要使用HTML和CSS创建一个简单的网页,你可以遵循以下步骤: 1.创建HTML结构:定义页面的不同部分,如头部、主体、底部等。 2.添加CSS样式:为HTML元素添加样式,如颜色、字体、布局等。 下面是一个简单的HTML和…