Android 13 源码获取与构建

news2024/11/25 11:33:14

文章目录

  • 1. 环境准备
    • 1.1 基本信息
    • 1.2 系统初始化
      • 1.2.1 更新 Ubuntu 软件包
      • 1.2.2 安装 git 工具
      • 1.2.3 安装依赖包(Ubuntu 18.04)
      • 1.2.4 修改默认python版本
      • 1.2.5 安装 repo 工具
  • 2. 源码下载完成
    • 2.1 创建源码目录
    • 2.2 初始化源码仓库
    • 2.3 开始下载源码
    • 2.4 Android 13 源码目录
  • 3. 构建 Android 系统
    • 3.1 切换 dash 为 bash
    • 3.2 安装 JDK
    • 3.2 开始构建
    • 3.3 选择构建目标
    • 3.4 构建目标平台镜像

1. 环境准备

1.1 基本信息

资源版本
操作系统Ubuntu Desktop 18.04
官方源码地址https://android.googlesource.com/platform/manifest
国内镜像地址https://aosp.tuna.tsinghua.edu.cn/platform/manifest
Android版本android-13.0.0_r18
磁盘空间400G
机器内存16G

1.2 系统初始化

1.2.1 更新 Ubuntu 软件包

su - root
apt-get update
apt-get upgrade

1.2.2 安装 git 工具

sudo apt-get install git

1.2.3 安装依赖包(Ubuntu 18.04)

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 vim

1.2.4 修改默认python版本

su - root
rm -rf /usr/bin/python
ln -s /usr/bin/python3 /usr/bin/python

验证python版本,确认 python 的默认版本是 3.x

python --version

在这里插入图片描述

1.2.5 安装 repo 工具

cd /opt
git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo
cd git-repo

修改 repo 中 REPO_URL 变量值。将变量值设置为:https://mirrors.tuna.tsinghua.edu.cn/git/git-repo

vim repo

在这里插入图片描述

然后将 repo 文件复制到 /usr/bin 目录中

su - root
cp repo /usr/bin
chmod +x /usr/bin/repo

2. 源码下载完成

2.1 创建源码目录

su - root
cd /opt
mkdir android
cd android

2.2 初始化源码仓库

  • 配置 git 信息
git config --global user.email "email"
git config --global user.name "name"
  • 初始化源码仓库
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-13.0.0_r18

2.3 开始下载源码

repo sync -c -j8

等待下载完成。
在这里插入图片描述
源代码下载的时间比较长,一共耗时1小时12分钟。源码下载到本地后会自动进入文件检验阶段,用与校验下载的文件是否有缺失。

源码下载注意事项

  • 下载中断可能导致部分包无法成功获取,如下图所示
    在这里插入图片描述
    如果遇到上图信息,表示源码下载失败,需要重新下载。由于源码下载的时间比较长,建议关闭电脑的休眠功能,否则当电脑休眠后下载可能会中断。

2.4 Android 13 源码目录

在这里插入图片描述
源代码下载后约占用 126G 的磁盘空间。

3. 构建 Android 系统

3.1 切换 dash 为 bash

sudo dpkg-reconfigure dash

选择 No,将会切换到 bash 环境
在这里插入图片描述

3.2 安装 JDK

sudo apt-get install openjdk-11-jdk

3.2 开始构建

source build/envsetup.sh

3.3 选择构建目标

lunch

在这里插入图片描述

3.4 构建目标平台镜像

m -j8

将会进入系统编译构建过程
在这里插入图片描述
Android 系统构建的过程非常长,构建完成后,将会在 out 目录中查看到编译好的系统镜像。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/114467.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

m可见光通信的空间调制(sm)误码率matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 可见光通信技术(Visible Light Communication,VLC)是指利用可见光波段的光作为信息载体,在空气中直接传输光信号的通信方式。可见光通信技术绿色低…

virtio vring原理

vring原理 在 virtio 设备上进行批量数据传输的机制被称为 virtqueue 。每个设备可以拥有零个或多个 virtqueue ,当 Driver 想要向设备发送数据时,它会填充 Descriptor Table 中的一项(或将几项链接在一起),并将描述符…

圣诞树拼图游戏unity制作

2022年圣诞节到来啦,很高兴这次我们又能一起度过~ 一、前言 提示:使用unity来制作一个拼图游戏,图片便是圣诞树。 二、创意名 圣诞树拼图游戏 三、效果展示 圣诞树拼图游戏最终效果。 游戏中效果如图: 游戏拼图完成后效果如图&am…

vue实现随机生成分享海报(内容动态)

大家好,我是雄雄。 前言 昨天写了篇文章:自己整理的vue实现生成分享海报(含二维码),看着网上的没实现 主要是介绍了如何使用vue实现,动态分享内容为海报,且附带二维码,扫描二维码能…

shell脚本四剑客之awk详解

