Android13源码下载及全编译流程

目录

一、源码下载
1.1、配置要求
1.1.1、硬件配置要求
1.1.2、软件要求
1.2、下载环境搭建
1.2.1、依赖安装
1.2.2、工具安装
1.2.3、git配置
1.2.4、repo配置
1.3、源码下载
1.3.1、明确下载版本
 1.3.2、替换为清华源
1.3.3、初始化仓库并指定分支
1.3.4、同步全部源码
二、Android源码编译
2.1、编译环境搭建
 2.2、全编译
2.2.1、初始化编译环境
2.2.2、选择构建目标
2.2.3、编译固件
三、常见问题及解决方法
3.1、libncurses.so.5库找不到问题
 3.2、磁盘空间不足
一、源码下载
1.1、配置要求
        官方推荐配置请参考:https://source.android.google.cn/docs/setup/start/requirements?hl=zh-cn,重点有如下几项:

1.1.1、硬件配置要求
        1、内存至少 16GB,实测建议至少 32G。

        2、磁盘至少 250GB,实测建议至少 512G。

1.1.2、软件要求
        推荐使用 Ubuntu 18.04 (Bionic Beaver)、 Docker、Linux。
        2021年6月22日起,不再支持 Windows 或 MacOS 上构建。
        2020年1月1日起,不再支持 python2,请使用 python3。

1.2、下载环境搭建
1.2.1、依赖安装
        请使用如下命令安装相关依赖:

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
1.2.2、工具安装
        请使用如下命令安装相关工具:

sudo apt-get install curl git python3
1.2.3、git配置
        请使用如下命令对git进行配置:

git config --global user.name 'xxx'
git config --global user.email 'xxx@xxx.com'
1.2.4、repo配置
        请使用如下命令更新repo并进行配置:

mkdir ~/bin
PATH=~/bin:$PATH
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod +x ~/bin/repo
1.3、源码下载
1.3.1、明确下载版本
        请通过浏览器访问:https://source.android.google.cn/docs/setup/about/build-numbers?hl=zh-cn#source-code-tags-and-builds,来选取需要的版本。
        网页显示如下:

 1.3.2、替换为清华源
        请使用如下命令将源替换为清华源:

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
1.3.3、初始化仓库并指定分支
        请使用如下命令初始化仓库并指定分支,此处以android-13.0.0_r7分支为例。

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-13.0.0_r7
        执行结果如下:

1.3.4、同步全部源码
        使用如下命令进行源码同步:

repo sync -c -j8
        此处为了加快速度使用了-c参数,表示只同步当前分支,-j8表示使用8个线程今天同步代码,使用多少个线程请根据自己的机器配置自行修改。

        代码同步结果如下:

Checking out: 100% (1134/1134), done in 25m36.486s
repo sync has finished successfully.
        此时Android13源码已经同步完成。

二、Android源码编译
2.1、编译环境搭建
        使用如下命令安装JDK:

sudo apt-get install openjdk-11-jdk
        安装完成后可以使用如下命令查看是否按照成功:

                

         执行如下命令安装编译依赖:

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.2、全编译
2.2.1、初始化编译环境
        执行如下命令进行编译环境初始化:

source build/envsetup.sh
或者:
. build/envsetup.sh
2.2.2、选择构建目标
        执行lunch命令显示如下:

         选择需要构建的目标,此处以aosp_arm-eng为例,执行结果如下:

2.2.3、编译固件
        执行如下命令进行固件编译:

make -j24
        会有如下信息输出:

三、常见问题及解决方法
3.1、libncurses.so.5库找不到问题
        报错如下:

        执行如下命令:

sudo apt-get install libncurses
        输出如下信息:

 3.2、磁盘空间不足


         此处只能增加系统硬盘。

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

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

相关文章

【24美赛思路已出】2024年美赛A~F题解题思路已出 | 无偿自提

A题:资源可用性和性别比例 问题一: 涉及当灯鱼种群的性别比例发生变化时,对更大的生态系统产生的影响。为了分析这个问题,可以采用以下的数学建模思路:建立灯鱼种群模型: 首先,建立一个灯鱼种群…

20240203在WIN10下安装Miniconda

20240203在WIN10下安装Miniconda 2024/2/3 21:06 缘起:最近学习stable-diffusion-webui.git,在Ubuntu20.04.6下配置SD成功。 不搞精简版本:Miniconda了。直接上Anacoda! https://www.toutiao.com/article/7222852915286016544/ 从…

Qt 的安装以及项目的创建

目录 Qt简介Qt 开发环境安装的过程环境变量的配置Qt SDK 中的重要的工具创建一个 Qt 项目 Qt简介 开始安装教程前,首先来了解一下什么是QT。 QT(Quick Thought)是一个基于Qt库的快速应用程序开发框架。它提供了一套完整的开发工具和库&…

文本检测学习笔记_CTPN

论文地址:https://arxiv.org/pdf/1609.03605.pdf 开源代码:https://github.com/lvliguoren/pytorch_ctpn?tabreadme-ov-file 本文主要的的内容 提出了一种将文本视为由密集排列的具有固定宽度的文本候选区域组成的序列的方法。这些文本候选区域可以通…

国际国内 IT行业有哪些证书含金量高?

一、前言 在信息技术飞速发展的今天,IT行业证书作为衡量专业技能和知识水平的重要标准,越来越受到业界的重视。对于IT从业者而言,拥有一些权威性的证书不仅能够证明自己的专业能力,更是职业发展的有力助推器。基于多年的行业经验…

