当前位置: 首页 > news >正文

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.lryc.cn/news/262862.html

相关文章:

  • 2023.12.18杂记
  • 智能优化算法应用:基于阿基米德优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • K8s内容器拓扑图工具
  • 掌握 Babel:让你的 JavaScript 与时俱进(上)
  • Mysql进阶-InnoDB引擎事务原理及MVCC
  • 「X」Embedding in NLP|神经网络和语言模型 Embedding 向量入门
  • JVM-11-运行时栈帧结构
  • 【经典LeetCode算法题目专栏分类】【第6期】二分查找系列:x的平方根、有效完全平方数、搜索二位矩阵、寻找旋转排序数组最小值
  • 【大麦小米学量化】使用xtquant调用迅投MiniQMT客户端定时操作逆回购,再也不担心忘了赚零花钱了(含完整源代码)
  • php hyperf 读取redis,存储到数据库
  • 云原生之深入解析K8S 1.27新特性如何简化状态服务跨集群平滑迁移
  • 鸿蒙OS:打破界限的操作系统新星
  • 预测性维护在汽车制造行业中的应用
  • 分布式链路追踪 —— 基于Dubbo的traceId追踪传递
  • 【uniapp小程序-上拉加载】
  • ubuntu添加路由
  • python图像二值化处理
  • 4.配置系统时钟思路及方法
  • 使用openMVS库,在VS2022中启用c++17标准编译仍然报错
  • uniGUI之上传文件UniFileUploadButton
  • 福德植保无人机工厂:创新科技与绿色农业的完美结合
  • JsRpc技术服务搭建,最简单的JSRPC,Flask+undetected-chromedriver
  • <优化接口设计的思路>:接口安全
  • Gitee基础知识
  • 网络空间搜索引擎- FOFA的使用技巧总结
  • 用户行为分析遇到的问题-ubantu16,hadoop3.1.3
  • camera曝光时间
  • Vue 项目中使用 debugger 在 chrome 谷歌浏览器中失效以及 console.log 指向去了 vue.js 代码
  • 翻译: ChatGPT Token消耗粗略计算英文就是除以四分之三
  • 【线性代数】期末速通!