V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Vesc
V2EX  ›  Android

关于系统不支持 32 位 APP 问题,能否反编译 32 位然后转成 64 位?

  •  
  •   Vesc · 12 天前 · 4890 次点击
    给家里长辈买了个三星 S25 U 事先没了解到三星已经不支持 32 位 APP 了,有个内部使用的 app 是 32 位的无法安装,却必须使用,目前是用备用机扫码的。
    尝试过使用光速虚拟机,把 32 app 装在虚拟机里面,但是无法正常调用相机扫码
    75 条回复    2025-06-11 17:16:09 +08:00
    duanxianze
        1
    duanxianze  
       12 天前
    有这折腾的功夫都不如花几百块买个好点的备用机了
    proxytoworld
        2
    proxytoworld  
       12 天前
    如果使用了一些 jni 库,你反编译也没用。。
    Lockroach
        3
    Lockroach  
       12 天前
    反馈给开发运维人员让他们增加 64 位支持比较合适吧
    luojianxhlxt
        4
    luojianxhlxt  
       12 天前
    找开发吧?好多手机不支持 32 位了
    xtreme1
        5
    xtreme1  
       12 天前
    应该不止架构不一致
    iv8d
        6
    iv8d  
       12 天前 via Android
    好家伙,找你这么说,你应该能反编译 windows xp 了
    maxmax4max
        7
    maxmax4max  
       12 天前
    @Lockroach 看清楚吧,是不支持 32 位
    nkidgm
        8
    nkidgm  
       12 天前
    咸鱼,买旧手机。
    fsq
        9
    fsq  
       12 天前
    @maxmax4max 没毛病啊,手机不支持 32 位了,让开发支持 64 位
    v321ex
        10
    v321ex  
       12 天前 via Android
    @maxmax4max 楼上没说错🤦‍♂️
    HojiOShi
        11
    HojiOShi  
       12 天前
    这手机用的骁龙 8 至尊版,但骁龙从 8Gen3 开始就只支持 64 位了,不找开发没法解决。
    Vesc
        12
    Vesc  
    OP
       12 天前
    @duanxianze 之前的手机倒是可以作为备用机
    Vesc
        13
    Vesc  
    OP
       12 天前
    @Lockroach 我估计这个软件也是花钱找别人做的,要支持 64 位应该还要加钱,况且一个也催不动
    Vesc
        14
    Vesc  
    OP
       12 天前
    @luojianxhlxt 估计是外包做的买断制
    Vesc
        15
    Vesc  
    OP
       12 天前
    @HojiOShi 但是现在问题是没开发,只能重新找之前定制这个软件的适配 64 位
    cheng6563
        16
    cheng6563  
       12 天前
    解包看看.so 库,应该可以自己试试把 64 位库塞进去
    icedx
        17
    icedx  
       12 天前
    老哥要不要留个联系方式
    kzfile
        18
    kzfile  
       12 天前
    现在 8e 的手机理论上不支持 32 位,但似乎很多国产手机还是能用上 32 位的程序
    yanqiyu
        19
    yanqiyu  
       12 天前
    先看看程序用了哪些原生库吧,要是用的原生库都是开源软件没准能自己想办法糊一个加进去。要用了私有的闭源实现说实话就算有源代码都不保证能简单的改 target 编译就工作
    python35
        20
    python35  
       12 天前
    @kzfile 貌似国产的机器都做了指令的转译 三桑大概率不会做适配了
    ScepterZ
        21
    ScepterZ  
       12 天前
    @python35 国内小厂也有不做的,魅族应该就没有
    rebounce
        22
    rebounce  
       12 天前
    送公司领导一部 s25u ,这个问题很快就解决了。
    Vesc
        23
    Vesc  
    OP
       12 天前
    @python35 三桑从 s23 就不支持了
    Vesc
        24
    Vesc  
    OP
       12 天前
    @cheng6563 我就想了解一下可行性,有时间再操作
    cheng6563
        25
    cheng6563  
       12 天前
    @Vesc 纯 Java App 是不管 32 或 64 的,是里面的.so 限制了。
    所以你直接解压 apk ,看看里面有啥.so如果都是开源或者开放的.so ,那就能操作。如果有他们私有的.so 就搞不了。

    操作方式就是用 apktool 解包,然后把 64 位.so 塞进去,改下配置文件,然后重新打包签名。
    Vesc
        26
    Vesc  
    OP
       12 天前
    @cheng6563 #25 感谢大佬,回头我试一下
    cheng6563
        27
    cheng6563  
       12 天前
    然后里面的.so 也不一定都用到了,也可以删掉看看会不会报错。
    lns103
        28
    lns103  
       12 天前
    @kzfile 部分国产品牌的国行版手机内置了 tango 转译器
    Gilfoyle26
        29
    Gilfoyle26  
       12 天前
    因为不支持 64 位系统,所以就想着要反编译 APP 。

    这个解题思路。。。。。。典型的《为了一瓶醋,包了一盘饺子》
    Mithril
        30
    Mithril  
       12 天前
    wang93wei
        31
    wang93wei  
       12 天前
    直接用小米啊,hyperOS 内置
    sampeng
        32
    sampeng  
       12 天前
    所以。。。。你觉得是 32 位和 64 位只是改个配置????
    Vesc
        33
    Vesc  
    OP
       12 天前
    @Mithril 没有源码的话可行吗
    Vesc
        34
    Vesc  
    OP
       12 天前
    @wang93wei 没买小米,买的时候也没在意 32 位 app 支不支持
    Vesc
        35
    Vesc  
    OP
       12 天前
    @sampeng 问了下 chatGPT ,好像纯 java 的 apk 可以
    meteora0tkvo
        36
    meteora0tkvo  
       12 天前
    几乎不可能,就算你拿得到源码,把里面的库全部换成 64 位都有得你掉头发的了。有这功夫还不如买多台支持 32 位的手机给你家的长辈
    Mithril
        37
    Mithril  
       12 天前
    @Vesc 这个是 translator ,不需要你 app 的源码。

    其他人说的小米内置的运行 32 位应用的功能,用的就是它家的方案。
    Akiya
        38
    Akiya  
       12 天前
    一个支持 32 的手机的成本才多少钱。。。转译一个 app 需要多少钱(时间成本转换),怎么算也是买手机划算吧
    lloovve
        39
    lloovve  
       12 天前 via iPhone
    自己搞,一个月估计都搞不定,别人搞,没几个月工资也搞不定,省流,换机
    Ocean810975
        40
    Ocean810975  
       12 天前
    试过 VMOS Pro 吗?我建议还是多找几个虚拟机试一下,大概率就是 armv7 的软件不再被支持了
    Vesc
        41
    Vesc  
    OP
       12 天前
    @Akiya 旧手机可以当备用机用,但是同时带两个手机也挺麻烦的
    Vesc
        42
    Vesc  
    OP
       12 天前
    @Ocean810975 没试过
    Vesc
        43
    Vesc  
    OP
       12 天前
    @Mithril #37 不过要是手机想用 Tango 起码的 root 吧,三星的手机 root 也挺麻烦
    Vesc
        44
    Vesc  
    OP
       12 天前
    @lloovve 目前有备用机,就是看看转 64 位 apk 的可行性
    yanqiyu
        45
    yanqiyu  
       12 天前
    @Ocean810975 这类软件也不是 emulator ,而是想办法劫持特权操作来维持一个虚拟机(加强版的 proot ),解决不了指令集的不同
    yanqiyu
        46
    yanqiyu  
       12 天前
    @Vesc #35 如果一个程序无原生库那他就不会有架构限制了
    realpg
        47
    realpg  
       12 天前
    没事儿别给关心你的人找罪受
    别买那些 others 品牌的手机
    icy37785
        48
    icy37785  
       12 天前
    @maxmax4max #7 人家没说错啊,你应该看清楚吧。
    iFlicker
        49
    iFlicker  
       12 天前
    除非这个 app 有自研的 native 代码,不然可以直接 apktool 反编译给里面的 so 都加一个 arm64 的,然后回编译签名就行了,不难
    Vesc
        50
    Vesc  
    OP
       12 天前
    @iFlicker app 的内容我看过,感觉就是一个简单的增删改,感觉不会有自研的 native
    ouqihang
        51
    ouqihang  
       12 天前 via Android
    国产 ROM 支持的,安装 32 位应用会提示打开 32 位应用支持,要重启手机。
    Vesc
        52
    Vesc  
    OP
       12 天前
    @ouqihang 三星在国内销量不高,也没做兼容
    Vesc
        53
    Vesc  
    OP
       12 天前
    刚解压看了 apk 内容,里面有个 lib39285EFA.so ,估计加密了,反编译是不可能实现了
    YuushaTao
        54
    YuushaTao  
       12 天前
    装个虚拟机 vmos 这种类似的,在把 app 装里面看看
    coolloves
        55
    coolloves  
       12 天前
    我个人使用光速调用相机有问题
    可以试试 vmos,我使用没问题
    coolloves
        56
    coolloves  
       12 天前
    使用伏羲安装 32 位的,也可以尝试.
    bunnyblueair
        57
    bunnyblueair  
       12 天前
    某宝找人分析下动态库,与业务无关的话可以去掉 听你的描述这里面估计也没业务相关的,业务相关的话逆向就费劲了。外包一般不写汇编,有源码估计编译下就行了
    zhouquanbest
        58
    zhouquanbest  
       12 天前
    给长辈用建议别三星 系统要折腾才好用
    iFlicker
        59
    iFlicker  
       11 天前
    @Vesc 其实如果愿意折腾还是可以的,IDA 打开这个 so ,然后,。。。。
    qianxaingmoli
        60
    qianxaingmoli  
       11 天前
    直接换机器成本更低,比如小米。有完善的兼容性方案。
    JensenQian
        61
    JensenQian  
       11 天前
    自己用三星好了
    长辈的话上班的话还是国产算了
    有兼容 32 位的
    okakuyang
        62
    okakuyang  
       11 天前
    你又不需要把 App 完整移植。只要目标 App 的功能足够简单,那么它大概率并不需要把某些代码放进 so 文件里。基本上就是一个全 java 的 App ,so 文件只是无关痛痒的第三方功能,不影响原有逻辑。反编译后基本上是能直接看懂逻辑的。
    bao3
        63
    bao3  
       11 天前
    @maxmax4max 确定应该让他们支持 64 位
    tairan2006
        64
    tairan2006  
       11 天前 via Android
    退货买小米
    Vesc
        65
    Vesc  
    OP
       11 天前
    @iFlicker #59 那太折腾了
    Vesc
        66
    Vesc  
    OP
       11 天前
    @YuushaTao 试过光速虚拟机,相机调用不正常
    Vesc
        67
    Vesc  
    OP
       11 天前
    @coolloves #55 有时间回去再试试
    Vesc
        68
    Vesc  
    OP
       11 天前
    @coolloves #56 这个需要 root 吗
    Vesc
        69
    Vesc  
    OP
       11 天前
    @tairan2006 三星激活不可退
    Vesc
        70
    Vesc  
    OP
       11 天前
    @okakuyang 不搞了,这样搞太折腾了
    coolloves
        71
    coolloves  
       11 天前
    @Vesc #68 不需要,前阵子刚有朋友买了三桑,也遇到这个问题,用伏羲 x 解决了,但是似乎新版安卓有 bug,弹不出键盘,你自己试试
    Ocean810975
        72
    Ocean810975  
       10 天前
    @yanqiyu 感谢赐教
    Vesc
        73
    Vesc  
    OP
       10 天前
    @coolloves #71 回头我试试
    jim9606
        74
    jim9606  
       10 天前 via Android
    你说的其实是二进制翻译,这事要么买老设备要么买系统集成二进制翻译的设备,别自己折腾,有这能力自己搞的也不会这么问问题。
    本质上是因为现在的 ARMv9 SoC 普遍去掉了 AArch32 支持,通常的不带翻译的虚拟机是没法跑这些 app 的。
    Legendzhan
        75
    Legendzhan  
       10 天前
    @iv8d 想的美, 是不是想要 arm64 windows xp🤣🤣🤣🤣🤣🤣
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2467 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 10:47 · PVG 18:47 · LAX 03:47 · JFK 06:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.