Ubuntu 虚拟机环境,编译AOSP源码

环境 : VMware虚拟机 Ubuntu 20.04.3 LTS

搭建配置开发环境

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 python

一。下载编译源码

1.下载repo工具

mkdir ~/bin

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/bin/repo

chmod +x ~/bin/repo

配置清华镜像地址

sudo apt install vim

vim .bashrc

编辑配置

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

PATH=~/bin:$PATH

保存退出后,使配置生效

source ~/.bashrc

2.初始化仓库 同步远程代码

git config --global user.email "you@example.com"

git config --global user.name "Your Name"

mkdir aosp

cd aosp 

初始化仓库,-b 指示分支,这里使用 android11

//其他版本查看地址

https://source.android.com/docs/setup/about/build-numbers?hl=zh-cn#source-code-tags-and-builds

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-11.0.0_r48

报错:   

def print(self, *args, **kwargs):
            ^
SyntaxError: invalid syntax

原因:本机装了python2和python3,默认使用python2, 而repo需要python3

解决方法:

查看并删除本机python2

ll /usr/bin/python
lrwxrwxrwx 1 root root 16 Jul 28 15:16 /usr/bin/python -> /usr/bin/python2*

sudo rm /usr/bin/python

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

注意:repo工具需要python3 但是aosp源码编译可能需要python2。源码下载完成后,需要把本机python版本配置为python2,否则可能编译报错。

#同步远程代码

repo sync

下载 解压 6个小时左右

3.编译源码

如果repo拉代码修改过python版本,记得修改回python2版本。

source build/envsetup.sh
lunch aosp_x86_64-eng
make -j4

6核处理器 32G内存 编译了5个小时

二。源码运行

运行模拟器

emulator

报错:

1.CPU acceleration status: KVM requires a CPU that supports vmx or svm More info on configuring VM acceleration on Linux:

解决方法

虚拟化引擎设置 需要勾选上  虚拟化 Intel VT-x/EPT或 AMD-V/RVI(V)

2.emulator: ERROR: No AVD specified. Use '@foo' or '-avd foo' to launch a virtual device named 'foo'

解决方法:

重新配置要读取的模拟器信息

lunch aosp_x86_64-eng

启动模拟器

emulator

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

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

相关文章

2023年全球运维大会(GOPS深圳站)-核心PPT资料下载

一、峰会简介 1、大会背景与概述 全球运维大会(GOPS)是运维领域最具影响力的国际盛会,每年都会汇聚世界各地的运维专家、企业领袖、技术爱好者,共同探讨运维技术的最新发展、最佳实践以及面临的挑战。2023年GOPS深圳站作为该系列…

JDK21+HADOOP3.2.2+Windows安装步骤

哈哈哈 最近转战大数据这块了,分享一下hadoop3.2.2的安装步骤 借鉴了不少大佬的文章,如有雷同,都是大佬们的 1.JDK安装 我选择的是JDK21 以下是下载网址和截图,这个没有太多的,一般下载最新的就可以 JDK: Java Down…

Excel 如何把一句话里的特定字标记颜色

方案: 借助Work功能 诉求:把如下Excel内容里所有的天标记为红色 第一步:复制到World里 第二步: CtrlH 然后如图执行替换 第3步:World 复制会 Excel

HTML---CSS美化网页元素

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一.div 标签&#xff1a; <div>是HTML中的一个常用标签&#xff0c;用于定义HTML文档中的一个区块&#xff08;或一个容器&#xff09;。它可以包含其他HTML元素&#xff0c;如文本、图像…

引领半导体划片机行业,实现钛酸锶基片切割的卓越效能

在当今快速发展的半导体行业中&#xff0c;博捷芯以其卓越的技术实力和精准的行业应用&#xff0c;脱颖而出&#xff0c;再次引领行业潮流。这次&#xff0c;他们将先进的BJX3356划片机技术应用于钛酸锶基片的切割&#xff0c;为半导体制造行业的进一步发展提供了强大的技术支持…

olap/clickhouse-编译器优化与向量化

本文主要结合15721和clickhouse源码来聊聊向量化&#xff0c;正好我最近也在用Eigen做算子加速&#xff0c;了解下还是有好处的。 提示编译器 提示编译器而不是复杂化简单的代码 什么时候使用汇编&#xff0c;什么时候使用SIMD&#xff1f;下面有几个基本原则&#xff1a; …

饥荒Mod 开发(十六):五格装备栏

饥荒Mod 开发(十五)&#xff1a;小地图显示物品 源码 饥荒中的装备栏只有3个实在太少了&#xff0c;手&#xff0c;头&#xff0c;身体。 身体上装备的物品会有冲突&#xff0c;很多不能一起装备&#xff0c;比如 衣服&#xff0c;项链&#xff0c;背包等。 而这三种物品又有自…

OpenHarmony应用开发环境搭建指南

OpenHarmony的应用开发主要是基于Deveco Studio&#xff08;目前只支持Windows及Mac平台&#xff09;搭配相应的SDK进行&#xff0c;现对开发环境的搭建进行说明。 1:Deveco下载安装 下载对应平台的安装包即可。接下来以Windows平台为例&#xff0c;进行开发环境的搭建。 下载…

解决:Invalid bound statement (not found): com.XXXXX.UserMapper.countUser

问题&#xff1a;Invalid bound statement (not found): com.XXXXX.UserMapper.countUser 原因&#xff1a;mapper.java和mapper.xml映射不上 解决方法&#xff1a; 1、在application.properties全局配置文件中没有加上映射mapper文件的配置,mapper为resources下的文件&…

Note3---初阶二叉树~~

目录​​​​​​​ 前言&#x1f344; 1.树概念及结构☎️ 1.1 树的概念&#x1f384; 1.2 树的相关概念&#x1f99c; 1.2.1 部分概念的加深理解&#x1f43e; 1.2.2 树与非树&#x1fab4; 1.3 树的表示&#x1f38b; 1.4 树在实际中的运用&#xff08;表示文件系统…

JMeter定时器

JMeter定时器 一、同步定时器1、场景2、位置3、参数4、使用 二、常数吞吐量定时器1、场景2、作用3、位置4、参数 三、固定定时器1、场景2、位置3、用例 一、同步定时器 1、场景 1w人同时使用电商网站&#xff1a;相对并发&#xff0c;可用线程组实现1w人同时秒杀&#xff1a;绝…

MySQL数据库 函数

目录 函数概述 字符串函数 数值函数 日期函数 流程函数 函数概述 函数是指一段可以直接被另一段程序调用的程序或代码。也就意味着&#xff0c;这一段程序或代码在MysQL中已经给我们提供了&#xff0c;我们要做的就是在合适的业务场景调用对应的函数完成对应的业务需求即…