ubuntu 20.04 redroid 踩坑日记

我有一台 2核2G 的腾讯云机器, 想使用这台机器测试一下, 看能不能跑起来redroid

1
2
3
4
5
6
7
8
sudo docker run -itd --rm --memory-swappiness=0 \
--privileged --pull always \
-v /data:/data \
-p 5555:5555 \
docker-0.unsee.tech/redroid/redroid:11.0.0-latest \
androidboot.hardware=mt6891 ro.secure=0 ro.boot.hwc=GLOBAL ro.ril.oem.imei=861503068361145 ro.ril.oem.imei1=861503068361145 ro.ril.oem.imei2=861503068361148 ro.ril.miui.imei0=861503068361148 ro.product.manufacturer=Xiaomi ro.build.product=chopin \
redroid.width=720 redroid.height=1280 \
redroid.gpu.mode=guest

启动完之后, 执行 adb connect 127.0.0.1:5555 发现是可以正常连接的. 可以进入到 手机的 shell 终端.

然后我在自己的电脑上 执行 adb connect xx.xx.xxx.xxx:5555 卡了几秒钟, 然后显示 offline. 在这里踩坑踩了两天.
然后我又在另外两台 ubuntu 主机上 安装 adb 1.0.39, 发现也是可以正常进入 手机shell 终端的. 于是我只能怀疑是自己本地的 adb 版本原因。
找到各种方法, 下载 adb 1.0.39 发现还是同样的问题. 并且 执行 adb shell 程序会一直卡住, 没有任务输出 也没有结束。 并且 我发现我的C盘。只剩下 15G了, 之前还有200G,

于是我问了 deepseek, 它让我执行 kill server, 结果 kill server 也卡住, 我又继续问,他是这么回答的
img_11

1
2
3
sudo pkill -9 adb         # 强制结束ADB客户端
sudo pkill -9 adb_server # 结束ADB服务进程
sudo pkill -9 adbd # 结束设备端守护进程(如有)

然后我执行了这三行, 确实, 我的c盘的空间没有持续的往下降. 基本上1分钟不到就几百M 没了.

然后我按照提示查看了一下 /tmp/adb.1000.log 文件, 发现这个文件 208G
tail -f /tmp/adb.1000.log

显示 “adb : sysdeps_unix.cpp:125 network_peek error: Invalid argument”

我拿这个问题问 deepseek, 它的回答是网络原因, 我突然想到本地似乎开启了魔法, 我关掉魔法试试。 果然可以了.

执行 scrcpy.exe 发现也可以直接显示 android 内容了

scrcpy 下载地址

img_11

由于我部署 redroid 的机器配置很低, 所以只显示了一个界面, 其他的一些app 没有加载, 更不要谈安装app,进行测试了。
不过整体上算是体验了一下 redroid 部署云手机. 算是初体验, 算比较成功, 后面打算玩一下开发板(rock5b, 香橙派), 看能否过风控, 正常刷xhs, dy.

哈哈哈哈哈哈 被我找到了根本原因, 为何其他服务器上就可以 正常 adb connect , 本地却不行, 并不是魔法的原因, 也不是adb 版本39和 41 的差别,
而是公司网络的原因, 我自己用手机给电脑开了个热点, 手机使用移动数据流量上网. 手机就可以正常 connect remote_ip:5555 了.

无语子啊。。。。。。

贴下一些工具的链接以及参考帖子

1
2
# https://github.com/barry-ran/QtScrcpy/releases/tag/v3.2.0
# https://zhaoyang.xlog.app/redroidmd?locale=zh