事情是这样的,楼主因为沉迷手机魔兽,想用 winlator 来运行 wine-ge 来在安卓手机上跑官服魔兽,但是官服魔兽只支持 wine-ge-8-25 ,因为
battle.net 这个登录器需要 secondary logon 这个功能,于是楼主就试图移植这个 wine-ge 上 winlator 。
winlator 是一个安卓写的 wine 配置管理工具,它自己手写了一个安卓 UI<=>x11 之间的双向绑定,然后通过 java 的 Runtime.getRuntime().exec 来运行 wine 命令。
但是同样的命令用 adb shell 运行的时候会正常过,并且输出的 stdout 和 stderr 都很正常也很详细,但是到 java 这边就不行了
由于这玩意是自己实现的 x11 ,我启动的时候忽略了一个 opcode 117 是用来设置鼠标按键数量的,不知道是不是这个会卡住什么,另外就是 java 的 exec 不知为何无法正常读取到命令的 output ,原始代码在这里
https://github.com/FrontMage/winlator-855/blob/main-make-it-build/app/src/main/java/com/winlator/core/ProcessHelper.java 然后整个项目 clone 下来用 Android studio 打开 main-make-it-build 分支即可,注意可能要更新下 gradle 的版本
神通广大的 v2 大佬们有没有什么思路呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/1057941
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.