飞牛NAS越来越完善了,最近发现有网友把云手机即虚拟手机的安卓系统也通过docker成功的部署到fnOS上了。
有了这个方案,就可以完全抛弃桌面端的模拟器了,实际应用环境会更加的广泛。
今天就该方案做个整理说明,其中有参考引用网友整理好的方案内容,以及未提到这里做进一步说明的内容。
本方案以redroid容器化实例运行安卓系统的方案演示。
redroid(Remote anDroid)是一款GPU加速AIC(云端安卓)解决方案。你可以启动很多 Linux 主机中的实例(ETC)。Redroid 支持这两者和架构。Redroid适用于云游戏、虚拟化手机、自动化测试等多种平台。

1、部署前需要先安装binder_linux驱动
之前需要自己手动编译,现在好了,飞牛的应用商店里已经有这个驱动应用可以直接安装了,看来网友们的力量还是非常强大的,在此也感谢这位网友的努力付出。
打开飞牛的应用中心,找到binder_linux进行安装,我这里已经安装过了

binder_linux驱动说明
容器化运行安卓操作系统的必要依赖之一
适配内核版本6.12.18-trim_3、6.12.18-trim_5该驱动由飞牛社区用户提供,由飞牛社区用户自行维护如遇问题请直接向飞牛社区用户进行反馈。
2、创建docker-compose
打开飞牛的docker容器应用,点击compose选项,创建新增项目,输入相应的项目名称和路径,选择创建docker-compose.yml选项,粘贴以下的代码,点击确定。
可以参考以下的代码直接复制粘贴,也可以自己根据主机情况做适当的修改。
代码内容为:
services:
redroid:
image: erstt/redroid:12.0.0_houdini_WSA
tty: true
stdin_open: true
privileged: true
devices:
- /dev/dri
- /dev/binder
networks:
- main
ports:
- 5555:5555
volumes:
- /root/erstt_redroid_12/data:/data
command:
- androidboot.redroid_gpu_mode=host
- androidboot.use_memfd=1
- ro.enable.native.bridge.exec64=1
- ro.dalvik.vm.native.bridge=libhoudini.so
networks:
main:
driver: bridge
name: main
以下是代码中可以自行修改的说明及注意事项:
redroid_gpu_mode需要根据你机器上是否有支持GPU选择guest或host
ro.enable.native.bridge.exec64与ro.dalvik.vm.native.bridge需要根据兼容转换层调整
详细信息可以查看文档https://github.com/remote-android/redroid-doc
使用docker-compose创建容器后,点击构建,等待构建完成后启动容器就可以正常连接了。

3、远程连接
开启安卓容器后,我们可以使用远程工具连接
这里使用scrcpy连接IP 写飞牛NAS的IP地址
下载地址可以到这里下载最新版
https://github.com/Genymobile/scrcpy?tab=readme-ov-file
由于飞牛NAS运行在虚拟机上没有音响,因此开启了no-audio
你需要根据你的实际情况,选择合适的工具与命令行参数
该远程工具文档及可执行文件可以在这里找到 https://github.com/Genymobile/scrcpy
下载完成后打开cmd窗口,定位到scrcpy文件夹,输入以下命令进行连接
scrcpy.exe --tcpip=飞牛NAS IP:5555 --no-audio --max-size 1080 --video-bit-rate=15M
带音频输出连接模式
scrcpy.exe --tcpip=飞牛NAS IP :5555 codec=aac --video-bit-rate=30M
也可用我已下载好的工具,用文本方式打开“执行”文件,替换好自己的IP地址保存。保存后点执行即可。
下载地址:https://share.fnnas.net/s/a9b7f28bda354ec6bc

4、安装应用
可以直接把下载好的应用拖到虚拟机窗口中,会自动进行安装。


5、其它问题异常处理
应用安装后可能会出现桌面上看不到图标的情况,这个时候需要打开系统设置,应用管理里面,从这里打开,也可以在系统设置里把语音改成中文模式,系统默认是英文状态。

后续有其它更新会持续更新。
6、开启系统开发者模式,
在关于手机手机版本号这里连续点击鼠标左键,打开开发者选项,开启USB调试模式。

7、SSH连接飞牛NAS
ssh连接飞牛NAS:ssh admin@192.168.88.108
如果 Linux 帐号的 home directory 不存在,在登入帐号后,会出现以下找不到 home directory 的错误:
Could not chdir to home directory /home/username: No such file or directory
提升管理员权限:sudo -i
# mkdir /home/admin(飞牛的管理员用户,自行替换)
# chown admin /home/admin (飞牛的管理员用户,自行替换)
# chmod 700 /home/admin(飞牛的管理员用户,自行替换)
更新apt库:sudo apt update
安装ADB工具:sudo apt install android-tools-adb android-tools-fastboot
l连接adb: adb connect 192.168.88.108:5555
删除ntp服务器:adb -s 192.168.88.108:5555 shell settings delete global ntp_server
添加NTP服务器:adb -s 192.168.88.108:5555 shell settings put global ntp_server "ntp.ntsc.ac.cn"
禁用网络连接检查:adb -s 192.168.88.108:5555 shell settings put global captive_portal_mode 0
修改安卓分辨率:adb -s 192.168.88.108:5555 shell wm size 1920x1080
查看当前分辨率设置:adb -s 192.168.88.108:5555 shell wm size
还原设备尺寸:wm size reset
以下命令为参考了解,感兴趣可以自行设置
查看和修改当前设备的density参数:wm density
wm density
修改设备 density
wm density 420
还原设备 density:wm density reset
修改当前设备的屏幕内边距,左上右下顺序:wm overscan
修改屏幕内边距:wm overscan 20,20,20,20
还原屏幕内边距:wm overscan reset
常用的设备参数
480,1080x1920
460,1080x1920
320,720x1280
560,1440x2392