云手机上安装Google服务框架

目錄 1. ReDroid需要用到的軟體 2. 取得ARM轉譯器libndk 3. 建置ReDroid的Docker映像檔 4. 啟動ReDroid 5. 安裝Google服務框架 6. ReDroid安裝APK 7. ReDroid如何「開關機」 8. 總結 ReDroid (Remote anDroid) 是自架「雲手機」的方案,透過docker在電腦上跑Android系統容器,再利用Scrcpy的鏡射螢幕功能連線到Android桌面。 ReDroid也是在電腦上用開源軟體跑Android APP的解決方案。因為別說雲手機了,很多Android手遊模擬器都是閉源軟體哪。相較之下,ReDroid除了ARM轉譯器以外都是開源的。更棒的是ReDroid支援GPU加速+ARM轉x86的轉譯器,這樣就可以玩大多數手機3D遊戲了。 對Linux用戶來說,這更是除了Waydroid以外,在Linux電腦高效率跑Android APP的方法。 本文將討論如何在x86架構的Linux電腦,用ReDroid玩ARM架構的手機遊戲。我們會在ReDroid映像檔加入ARM轉譯器+Google服務框架,以達成最佳使用體驗。 P.S. Windows和MacOS也可以跑Docker。 1. ReDroid需要用到的軟體 ReDroid在Github上有各大Linux發行版的安裝說明。 由於我是Arch Linux,因此Linux核心要先換成linux-zen以支援binderfs。 接著安裝docker和docker-compose,用於執行容器: 1 2 sudo pacman -S docker docker-compose sudo systemctl enable –now docker 安裝ADB和Scrcpy,連線到Android桌面: 1 2 sudo Read more…

云手机Web管理 使用Docker运行scrcpy-ws实现

一、引言 上一篇文章我写了一遍关于用嫖的甲骨文Arm通过Redroid image开一个Andriod容器用来安卓挂机,更好的利用吃灰的甲骨文做点事情,但是很多人误会了我那篇文章的意思,并不是非得是Arm64架构才能运行此镜像。 只是甲骨文Arm的性能过剩了才拿出来做的栗子,其实只要是能跑docker的arm64/amd64都能启动Redroid。 本篇文章将用oracle Arm机型做栗子,根据别人善意提醒,ws-scrcpy可以通过ws提供一个web版Android的远程桌面。 我去了解了一下,确实比起传统的用iptables限制ip访问adb得到的安全性相比,能有个web端,能让我们更方便的访问和做授权访问。 优点: web端可以通过任意浏览器直接访问方便,还能套诸如cloudflare支持ws的cdn,加速访问; 不用做上一篇文章那种复杂的防火墙规则来保证安全。 缺点: 需要配置nginx auth模块、小白噩梦、多跑一个scrcpy-web容器 下方介绍如有纰漏、错误,请留言指正 二、结果展示 如果你参照如下的说明,你就会得到一个可以授权的web版桌面(密码验证是nginx做的),下面是gif展示: 看着还不错是吧? 那就往下看,仔细阅读,你会得到的很方便安全的云手机。 如果是第一次阅读,请跟着我的说明,参数都不要乱动,等配置成功一次之后再自行发挥。 三、具体步骤 1.准备工作 为了避免复制粘贴,先给没有基础的用户一个提醒,没有看过上一篇文章的看这里:甲骨文ARM利用docker镜像运行安卓云手机。 如果你要熟悉使用本篇文章的说明请阅读至这篇文章的<使用> <四. 拉取docker镜像并启动容器>,查看完该docker命令是什么意思不需要启动容器有点不一样,做好准备工作就行。 2. 启动redroid容器 这里和上一篇文章不用web的直接连接adb时不一样,下面有说明,请注意 docker run -itd \ –memory-swappiness=0 \ –privileged –pull always \ -v /root/test/data:/data \ –rm \ –name=redroid8 \ redroid/redroid:8.1.0-latest \ androidboot.hardware=mt6891 ro.secure=0 ro.boot.hwc=GLOBAL ro.ril.oem.imei=861503068361145 Read more…

云手机基本原理与构建

