exagear吧 关注:186,352贴子:543,768
  • 6回复贴,共1

发现了一个exagear运行d盘茶壶的有趣现象

只看楼主收藏回复

exa启动转译程序时,首先会运行一个shell脚本,做一些预备工作,然后用eval包裹wine+exe程序命令,传递给shell脚本作为参数。这个可以在
外部存储目录下x86-stderr.txt中看到。如图1直线和圈所示。
但是由于启动程序后,只有wine的界面,所以后续只能启动Windows程序,而无法再输入linux命令。
如果在eval的末尾插入一段,再运行一个shell脚本,无限循环读取某个文本的内容并运行,那么就可以做到启动wine后运行linux命令了。如图中波浪线位置所示,后台会运行着greadlines.sh。
从过去的使用经验来看,在exagear的d盘(外部存储目录)中运行茶壶,会正常运行(如图2所示)。而通过box86运行d盘茶壶时,会报错无法加载所需的媒体,不能正常运行。如果茶壶位于c盘(应用内部目录)则二者都可以正常运行茶壶。另外box对于部分游戏也会出现类似现象。
但是现在如果通过greadline.sh来在exagear中运行一个d盘的茶壶,竟然会出现和box86一样的报错(如图3所示)
由于对linux不是很了解,所以我只能做一些猜测:
1. exa由于有安卓的正式版,所以可能为安卓版做了特殊优化,在启动时修改了某些设置。
2. exa只有初次启动容器/wine时会做修改,后续再启动wine则不会修改。
3. exa只有应用修改时才不会出现错误,那么这个修改可能对box也适用。
另外根据alex,茶壶的找不到媒体报错是因为wine隐藏了.x后缀的文件,而茶壶所需的DirectX渲染文件后缀刚好是这个。




IP属地:辽宁来自Android客户端1楼2024-03-11 13:22回复
    什么叫转译,大佬


    IP属地:广东来自Android客户端2楼2024-03-12 20:32
    收起回复
      这个大概率是未解之谜,究竟有无大神真正弄懂了,不知道。总之,上面a大神描述的也不对。你贴中琢磨的也不对。我也没弄懂,但我可以肯定跟eval,shell什么的是毫无联系的。
      可以肯定的是,迷团的答案在exa的apk中。
      也就是说,如果你将exa看成是exa的ed版这个apk。那两者就有区别。并且将不可能会发现迷团的答案,因为方向就不对了。
      那是菜鸟对模拟器的理解。
      当你将exa正确理解为转译工具。你就将发现两个转译工具,其实都有相同问题。都有在d盘打不开茶壶或一些游戏的问题。只不过,exa经过封装成以后,问题消失了。


      IP属地:广东来自Android客户端3楼2024-03-14 11:17
      回复
        将exa的转译主文件抽离app,在termux上直接使用,在d盘打不开茶壶以及一些游戏的问题会显现 。(指的不是z大神的,而是抽离转译主文件直接使用。z大神的那个,用的不是在安卓上直接转译的)
        或者将exa的ed版这个apk魔改成启动p大神那个转译工具,那么转译工具没有用exa,问题也是会消失的。(常大神最先这样魔改过,但没有成品出来过。其在魔改过程中,有无意识到这个问题就不知道了。)
        此问题并非p大神那个转译工具的问题,即非转译问题。exa也有的 ,至于exa的apk做了什么让问题消失了,就不知道了。
        也就是说,迷团的答案在apk中,而不是两个转译工具在此问题上有什么差异。


        IP属地:广东来自Android客户端4楼2024-03-14 11:44
        收起回复