[Android] ubuntu虚拟机上搭建 Waydroid 环境
1.安装虚拟机
略
2.安装waydroid
Ubuntu/Debian and derivatives
For Droidian and Ubuntu Touch, skip directly to the last step
-
Install pre-requisites
sudo apt install curl ca-certificates -y
-
Add the official repository
curl https://repo.waydro.id | sudo bash
If the script fails to detect your distribution, you can provide a valid option by appending
-s <DISTRO>. Currently supported values are: focal, jammy, kinetic, lunar, mantic, bookworm, bullseye, sid
-
Install waydroid
sudo apt install waydroid -y
Then start Waydroid from the applications menu.

至此,waydroid已经安装完毕,如何使用见:Install Instructions - Waydroid
https://docs.waydro.id/usage/
3.下载waydoird 对应的 lineage 源码&&编译 lineage 源码
Getting started
To get started with Android/LineageOS, you'll need to get familiar with Repo and its Git workflow.
Initializing
To initialize your local repository using the LineageOS trees, use a command like this:
repo init -u https://github.com/LineageOS/android.git -b lineage-18.1 --git-lfs
repo sync build/make
Then we grab the Waydroid local_manifests
wget -O - https://raw.githubusercontent.com/waydroid/android_vendor_waydroid/lineage-18.1/manifest_scripts/generate-manifest.sh | bash
Syncing
Then to sync up:
repo sync
Then we setup the local build environment:
. build/envsetup.sh
Patching
After that is complete, we apply the Waydroid patches:
apply-waydroid-patches
How to build
Please see the LineageOS Wiki for building environment setup.
Waydroid AOSP Lunch Options:
lineage_waydroid_arm-userdebug
lineage_waydroid_arm64-userdebug
lineage_waydroid_x86-userdebug
lineage_waydroid_x86_64-userdebug
Waydroid Build Commands:
. build/envsetup.sh
lunch lineage_waydroid_arm64-userdebug
make systemimage -j$(nproc --all)
make vendorimage -j$(nproc --all)
Image Generation From Sparse Image:
The default output of the AOSP build system is an "Android Sparse Image". We need raw fileystems instead. From the same terminal where you just built a system and a vendor image, run:
simg2img $OUT/system.img ~/system.img
simg2img $OUT/vendor.img ~/vendor.img
to obtain your target raw images at ~/system.img and ~/vendor.img
Troubleshooting
Local Manifest:
To manually regenerate the local_manifests, we also have added a function to do so
waydroid-generate-manifest
After doing that you will want to resync (this will wipe out any local changes, so make sure you save your work to a different branch)
参考:
Compile Waydroid - Lineage OS based images - Waydroid
https://docs.waydro.id/development/compile-waydroid-lineage-os-based-images#how-to-build
4.替换自己编译的 lineage 镜像,替换原有 waydroid 默认android 镜像
In order to get custom images to work on Waydroid, there are just a couple extra steps needed.
First, download the images (e.g. x86_64 gapps system and mainline vendor) manually from sourceforge or use your custom built system.img and vendor.img produced from following the Compile Instructions.
Then copy/move them to the following folder:
/etc/waydroid-extra/images/
/usr/share/waydroid-extra/images/ used to be the previously preferred path before waydroid --version 1.3.3 (it still is perfectly valid however right now as well).
An example of setting up from downloaded sourceforce zips (assuming terminal open in the directory where they were downloaded):
sudo mkdir -p /etc/waydroid-extra/images
sudo unzip lineage-*-system.zip -d /etc/waydroid-extra/images
sudo unzip lineage-*-vendor.zip -d /etc/waydroid-extra/images
rm lineage-*-system.zip lineage-*-vendor.zip
Then we need to re-init Waydroid in order for it to use the custom images:
sudo waydroid init -f
参考:Using custom Waydroid images - Waydroid
https://docs.waydro.id/faq/using-custom-waydroid-images
相关文章:
[Android] ubuntu虚拟机上搭建 Waydroid 环境
1.安装虚拟机 略 2.安装waydroid Ubuntu/Debian and derivatives For Droidian and Ubuntu Touch, skip directly to the last step Install pre-requisites sudo apt install curl ca-certificates -y Add the official repository curl https://repo.waydro.id | sudo…...
LeedCode刷题---滑动窗口问题(二)
顾得泉:个人主页 个人专栏:《Linux操作系统》 《C/C》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、将X减到0的最小操作数 题目链接:将 x 减到 0 的最小操作数 题目描述 给你一个整数数组 nums 和一个整数 x 。每一…...
pycharm依赖管理(不要用pip freeze)
在使用python虚拟环境时,可以使用requirements.txt来管理当前项目的依赖。 注意,不要用 pip freeze > requirements.txt 这个命令,因为它会引入很多无关的包。 可以使用 pipreqs ./ --encodingutf-8 ./ 表示当前项目的目录࿰…...
[Kafka 常见面试题]如何保证消息的不重复不丢失
文章目录 Kafka1. Kafka如何保证不丢失消息?生产者数据的不丢失消费者数据的不丢失Kafka集群中的broker的数据不丢失 2. Kafka中的消息是否会丢失和重复消费?1. 消息发送2. 消息消费 3. Kafka 的设计是什么样的呢?4. 数据传输的事务定义有哪三…...
Java中System.setProperty()用法
Java中System.setProperty()用法 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天,让我们一起深入了解Java中的System.setProperty()方法,…...
Eclipse 自动生成注解,如果是IDEA可以参考编译器自带模版进行修改
IDEA添加自动注解 左上角选择 File -> Settings -> Editor -> File and Code Templates; 1、添加class文件自动注解: /*** <b>Function: </b> todo* program: ${NAME}* Package: ${PACKAGE_NAME}* author: Jerry* date: ${YEA…...
微信小程序vant安装使用过程中遇到无法构建npm的问题
官网地址,然而如果完全按照这个教程来,实际上是缺少步骤的,需要补充一些步骤(参考https://www.bilibili.com/video/BV1vL41127Er) # 这步init就是补充的 npm init npm i vant/weapp -S --production# 剩下的按照vant的…...
[python]用python获取EXCEL文件内容并保存到DBC
目录 关键词平台说明背景所需库实现过程方法1.1.安装相关库2.代码实现 关键词 python、excel、DBC、openpyxl 平台说明 项目Valuepython版本3.6 背景 在搭建自动化测试平台的时候经常会提取DBC文件中的信息并保存为excel或者其他文件格式,用于自动化测试。本文…...
Spring Boot 如何配置 log4j2
Log4j2 介绍 Spring Boot 中默认使用 Logback 作为日志框架,接下来我们将学习如何在 Spring Boot 中集成与配置 Log4j2。在配置之前,我们需要知道的是 Log4j2 是 Log4j 的升级版,它在 Log4j 的基础上做了诸多改进: 异步日志&…...
如何安装docker
安装Docker的步骤取决于您使用的操作系统。以下是常见操作系统上安装Docker的基本步骤: 对于Linux: 更新软件包索引: sudo apt-get update安装允许apt通过HTTPS使用仓库的包: sudo apt-get install apt-transport-https ca-certificates cur…...
Linux 之 性能优化
uptime $ uptime -p up 1 week, 1 day, 21 hours, 27 minutes$ uptime12:04:11 up 8 days, 21:27, 1 user, load average: 0.54, 0.32, 0.23“12:04:11” 表示当前时间“up 8 days, 21:27,” 表示运行了多长时间“load average: 0.54, 0.32, 0.23”“1 user” 表示 正在登录…...
用Go汇编实现一个快速排序算法
本代码全网首发,使用Go plan9 windows arm64汇编,实现基础版快速排序算法。 未引入随机因子的快速排序的普通Go代码长这样。 func QuickSort(arr []int) {if len(arr) < 1 {return}base, l, r : arr[0], 0, len(arr)-1for i : 1; i < r; {if arr…...
Spring-整合MyBatis
依赖 <dependencies><!--提供数据源--><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.1.9.RELEASE</version></dependency><!--提供sqlSessionFactory…...
sql宽字节注入
magic_quotes_gpc(魔术引号开关) https://www.cnblogs.com/timelesszhuang/p/3726736.html magic_quotes_gpc函数在php中的作用是判断解析用户提交的数据,如包括有:post、get、cookie过来的数据增加转义字符“\”,以…...
开源 LLM 微调训练指南:如何打造属于自己的 LLM 模型
一、介绍 今天我们来聊一聊关于LLM的微调训练,LLM应该算是目前当之无愧的最有影响力的AI技术。尽管它只是一个语言模型,但它具备理解和生成人类语言的能力,非常厉害!它可以革新各个行业,包括自然语言处理、机器翻译、…...
Android hilt使用
一,添加依赖库 添加依赖库app build.gradle.kts implementation("com.google.dagger:hilt-android:2.49")annotationProcessor("com.google.dagger:hilt-android:2.49")annotationProcessor("com.google.dagger:hilt-compiler:2.49"…...
2023/12/17 初始化
普通变量(int,float,double变量)初始化: int a0; float b(0); double c0; 数组初始化: int arr[10]{0}; 指针初始化: 空指针 int *pnullptr; 被一个同类型的变量的地址初始化(赋值) int…...
【算法Hot100系列】三数之和
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
CSS 简介
什么是 CSS? CSS 是层叠样式表(Cascading Style Sheets)的缩写,是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式(字体、间距和颜色等)的计算机语言。 CSS 的主要作用是: 控制网页的样式,如字体、颜色、背景、布局等提高网页的开发效率CSS 的语法 CSS 的…...
myBatis-plus自动填充插件
在 MyBatis-Plus 3.x 中,自动填充的插件方式发生了变化。现在推荐使用 MetaObjectHandler 接口的实现类来定义字段的填充逻辑。以下是使用 MyBatis-Plus 3.x 自动填充的基本步骤: 1.基本配置 1.1添加 Maven 依赖: 确保你的 Maven 依赖中使…...
SpringSecurity 权限控制:从登录到接口鉴权实战
在Java后端开发领域,安全控制是永远绕不开的话题。无论是企业内部的管理系统,还是对外的RESTful API,我们都需要解决两个核心问题:你是谁?(认证) 和 你能干什么?(授权&am…...
Power Query功能区 - 视图
Power Query功能区 - 视图布局查询设置就是右侧这个框框,用来看应用的步骤的。编辑栏这个就是编辑栏数据预览显示空白Power Query 默认不显示空白字符(比如空格)需要开启“显示空白”,才能清楚看到空白字符(包括数量和…...
剪映专业版教程:制作画卷开合效果
前言 今天教大家一个画卷开合效果。这种效果模拟画卷从中间向上下两边展开,停留片刻后缓缓合拢,配合四季主题诗词和朗读,适合古风视频、诗词鉴赏、传统文化展示等场景。 效果预览:画卷从中间向上下翻开,露出四季风景…...
智能车竞赛硬件避坑指南:从3300mAh电池到CYT4BB7核心板,我的越野组电源与MCU选型心得
智能车竞赛硬件避坑指南:从电池选型到核心板设计的实战经验 第一次参加全国大学生智能车竞赛时,我对着购物车里几十种电池和芯片发愁——3300mAh和2200mAh到底差在哪?CYT4BB7核心板的手焊噩梦怎么避免?这些官方手册里找不到的答案…...
收藏!SaaS小白必看:AI大模型落地实战路线图,从功能堆砌到价值创造
本文分析了SaaS公司在整合AI大模型时应避免“功能堆砌”陷阱,并介绍了三大AI技术路线:Prompt/RAG/微调的特点及适用场景。文章强调SaaSAI产品的成功关键在于技术路线与客户价值的适配,提出了分阶段组合策略,即初创期以提示词为主&…...
Unity与佳能单反深度集成:拍照控制与实时数据流处理实战
1. 为什么需要Unity与佳能单反集成? 在开发互动应用时,我们经常需要高质量的图像输入。手机摄像头虽然方便,但在画质、光学变焦、景深控制等方面与专业单反相机存在明显差距。我做过一个AR试衣间项目,最初用iPhone摄像头ÿ…...
GStreamer Appsink实战:从RTSP流中高效提取与处理帧数据(预览、截图与格式转换)
1. GStreamer Appsink核心价值与应用场景 当你需要从RTSP视频流中提取原始帧数据时,GStreamer的appsink元件就像个万能接口箱。我在智能摄像头项目中首次接触这个元件时,发现它比传统probe方式灵活得多——不仅能实时预览视频,还能轻松实现截…...
Windows下3DGS环境搭建保姆级教程:用最小化environment.yml和手动安装搞定CUDA 12.8
Windows下3DGS环境搭建:最小化配置与CUDA 12.8兼容性实战指南 当你在Windows系统上尝试复现3D Gaussian Splatting(3DGS)项目时,可能会遇到各种依赖冲突和环境配置问题,尤其是使用较新的CUDA 12.8版本和50系列显卡时。…...
3个令人惊叹的理由:为什么CodeCombat能让孩子爱上编程学习?
3个令人惊叹的理由:为什么CodeCombat能让孩子爱上编程学习? 【免费下载链接】codecombat Game for learning how to code. 项目地址: https://gitcode.com/gh_mirrors/co/codecombat 在当今数字化时代,编程已成为一项必备技能…...
别再死记硬背了!我用这3个真实项目案例,帮你吃透Vue3和React高频面试题
从真实项目出发:用3个案例彻底掌握Vue3和React高频面试题 在技术面试中,最让候选人头疼的往往不是"怎么做",而是"为什么这么做"。当面试官问"Vue3的Composition API解决了什么问题"时,背诵官方文档…...
