全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
楼主: emptysuns

【已更新】甲骨文Arm用docker跑安卓挂机

  [复制链接]
发表于 2022-8-27 17:02:46 | 显示全部楼层
5700pgf 发表于 2022-8-27 14:28
如果是写错规则导致SSH连不上了,登陆甲骨文,实例里面有个CLOUD SHELL 可以连接,在那里面改规则就可以了 ...

明白了 感谢
发表于 2022-8-27 19:09:27 来自手机 | 显示全部楼层
用web版的scrcpy,然后搞个https就可以了,直接网页操作。博客里面写的转发好麻烦
发表于 2022-8-28 15:08:27 | 显示全部楼层
lightout 发表于 2022-8-27 19:09
用web版的scrcpy,然后搞个https就可以了,直接网页操作。博客里面写的转发好麻烦 ...

大佬,可以来个教程吗
发表于 2022-8-28 16:20:24 | 显示全部楼层
Chenchen 发表于 2022-8-28 15:08
大佬,可以来个教程吗

网上搜的
https://www.appinn.com/ws-scrcpy/
原理和LZ的差不多,然后用nginx做https反代,在路径上增加auth认证
这样,只要打开https网页,填写认证信息以后就可以了
发表于 2022-8-28 22:59:47 | 显示全部楼层
本帖最后由 mmc199 于 2022-9-5 16:41 编辑

连不上啊,内核通信那个模块找不到能用的不想远程了,想直接在vnc里用,能不能让这个安卓docker窗口显示而不是后台运行
==================================================



之前没注意内核版本,我原来是在甲骨文上装的银河麒麟v10 sp1 2203版,ubuntu内核5.4,才需要装anbox-module来装binder_linux那些设备,
甲骨文的5.15的内核不需要装这个,装了有什么影响还没测试。甲骨文的5.15的内核/lib/module里的文件和老版本内核不一样, anbox-module是给老版本内核用的,所以 anbox-module的编译脚本不能正常编译binder.c ,如果装了会不会互相干扰没有试。

对anbox来说ubuntu新老内核的分界是5.7,具体可以看这几个帖子提到的。页面内搜5.7

https://wiki.archlinux.org/title/Anbox
https://www.linux.org/threads/anbox-cannot-access-dev-binder.32632/
https://github.com/anbox/anbox-modules/issues/63
https://github.com/anbox/anbox-modules/pull/76
https://aur.archlinux.org/packages/anbox-git


网上说手动执行下面两条命令就能在/dev/binderfs看到这几个设备binder  hwbinder  vndbinder,其实是不需要的,因为高版本内核binderfs是动态挂载的,不需要把binder的设备挂到/dev或者/dev/binderfs  

sudo mkdir /dev/binderfs
sudo mount -t binder binder /dev/binderfs



==================================================


https://www.codeleading.com/article/16445472049/

3.编译安装anbox的内核模块
# git clone https://github.com/anbox/anbox-modules.git
# cd anbox-modules
# sudo ./INSTALL.sh


使用前给docker读写权限,我机子有问题bug重启又恢复600权限导致报错

sudo chmod 666 /dev/binder /dev/ashmem /dev/hwbinder /dev/vndbinder

如果是权限问题 执行上面命令后 重新启动模拟器docker

启动先尝试软解,加上 redroid.gpu.mode=guest \  ,我硬解进docker的sh看logcat看报打不开显卡设备,就连不上adb
 楼主| 发表于 2022-8-28 23:02:58 来自手机 | 显示全部楼层
本帖最后由 emptysuns 于 2022-8-28 06:06 编辑
Chenchen 发表于 2022-8-27 22:08
大佬,可以来个教程吗


测试好了,我把ws-scrcpy做成image了,你要是着急自己先看看
https://hub.docker.com/r/emptysuns/scrcpy-web
 楼主| 发表于 2022-8-28 23:04:45 | 显示全部楼层
mmc199 发表于 2022-8-28 05:59
连不上啊,内核通信那个模块找不到能用的不想远程了,想直接在vnc里用,能不能让这个安卓docker窗口显示 ...

你的报错根据anbox这个查查,他和redroid原理一样,或者去redroid的issues翻翻,前人是不是遇到过错误
发表于 2022-8-29 04:18:13 | 显示全部楼层
emptysuns 发表于 2022-8-28 23:04
你的报错根据anbox这个查查,他和redroid原理一样,或者去redroid的issues翻翻,前人是不是遇到过错误 ...