云手机基本原理与构建 一、什么是云手机 云手机是虚拟化技术,最终为用户/客户在云端提供的一个个安卓实例(操作系统)。用户/客户可以通过视频流的方式,远程实时控制云手机,最终实现安卓原生APP及手游的云端运行。 二、云手机实现原理 三、远程连接协议VNC/SPICE/RDP 所有的云手机都离不开远程桌面连接协议,若没有远程桌面连接协议,要实现云手机屏幕的控制则需要自行设计远程桌面连接协议。目前较为常见的云手机连接协议,大多使用VNC方式实现云手机桌面作为视频流进行传输。 1、三种协议对比 SPICE VNC RDP BIOS屏幕显示 能 能 不能 全彩支持 能 能 能 更改分辨率 能 能 能 多显示器 多显示器支持(高达4画面) 只有一个屏幕 多显示器支持 图像传输 图像和图形传输 图像传输 图像和图形传输 视频播放支持 GPU加速支持 不能 GPU加速支持 音频传输 双向语音可以控制 不能 双向语音可以控制 鼠标控制 客户端服务器都可以控制 服务器端控制 服务器端控制 USB传输 USB可以通过网络传输 不能 USB可以通过网络传输 三种协议概览: 1、VNC 适用系统:windows、linux 网络流量:较小,常用100k左右 Read more…

云手机搭建

引言 最近找app远程调试环境,最后选择了docker启动容器的比较方便,支持ADB远程连接。使用scrcpy连接可以提供桌面环境,突然发现这个镜像的架构支持Arm64,我还有好几个吃灰的甲骨文,遂试了试体验良好,可以当成一个云手机来挂机。 Arm64架构并不是必须的,就像我如上说明,该镜像支持Amd64,如果你认为你的机器性能不错就可以试试。 介绍 甲骨文Arm使用的CPU给的性能很足,4c的geekbench5跑分有足足3400分左右,参考当前最流行的手机处理器芯片骁龙870 geekbench5 3100分来说是非常良心的了。使用它来虚拟一个云手机来说性能充足。 我在这里选择的是Redroid,ReDroid(Re mote an Droid)是一个 GPU 加速的 AIC(Android In Container)解决方案。Docker您可以在 Linux 主机(Docker, podman, k8s etc.)中启动许多实例。ReDroid同时支持arm64和amd64架构。 ReDroid适用于云游戏、VMI(虚拟移动设备)、自动化测试等。 根据该镜像描述,对云游戏有很好的支持,符合我们的需求,所以这里直接使用它启动容器。 你也可以用来配置python selenium做自动化,因为有root权限,也能用于app开发调试,并不一定拿来挂机游戏,说到底这是我的需求。 接下来配置过程中,最麻烦的不是让容器启动,而是为了你连接桌面过程中更加安全可靠而做的努力,如果你仔细阅读完是没有问题的。 性能/资源占用率参考 看不清图中文字,右键标签打开放大看 总体来说还可以,能不用软解就不用,硬解性能测试着比软解更好,1080p60能维持这个占用率,跑些非大型游戏挂机脚本挺不错的,白嫖还想要什么飞机?(这个测试的是redroid13,如果是8.1占用率应该更低) 使用 下方测试系统是oracle 原生 ubuntu 20.04,其他系统我没有一一测试,没什么区别。 一· 检查内核 首先查看一下你的内核版本是否>=5.0,根据介绍,如果内核在此版本之下,许多指令无法适配,为了不出错还是升级一下内核,如果不升级内核该镜像issue也给出解决方案,我懒得看,有兴趣自己研究去。 uname -r 5.15.0–1013-oracle #这里最好>=5.0 二. 安装模块 apt install linux-modules-extra-`uname -r` modprobe binder_linux devices=“binder,hwbinder,vndbinder” #进程通信模块 modprobe ashmem_linux #内存共享模块 #后两条命令不提示错误 / Read more…

云手机、安卓模拟器和手机虚拟机的区别

云手机,运行在ARM架构(适用于移动通讯领域)的服务器上,性能由服务器决定,用户需要通过远程访问云手机操控,不影响本机系统,但也存在网络延迟现象。 安卓模拟器,其实与手机虚拟机类似。安卓模拟器运行在电脑端,需要通过键盘鼠标来操控。对于习惯手游的用户来说,除特殊需求,使用频率并不算高。 手机虚拟机是运行在手机内,占用手机内存和运算能力,因而手机性能的高地直接决定了虚拟机的运行流畅度,优势是共享真机网络。 云手机,安卓虚拟机和手机虚拟机三者各有优势,加上成本因素(包括金钱和操作)来考量的话,倾向使用手机虚拟机的人越来越多。毕竟对于生活玩家来说,一台手机上就能免费完成应用多开、软件测试的需求,何乐而不为。