文章目录awk的介绍awk能够干什么awk的格式工作原理:记录和域内建变量的用法1. FS2. OFS3.RS4. ORS5. NF6. NRBEGIN 和END语句块常见案例1. 使用NR行号提取ip2. 打印UID小于10的账号名称和UID信息3. 数学运算4. AWK打印硬盘设备名称,默认以空格为分割&…

UDP用户数据报协议(计算机网络-运输层)

目录 UDP 概述 UDP 的主要特点 UDP 的问题 UDP的多路分用模型 UDP 的首部格式 UDP 概述 用户数据报协议(User Datagram Protocol,UDP) UDP 只在 IP 的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能 虽…

计算机网络——网络层功能概述

网络层 网络层的主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层的传输单位成为数据报。 数据报是一组比较长的数据,分组则是将数据报划分为不同的片段 网络层的第一个功能:路由的选择和分组的转发。 网络层…

python词云图词频统计

目录 一:安装必要的库 二:数据分析 条形图可视化 三:数据分析 词频统计 词云图可视化 一:安装必要的库 导入必要的库 import collections # 词频统计库 import os import re # 正则表达式库 import urllib.error # 指定url&…

WRF进阶:antro_emiss工具处理全球大气人为排放(EDGRA_HTTPs)/人为排放清单前处理

本内容视频版讲解:全球人为排放处理 介绍 一般人为数据的排放前处理使用pre_chen_src工具,然而pre_chen_src处理后的文件并不是WRF所能读取的文件格式,需要使用onvert_emiss.exe,生成WRF需要的人为排放的nc数据。 在WRF-chem3.6…

煤矿视频监控分析检测 yolo

煤矿视频监控分析检测利用python基于yolo深度学习架构,对现场画面进行实时分析检测。我们使用YOLO(你只看一次)算法进行对象检测。YOLO是一个聪明的卷积神经网络(CNN),用于实时进行目标检测。该算法将单个神经网络应用于完整的图像,然后将图像…

单片机——LED点阵

1. 基本介绍 LED点阵 LED点阵是由发光二极管排列组成的显示器件,通常应用较多的是88点阵,然后通过多个88点阵组成不同分辨率的LED点阵显示屏,如4个88组成的1616点阵 8*8点阵由64个LED组成,每个LED是放置在行线和列线的交叉点上…

LVGL学习笔记3 - 样式Style

目录 1. 初始化样式 2. 设置样式 3. 添加和移除样式 4. 验证 5. 状态(State) 6. 部分(Parts) 样式用于设置对象的外观,比如颜色等属性,存储在 lv_style_t 变量中,这个变量应该是static…

不写一行代码(二):实现安卓基于PWM的LED设备驱动

文章目录一、前言二、系列文章三、准备工作3.1 查找PWM引脚3.2 原理图:确认引脚位置3.3 PWM Controller四、查阅PWM bindings五、编写设备树节点5.1 实现节点:pwm-leds5.2 测试命令六、后语一、前言 在完成了基于GPIO的LED设备驱动的文章后,…

3天学会撰写软件发明专利——3.生命周期

“无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。”。 一、专利授权生命周期…

4.1 协程:协程基础

1.协程 协程,又称微线程。协程是python个中另外一种实现多任务的方式,只不过比线程更小占用更小执行单元(理解为需要的资源)。 为啥说它是一个执行单元,因为它自带CPU上下文。这样只要在合适的时机, 我们可…

C++类和对象概念及实现详解(上篇)

文章目录 一、什么是类和对象呢? 1、类的引入 2、类的定义 3、类的访问限定符 4、类对象的储存方式 5、this指针的特性 二、类的六个默认成员函数详解 1、构造函数 2、析构函数 3、未完待续…… 标题:类和对象概念及实现详解(上篇&#xff0…

vue3 antd table表格——自定义单元格样式(二)利用rowClassName给table添加行样式

vue3 antd项目实战——修改ant design vue组件中table表格的默认样式(二)知识调用场景复现修改table表格的行样式一、rowClassName添加行样式二、表格的不可控操作写在最后知识调用 文章中可能会用到的知识链接vue3ant design vuets实战【ant-design-vu…

从头开始用树莓派做一个NAS【最新超详细教程】

一、概述 众所周知在办公的时候两台电脑之间经常倒数据资料非常麻烦,而NAS可以很好的解决这个问题。树莓派搭建NAS方法有很多,我们之前也拍过直接用Samba、FTP这些来实现NAS功能,但是这些需要你会在命令行进行配置,而且对于新手用…

【Linux】Linux权限管理

目录一.Linux用户权限1.权限的概念2.用户分类3.切换用户4.sudo提权二.Linux文件权限1.文件属性2.文件类型3.文件角色划分4.基本权限三.文件访问权限的相关设置方法1.chmod2.chown3.charp4.file5.权限拒绝四.默认权限umask五.目录的权限六.粘滞位1.背景2.准备3.情况4.粘滞位一.L…

初识Docker:(1)什么是docker

初识Docker:(1)什么是docker项目部署的问题Docker总结项目部署的问题 大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题: 依赖关系复杂,容易出现兼容性问题开发、测试、生产环境有差…