我之前试过这个。但是不清楚为什么是什么都没显示。你用的是哪个系统
发表于 2022-8-29 13:57:32 | 显示全部楼层
本帖最后由 mmc199 于 2022-10-6 15:04 编辑
emptysuns 发表于 2022-8-28 23:04
你的报错根据anbox这个查查,他和redroid原理一样,或者去redroid的issues翻翻,前人是不是遇到过错误 ...



此回帖只针对银河麒麟v10 sp1 2203版,ubuntu内核5.4,甲骨文版ubuntu 5.15请按楼主教程,测试无问题,不需要其他操作。

改了下权限可以连接了  目前仅 8.1.0 能连接 更高版本不会解决报错,可能重新dd系统会好 只能键盘输入数字,输入字母键盘就会失效,输入全靠触屏一指禅了(web scrcpy 界面有一个键盘的图标激活后是打开键盘映射的,打开后就能输入字母和数字了,还有一个专门发送远程输入文字的框,很方便)

进到docker的sh里用logcat查看报错  发现内核通信的几个udev挂载只有600权限 /dev/binder /dev/ashmem /dev/hwbinder /dev/vndbinder  手动改成 666 权限 可以连接了

我很费解 因为安装这个内核的配置文件写的是666权限  sudo cat /lib/udev/rules.d/99-anbox.rules
KERNEL=="ashmem", NAME="%k", MODE="0666"
KERNEL=="binder*", NAME="%k", MODE="0666"
我自己又在/etc/udev/udev.conf里面加了default_mode="0666",重启之后ls查看还是600权限的
只能启动docker前先chmod一下了



sudo docker ps
CONTAINER ID  
7a8134850a69   


sudo docker exec -it 7a8134850a69 sh


7a8134850a69:/ # logcat

08-29 02:53:30.957   357   357 E wificond: Failed to set uevent socket SO_RCVBUFFORCE option: Operation not permitted


08-29 02:55:35.034   144   509 W SchedPolicy: add_tid_to_cgroup failed to write '1109' (Permission denied); fd=24

08-29 02:53:51.005   688   158 W ProcessState: Opening '/dev/binder' failed: Permission denied

08-29 02:53:51.005   674   625 W ProcessState: Opening '/dev/ashmem' failed: Permission denied

08-29 02:53:51.005   501   753 W ProcessState: Opening '/dev/hwbinder' failed: Permission denied

08-29 02:53:51.005   394   247 W ProcessState: Opening '/dev/vndbinder' failed: Permission denied


ls -alh /dev/binder /dev/ashmem /dev/hwbinder /dev/vndbinder

crw------- 1 root root 10, 58 8月  29 04:22 /dev/ashmem
crw------- 1 root root 10, 57 8月  29 04:22 /dev/binder
crw------- 1 root root 10, 56 8月  29 04:22 /dev/hwbinder
crw------- 1 root root 10, 55 8月  29 04:22 /dev/vndbinder

sudo chmod 666 /dev/binder /dev/ashmem /dev/hwbinder /dev/vndbinder

ls -alh /dev/binder /dev/ashmem /dev/hwbinder /dev/vndbinder

crw-rw-rw- 1 root root 10, 58 8月  29 04:22 /dev/ashmem
crw-rw-rw- 1 root root 10, 57 8月  29 04:22 /dev/binder
crw-rw-rw- 1 root root 10, 56 8月  29 04:22 /dev/hwbinder
crw-rw-rw- 1 root root 10, 55 8月  29 04:22 /dev/vndbinder


sudo docker stop 7a8134850a69

楼主教程里 加了--rm 参数是对的,我重启docker也没有丢失模拟器的已安装应用和应用数据,不知道rm参数清理的是docker的什么,这是我第一次用docker

目前还有一个报错,没发现影响到哪里使用

08-29 02:55:35.034   144   509 W SchedPolicy: add_tid_to_cgroup failed to write '1109' (Permission denied); fd=24
发表于 2022-8-29 14:20:38 | 显示全部楼层
太强了,啥游戏都可以吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-7 03:45 , Processed in 0.063470 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表