Python中with管理上下文

上下文管理器 上下文管理器本质就是能够支持with操作。 任何实现了 __enter__() 和 __exit__() 方法的对象都可称之为上下文管理器,上下文管理器对象可以使用 with 关键字。显然,文件(file)对象也实现了上下文管理器协议。 实现…

十一、计算机分类

1、按照性能和用途分类 计算机分类 计算机按照性能、用途和规模可以分为以下几种类型: 1)巨型机(超级计算机) 采用大规模并行处理体系结构。运算速度最快、体积最大、价格最昂贵。主要用于尖端科学研究领域,如灾难预测…

《计算机网络简易速速上手小册》第2章:计算机网络协议和标准(2024 最新版)

文章目录 2.1 IPv4 与 IPv6 - 网络世界的地址簿2.1.1 基础知识2.1.2 重点案例:使用 Python 查询本机 IPv4 和 IPv6 地址2.1.3 拓展案例1:使用 Python 创建简单的 IP 地址转换工具2.1.4 拓展案例2:使用 Python 检测本地网络的 IP 版本支持 2.2…

ES6-对象的解构赋值

一、区别一下数组的解构赋值 - 对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值二、说明 - 对象的解构赋值的内部机制&#…

【Vitis】Vitis HLS学习系列笔记 :第一个例程

在学习vitis的过程中一定要跑几个例程试试看,这中间遇到了几个小问题,记录下 有干货,请注意查收:作为新手,跑例程大概率会遇到问题,这里记录几个问题,如果刚好你也遇到,一定会帮到你…

XML详解

文章目录 XML简介语法约束DTDSchema 解析Jsoup使用对象详解JsoupDocumentElementsElementNode XML 简介 概述:Extensible Markup Language 可扩展标记语言 可扩展:标签都是自定义的。 功能 数据存储:XML 可以用来存储结构化数据&#xff0c…

HSRP配置指南

实验大纲 第 1 部分:验证连通性 步骤 1:追踪从 PC-A 到 Web 服务器的路径 步骤 2:追踪从 PC-B 到 Web 服务器的路径 步骤 3:观察当 R3 不可用时,网络的行为 第 2 部分:配置 HSRP 主用和 备用路由器 步…

rasa3.X 自定义action的注册问题

rasa3.X 自定义action的注册问题 文章目录 rasa3.X 自定义action的注册问题前言一、问题重述二、问题解决 前言 幸好在这之前抽时间稍微看了一点django源码,让我对于python的导入机制有了一个概念。虽然还不是很确切的知道python import机制,不过在看到…

QT学习日记 | 初始QT

目录 一、创建QT文件 二、目录结构讲解 1、.pro文件 2、源文件与头文件 3、编译运行 4、界面文件 三、梦开始的地方(Hello World!) 1、代码方式 2、拖拽方式 四、Qt中的“容器” 五、Qt的对象树机制 1、对象树的引入 2、对象树…

MySQL进阶之锁(全局锁以及备份报错解决)

锁 全局锁 全局锁就是对整个数据库实例加锁,加锁后整个实例就处于只读状态,后续的DML的写语句,DDL语 句,已经更新操作的事务提交语句都将被阻塞。 其典型的使用场景是做全库的逻辑备份,对所有的表进行锁定&#xff…

030-安全开发-JS应用NodeJS指南原型链污染Express框架功能实现审计

030-安全开发-JS应用&NodeJS指南&原型链污染&Express框架&功能实现&审计 #知识点: 1、NodeJS-开发环境&功能实现 2、NodeJS-安全漏洞&案例分析 3、NodeJS-开发指南&特有漏洞 演示案例: ➢环境搭建-NodeJS-解析安装&…

MySQL知识点总结(三)——事务

MySQL知识点总结(三)——事务 事务事务的四大特性ACID原子性一致性隔离性持久性 脏读、幻读、不可重复读脏读不可重复读幻读 隔离级别读未提交读已提交可重复读串行化 事务的原理InnoDB如何实现事务的ACID事务的两阶段提交redo log与binlog的区别事务两阶…

【DevOps】产品需求文档(PRD)与常见原型软件

文章目录 1、PRD介绍1.1、概述1.2、前提条件1.3、主要目的1.4、关键内容1.5、表述方式1.6、需求评审人员1.7、一般内容结构 2、需求流程3、常见原型软件3.1、Word3.2、Axure3.2.1、详细介绍3.2.2、应用分类3.2.3、优缺点 3.3、摹客RP3.4、蓝湖3.5、GUI Design Studio 1、PRD介绍…

业务流程自动化平台在制造业应用案例,助力业务自动化、智能化

捷昌驱动成立于2000年,并于2018年9月在上海证券交易所上市,是一家专注于线性驱动产品研发、生产及销售的科技集团。 公司整合全球资源,为智慧办公、医疗康护、智能家居、工业自动化等关联产业提供驱动及智能控制解决方案,以科技驱…

荣耀手机如何录屏?在线分享3个录屏方法

荣耀手机如何录屏?荣耀手机录屏是一项非常实用的功能,它可以帮助我们轻松记录手机屏幕上的内容,无论是游戏攻略、教育学习还是工作演示,都能够方便地进行录制。通过录屏,我们可以随时随地记录和分享自己的操作和见解。…