在中看到对于android x86如何支持arm架构app的说明,欧博abg但没有详细操作步骤,我这里经过摸索实操了一遍。
环境要注意的是安装android系统时(我参考的https://www.cnblogs.com/wynn0123/p/6288344.html),要在下面这一步一定要选择Yes,否则没有权限对系统进行修改(可能安装后用root remount也行,但我没实验过)。
使用可读写方式安装
安装houdini由于我没有翻墙,所以一些说翻墙后直接开启选项的方式我不能用,于是就手动处理。
首先adb pull /system/bin/enable_nativebridge .\enable_nativebridge(x64-6.0-rc3)将arm兼容安装的脚本pull下来。
打开enable_nativebridge(x64-6.0-rc3),欧博官网里面有几个下载地址、url=http://goo.gl/JsoX2C、,用迅雷把他们下载下来(不翻墙也能下,迅雷就这点好)。
然后放到某http服务器,我是放到我自己本地架设的http服务器中。
然后把enable_nativebridge(x64-6.0-rc3)中的链接换成新的链接,将打印日志的语句log -pe -thoudini都直接改为echo方便后动执行时看效果,再另存为enable_nativebridge.
修改前后对比
执行adb push enable_nativebridge /system/bin/enable_nativebridge将文件推送回去。
执行时出错:
看来权限不足,先执行adb root,来使用root级别的adb。注意如果是使用虚拟机端口转发的android系统的5555,则这时需要重新adb connect 127.0.0.1:7560 (这里这个ip和端口是配置的本地转发地址)。
然后再执行adb push enable_nativebridge /system/bin/enable_nativebridge 则成功将文件推入。
adb shell后,执行/system/lib/enable_nativebridge,执行结果最后一行显示的是houdini64 enabled。
安装一个我的世界游戏试试,果然行了。
20171201:更新
android-x86-7.1-rc2在继续研究的过程中对于各版本的android-x86都进行了测试,其中4.4及5.1的都能正常安装houdini,但是启动游戏时都有各种问题导致崩溃。6.0及7.0的x86和x64版本均正常。
在各种尝试时,写了个快速脚本来处理安装houdini。这里拿安装android-x86-7.1-rc2的houdini举例:
在某目录建立bat文件,填入以下内容并执行
@rem 注意下面的地址和端口是虚拟机的地址和端口 @set address=127.0.0.1:8671 @adb connect %address% @adb -s %address% pull /system/bin/enable_nativebridge enable_nativebridge_raw @copy enable_nativebridge_raw enable_nativebridge @echo 请修改enable_nativebridge后按任意键将文件写回 @pause @echo 以root权限重新连接,并写回enable_nativebridge文件 adb -s %address% root adb connect %address% adb -s %address% push .\enable_nativebridge /system/bin/enable_nativebridge @echo 任意键开始执行enable_nativebridge @pause在提示“请修改enable_nativebridge后按任意键将文件写回”时,用文本编辑工具打开pull回来的enable_nativebridge文件,并且将里面的goo.gl的链接(用短链接还原网站,已FQ可跳过)解析出来并且改成真实链接如下,最好顺便把所有的log -pe -thoudini和log -pi -thoudini改成echo方便后面shell执行时看到结果 :
f [ -z "$1" ]; then if [ "`uname -m`" = "x86_64" ]; then v=7_y # -> ?v=7_y url=http://mirror.ddscentral.org/dl.android-x86.org/houdini/7_y/houdini.sfs else v=7_x # => ?v=7_x url=http://zebra-mirror.ddscentral.org/dl.android-x86.org/houdini/7_x/houdini.sfs fi else v=7_z # -> ?v=7_z url=http://mirror.ddscentral.org/dl.android-x86.org/houdini/7_z/houdini.sfs fi然后回到批处理按任意键写回,再按任意键执行enable_nativebridge。
然后去android里把应用兼容性里的支持arm打开。
image.png