【Android 12 AOSP学习】Android 12源码下载编译

2023-11-06

一、搭建环境

liunx系统:Ubuntu20.04

Android系统:12

1.安装 Repo

下载Repo前先安装 curl

sudo apt-get install curl

下载好 curl 库后,设置清华源下载 Repo ,然后给repo文件添加可执行权限

Ubuntu20.04无法使用apt安装repo,我们可以使用下面这种方法:

1,创建repo存放目录bin,并配置环境变量:

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

2,下载repo启动程序

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

设置 repo 镜像源自动更新

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

安装Python,适用于 Python 3

sudo apt install python3

如果收到“/usr/bin/env 'python' no such file or directory”错误消息,请使用以下解决方案之一:

sudo ln -s /usr/bin/python3 /usr/bin/python

2.配置git

安装git

sudo apt-get install git

配置 Git,没有安装 git 要先安装 git

# 引号里面填自己设置的用户和邮箱
git config --global user.name "XX"
git config --global user.email "XXX"

这里查看一下Git是否配置成功

git config --global --list

3.下载源码

直接下载

Git配置完成后创建工作目录

mkdir ~/Android_12_AOSP
cd ~/Android_12_AOSP

运行 repo init 获取最新版本的 Repo 及其最新的 bug 修复。使用清华源

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

最后同步代码

repo sync

成功后会在终端出现下面内容

repo sync finished successfully.

注:在同步时尽量保证一次成功

二、编译源码

编译源码时处理器可以根据自己电脑CPU核心数尽量设置多一些

1.准备编译环境

安装jdk8

sudo apt-get update
sudo apt-get install openjdk-8-jdk

安装依赖包,Ubuntu18.04系统以上

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


sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

2.源码整编

进入到源码根目录

cd Android_12_AOSP/

在根目录下输入以下指令

source build/envsetup.sh
make clobber
# 还有其他两个类似命令
# make clean
# make installclean

lunch选择准备编译的版本,根据自己的需要选择版本,编译过以下内容

lunch 12  #对应我本地 aosp_car_x86-userdebug # 能启动车载模拟器

lunch sdk_phone_x86_64  # 能启动手机模拟器

开始编译

make -j6 2>&1 | tee build.log  # tee build.log 命令表示输出编译日志到build.log文件

编译成功后,在 Android 模拟器中运行 AVD 系统映像:

emulator                   # 正常启动模拟器
emulator -writable-system  # 以可写模式启动模拟器

三、虚拟机安装 VMware Tools

1.在VMware菜单栏中点击 虚拟机 > VMware Tools 安装

2.然后双击出现的桌面的 **VMware Tools CD文件 **将里面的一个压缩包复制到任意目录下

3.解压缩安装程序

tar zxpf VMwareTools-x.x.x-yyyy.tar.gz

4.准备安装程序

cd vmware-tools-distrib
sudo ./vmware-install.pl

之后一路点击 回车键 和 y或yes 就行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Android 12 AOSP学习】Android 12源码下载编译 的相关文章

