windows编译安卓源码记录

news2024/12/24 21:03:07

环境

Windows10 + vmware17 + ubuntu22

ubuntu环境设置

装完ubuntu系统后拖拽复制文件进去验证vmtools安装情况,如果vmtools异常很麻烦,试了n多方法,最后还是重新安装系统解决, 如果ok的话,再继续下步骤,否则在vm重新装系统,装机注意个性化选择,防止后面再改

右键displagy设置分辨率,语言等
在这里插入图片描述
配置后
在这里插入图片描述
在这里插入图片描述

安装依赖

如果觉得卡的时候可以更新源
Ubuntu 22.04:jammy
Ubuntu 20.04:focal

切换到root用户

sudo su

相关文件安装

依赖

sudo apt-get install -y libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install -y tofrodos libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install -y dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install -y gnupg flex bison gperf build-essential
sudo apt-get install -y zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install -y libc6-dev-i386
sudo apt-get install -y lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install -y libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install -y lib32z-dev ccache
sudo apt-get install -y python2-minimal

7zip 根据需要选择

如果windows下解压下载的安卓系统文件符号链接会失效,导致编译命令失效,我不是通过repo下载的,所以。。。

sudo apt install -y p7zip-full

解压到ubuntu系统

7z x android-10.0.0_r41.7z.001 -o/home/ubuntu/Desktop/android -y -bsp2

编译

编译命令比较简单,主要是处理编译期间出现的异常

source build/envsetup.sh
//选择平台编译选项
lunch 
// 如遇到编译失败。下面命令可再次运行
make -j8

注意 lunch 根据自己需要选择选项,后续要启动模拟器,电脑为x86架构,选择 aosp_x86-eng
在这里插入图片描述

n时间后,ok
在这里插入图片描述

验证

前后耗费一天多时间,终于搞定

emulator 

在这里插入图片描述

问题记录

共享文件夹找不到问题

重新安装系统解决 vmtools问题/或者自行安装,自行安装好像都有点问题

/mnt/hgfs权限问题/重启失效/找不到

参考

确定vmtools安装正常,失败重装系统和vmtools

权限

chmod 777 /mnt/hgfs

//先取消挂载,再设置权限
sudo umount /mnt/hgfs
sudo vmhgfs-fuse .host:/ /mnt/hgfs

重启失效

方式1 共享文件夹设置中禁用,再启用。
方式2 vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
方式3 开机启动

sudo gedit /etc/rc.local
#!/bin/sh
vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
exit

添加权限,开启rc服务

rc.local 服务启动

快捷方式创建

ln -s /mnt/hgfs ~/Desktop/hgfs

xdg-user-dirs-gtk-update无效 桌面中文路径改英文

echo en_US > ~/.config/user-dirs.locale
echo en_US > ~/.config/user-dirs.locale
显执行上述命令之一,然后再执行 xdg-user-dirs-gtk-update 了
查看:gedit ~/.config/user-dirs.dirs

打开文件左上角

sudo apt install -y compizconfig-settings-manager
ccsm

7zip符号文件 在windows下会解压异常

ubuntu正常
下载下来的安卓源码压缩包不要在windows下解压,编译不正常

7z a -r -bsp2 out.7z  test*
7z x out.7z -ooutput_folder -y -bsp2

编译错误

go配置问题

FAILED: ninja: 'build/blueprint/pathtools/glob_test.go', needed by 'out/soong/.bootstrap/blueprint-pathtools/test/test.go', missing and no known rule to make it
grep -rn glob_test.go

"pathtools/fs_test.go " ,“glob_test.go”,“pathtools/glob_test.go”,
build/blueprint/Blueprints注释掉上面三个go文件配置

so未找到

apt-get install -y libncurses5

// 或者试试这个
# 安装 lib32ncurses5-dev
apt-get -y install aptitude
aptitude install lib32ncurses5-dev 

prebuilts/clang/host/linux-x86/clang-3289846/bin/clang.real: error
while loading shared libraries: libncurses.so.5: cannot open shared
object file: No such file or directory

api

make api-stubs-docs-update-current-api

you have tried to change the API from what has been previously approved.

To make these errors go away, you have two choices:
   1. You can add '@hide' javadoc comments to the methods, etc. listed in the
      errors above.

   2. You can update current.txt by executing the following command:
         make api-stubs-docs-update-current-api

      To submit the revised current.txt to the main Android repository,
      you will need approval.
******************************


python版本管理

 sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2

参考

手把手一步步实现 Ubuntu20.04编译Android10系统源码
apt-get源切换
Ubuntu 22.04 搭建编译Android源码环境

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

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

相关文章

【C++入门第四期】类和对象 ( 上 )

前言类的使用类的定义类的两种定义方式:成员变量名的定义建议 类的访问限定符类的作用域类的实列化如何计算类的大小结构体内存对齐规则 this指针this指针的特性 前言 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过…

Linux的目录结构

在Linux世界里,一切皆文件硬件如显卡、cpu等都会映射成一个文件具体的目录结构/bin 是Binary的缩写,这个目录存放着最经常使用的命令 /sbin(/usr/sbin、/usr/local/sbin) s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序 /h…

Elasticsearch扫盲篇

