美文网首页Android进阶Android开发Android技术知识
Android-X86集成houdini(Arm兼容工具)

Android-X86集成houdini(Arm兼容工具)

作者: 赵海洋 | 来源:发表于2017-11-30 14:47 被阅读487次

    http://blog.csdn.net/roland_sun/article/details/49735601中看到对于android x86如何支持arm架构app的说明,但没有详细操作步骤,我这里经过摸索实操了一遍。

    环境

    要注意的是安装android系统时(我参考的https://www.cnblogs.com/wynn0123/p/6288344.html),要在下面这一步一定要选择Yes,否则没有权限对系统进行修改(可能安装后用root remount也行,但我没实验过)。

    使用可读写方式安装

    安装houdini

    由于我没有翻墙,所以一些说翻墙后直接开启选项的方式我不能用,于是就手动处理。

    1. 首先adb pull /system/bin/enable_nativebridge .\enable_nativebridge(x64-6.0-rc3)将arm兼容安装的脚本pull下来。
    2. 打开enable_nativebridge(x64-6.0-rc3),里面有几个下载地址http://goo.gl/Knnmyl、url=http://goo.gl/JsoX2C、http://goo.gl/n6KtQa,用迅雷把他们下载下来(不翻墙也能下,迅雷就这点好)。
    3. 然后放到某http服务器,我是放到我自己本地架设的http服务器中。

    http://192.168.0.101/houdini_Knnmyl/houdini.sfs
    http://192.168.0.101/houdini_JsoX2C/houdini.sfs
    http://192.168.0.101/houdini_n6KtQa/houdini.sfs

    1. 然后把enable_nativebridge(x64-6.0-rc3)中的链接换成新的链接,将打印日志的语句log -pe -thoudini都直接改为echo方便后动执行时看效果,再另存为enable_nativebridge.

      修改前后对比
    2. 执行adb push enable_nativebridge /system/bin/enable_nativebridge将文件推送回去。
      执行时出错:

    3. 看来权限不足,先执行adb root,来使用root级别的adb。注意如果是使用虚拟机端口转发的android系统的5555,则这时需要重新adb connect 127.0.0.1:7560 (这里这个ip和端口是配置的本地转发地址)。

    4. 然后再执行adb push enable_nativebridge /system/bin/enable_nativebridge 则成功将文件推入。

    5. 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的链接(用短链接还原网站http://bitly.co/,已FQ可跳过)解析出来并且改成真实链接如下,最好顺便把所有的log -pe -thoudinilog -pi -thoudini改成echo方便后面shell执行时看到结果 :

    f [ -z "$1" ]; then
        if [ "`uname -m`" = "x86_64" ]; then
            v=7_y
            # http://goo.gl/SBU3is -> http://dl.android-x86.org/houdini.php?v=7_y
            url=http://mirror.ddscentral.org/dl.android-x86.org/houdini/7_y/houdini.sfs
        else
            v=7_x
            # http://goo.gl/0IJs40 => http://dl.android-x86.org/houdini.php?v=7_x
            url=http://zebra-mirror.ddscentral.org/dl.android-x86.org/houdini/7_x/houdini.sfs
        fi
    else
        v=7_z
        # http://goo.gl/FDrxVN -> http://dl.android-x86.org/houdini.php?v=7_z
        url=http://mirror.ddscentral.org/dl.android-x86.org/houdini/7_z/houdini.sfs
    fi
    

    然后回到批处理按任意键写回,再按任意键执行enable_nativebridge。
    然后去android里把应用兼容性里的支持arm打开。


    image.png

    相关文章

      网友评论

        本文标题:Android-X86集成houdini(Arm兼容工具)

        本文链接:https://www.haomeiwen.com/subject/mvuvbxtx.html