随机推荐

  • Qt unicode字串转中文

    有时候 直接在html里面获取的字符串就是带有 u 的 然后直接显示的时候 u 也会显示出来 这里就是教你如何去掉 u QString filename u6211 u662f u4e2d u6587 do int idx filename
  • 将vscode字体字号调大

    1 进入vscode 2 找到页面左下角齿轮标符点击 然后在弹出选项那里点击设置 setting 3 点击文本编辑器 4 点击字体 5 找到font size点击设置数字 个人建议18 22 即可
  • ‘close’ was not declared in this scope

    close was not declared in this scope 没有包含头文件 unistd h 造成的 加上 include
  • Spring Cloud 学习笔记二:搭建微服务工程之Eureka 注册中心开启安全认证

    目录 Eureka 注册中心开启密码认证 Eureka 注册中心开启密码认证 Eureka 自带了一个 Web 的管理页面 方便我们查询注册到上面的实例信息 但是有一个问题 如果在实际使用中 注册中心地址有公网 IP 的话 必然能直接访问到
  • 如何在30天内,通过TikTok变现一万美金。按照我的方法,你也可以

    大家好 我是项柚 最近创作者基金愈发火热 Tiktok又热了起来 但还是很多朋友停留在川普封停TT的时间节点上 一直没有时间 今天特意写一篇文章来详细分析 其实圈子很重要 方向很重要 所以很多Tiktok运营者做不好的原因是没有交流的圈子
  • [HFCTF2020]EasyLogin

    知识点 jwt伪造 jwt 全称 Json Web Token 是一种令牌格式 可以用来区分各个用户 形式是下面这样 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 eyJzZWNyZXRpZCI6MSwidXNl
  • GitHub C 和 C++ 开源库的清单(含示例代码)

    内容包括 标准库 Web应用框架 人工智能 数据库 图片处理 机器学习 日志 代码分析等 标准库 C 标准库 包括了STL容器 算法和函数等 C Standard Library 是一系列类和函数的集合 使用核心语言编写 也是C ISO自身
  • PintOS lab2 User Programs 实验记录

    Background 大体流程如下图所示 显然这时候start process无法被调度到 然后start process 里面load out文件 o文件就是对象文件 是可重定向文件的一种 通常以ELF格式保存 里面包含了对各个函数的入口
  • 教你手机如何查看真实的IP地址

    有朋友不会查询自己手机的IP地址 很多时候我们需要使用vpn切换手机当前的IP 如何判断我们切换IP成功了呢 今天站长就教你手机如何查看目前真实的IP地址 1 打开手机浏览器 2 在搜索框里输入 ip 然后点击搜索 在搜索结果页面就会显示你
  • ESP32 上快捷部署 Tensorflow lite 机器学习(TinyML)

    在这篇文章中 我将向您展示使用 Arduino IDE 将 TensorFlow Lite 模型部署到 ESP32 的最简单方法 无需任何编译内容 Arduino 库 这个 Arduino 库是为了简化使用 Arduino IDE 将用于微
  • 4.8xml于json

    HTTP 协议 HyperText Transfer Protocol 超文本传输协议 是 TCP IP 协议集中的协议 是一个简单的请求 响应协议 指 定了客户端发送给服务器的消息以及服务器的响应 所有的 WWW 文件都必须遵守这个标准
  • matplotlib绘制饼状图

    源自http blog csdn net skyli114 article details 77508430 ticket ST 41707 PzNbUDGt6R5KYl3TkWDg passport csdn net pyplot使用pl
  • 接口测试基础

    目录 一 接口及接口测试概念 1 接口 接口的类型 2 接口测试 二 HTTP协议 1 HTTP协议的特点 2 URL格式 3 HTTP请求 4 HTTP响应 三 接口规范 1 传统风格接口 2 RESTful风格接口 四 接口测试流程 1
  • Python 11. OpenCV 透视变换

    import cv2 import numpy as np from matplotlib import pyplot as plt img cv2 imread pic4 PNG rows cols img shape 2 cv2 ims
  • 支持图文转换!PSD文档处理工具Aspose全新升级

    Aspose PSD是高级PSD和入门级AI文件格式操作API 允许创建和编辑Photoshop文件 并提供更新图层属性 添加水印 执行图形操作或将一种文件格式转换为另一种文件的功能 没有任何Adobe Photoshop或Adobe Il
  • [系统

    系统环境说明 系统 Deepin V20 平台 amd64 参考文献 asdf maven asdf document asdf plugins asdf vm安装 见多版本管理命令行工具asdf vm安装及使用 asdf vm安装Mave
  • 「C++学习笔记」面向.Net Core的(C++)CLR类库非专业入门(+使用Opencv)

    关键词 C CLR Net Core Net Famework Opencv C 目录 什么是CLR类库 本文说明 创建Demo程序 调用dll 通过项目引用 通过dll文件引用 其他还没完全清楚的坑 有关C CLI这块的资料真的很少而且都
  • 如何看待ChatGPT

    如何看待ChatGPT 如何看待ChatGPT 语言学家乔姆斯基说 这是一个抄袭的机器 欺骗性机器 ChatGPT使用大量文本数据进行训练 然后以一种令人信服的修饰语句展现 这使得它和人的互动能力更加契合 但是仍然不是一个充满创造力的智能机
  • 微信小程序之拨打电话

    微信小程序拨打电话功能的实现是采用wx makePhoneCall 具体方法如下 wxml lt view gt 电话 15888888888 lt view data ph 15888888888 bindtap callPhone gt
  • 【Android 12 AOSP学习】Android 12源码下载编译

    一 搭建环境 liunx系统 Ubuntu20 04 Android系统 12 1 安装 Repo 下载Repo前先安装 curl 库 sudo apt get install curl 下载好 curl 库后 设置清华源下载 Repo 然