1. 什么是搜索? 在日常的工作和学习中,当我们说想找查询任何的信息的时候,可能第一时间会想到上百度或者谷歌去搜索一下。比如说找一部自己喜欢的电影,或者说找一本喜欢的书,或者找一条感兴趣的新闻。但是百度和谷歌不…

QML基础模型(Basic Model)

最基本的分离数据与显示的方法是使用Repeater元素。它被用于实例化一组元素项,并且很容易与一个用于填充用户界面的定位器相结合。 最基本的实现举例,repeater元素用于实现子元素的标号。每个子元素都拥有一个可以访问的属性index,用于区分不…

第11章 项目人力资源管理

文章目录 项目人力资源管理 过程11.2.1 编制项目人力资源计划的工具与技术 375(1)层次结构图(工作、组织、资源 分解结构)(2)矩阵图(责任分配矩阵,RAM)(3&…

KinectFusion中的ICP算法

投影数据关联-求匹配点 利用算法projective data association对前一帧和当前帧的(Vertex、Normal)进行匹配,算法如下: 在当前帧 i 的深度图像上的每一个像素 U并行计算;对于深度值大于0的像素,求该像素点…

从破解虫脑到攻克人脑:一条“永生之路”的新赛道?

从破解虫脑到攻克人脑:一条“永生之路”的新赛道? 首张果蝇大脑连接组:耗费十余年,重建三千神经元,超50万突触! 论文地址 果蝇幼虫大脑的连接组。 所有脑神经元的形态学都经过了突触分辨率的电子显微镜成像…

聊天机器人开发实战--(微信小程序+SpringCloud+Pytorch+Flask)【后端部分】

文章目录 前言架构SpringCloud服务构建后台搭建Python服务调用 Python算法服务app 总结 前言 趁着五一有时间,先把大三下个学期的期末作业做了,把微信小程序和Java开发的一起做了。顺便把机器学习的也一起做了。所以的话,我们完整项目的技术…

如何用ChatGPT做书籍、报告、文件的读取与互动式问答?故事人物活起来

该场景对应的关键词库(15个): 书籍、报告、文件、详细信息、查询、主题、作者、出版日期、出版社、问题、方面、原则、方法、概括、主要观点、解释。 注意: ChatGPT的知识库截止于2021年9月,对于更新的数据或最新出版…

系统化思维:大数中心原理与限制性选择原理。

系统化思维:大数中心原理与限制性选择原理TOC 许多人的思考特点都是混乱而复杂的,只有受过严格训练的人才能做到系统化思维。这里将讨论系统化思维的基础考量。 大数中心原理:大数中心原理是客观而真实的普遍存在,应用在思维上就…

ImageJ实践——拟合矩形选区探究(bounding rectangle),左侧优先法则

在上一篇ImageJ实践中ImageJ实践——测量大小/长短(以细胞为例),我勾选了Set Measurements中的Bounding rectangle以测量细胞的长和宽(实际上是拟合矩形的长短边),文末我也提出了自己的疑惑:拟合…

【GORM框架】模型定义超详解,确定不来看看?

博主简介:努力学习的大一在校计算机专业学生,热爱学习和创作。目前在学习和分享:数据结构、Go,Java等相关知识。博主主页: 是瑶瑶子啦所属专栏: GORM框架学习 近期目标:写好专栏的每一篇文章 目录 一、GORM…

Ansible自动化运维工具---Playbook

Ansible自动化运维工具--playbook 一、playbook1、playbook简介2、playbook应用场景3、yaml基本语法规则4、yaml支持数据结构 二、Inventory中的变量1、inventor变量参数 三、playbook实例1、编写httpd的playbook2、tasks列表和action3、条件测试4、迭代5、with_items模块6、te…

5.4.1树的存储结构 5.4.2树和森林的遍历

回忆一下树的逻辑结构: 双亲表示法(顺序存储) 如果增加一个结点M,L。毋须按照逻辑上的次序存储。 如果是删除元素: 方案一:比如说删除元素为G,设置其双亲结点为-1。 方案二: 把尾部的结点提上…

真题详解(对象)-软件设计(六十四)

真题详解(DNS)-软件设计(六十三)https://blog.csdn.net/ke1ying/article/details/130448106 TCP和UCP都提供了_____能力。 端口寻址 解析: UDP是不可靠无连接协议,没有连接管理,没有流量控制,没有重试。 面向对象…

MySQL 常用命令

#--------------------------- #----cmd命令行连接MySql--------- cd C:\Program Files\MySQL\MySQL Server 5.5\bin # 启动mysql服务器 net start mysql # 关闭mysql服务器 net stop mysql # 进入mysql命令行 mysql -h localhost -u root -p 或mysql -u root -p #---------…

推荐算法实战项目:AutoRec模型原理以及案例实战(附完整 Python 代码)

本文要介绍的AutoRec模型是由澳大利亚国立大学在2015年提出的,它将自编码器(AutoEncoder)的思想与协同过滤(Collaborative Filter)的思想结合起来,提出了一种单隐层的简单神经网络推荐模型。 可以说这个模型的提出,拉开了使用深度学习解决推…

LVS - DR 模式集群搭建

VIPRIPweb1192.168.88.136httpdweb2192.168.88.139httpdLVS192.168.88.110192.168.88.144(DIP) 省略最后的共享存储,webserver内容不一致(方便查看负载的效果),关闭防火墙,关闭se 1、配置web服务 web1和web2相同 y…