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

有没有什么开源(可定制)的,类似 VMOS 的 Android in APK 方案

  •  
  •   liyafe1997 · 1 天前 via Android · 876 次点击

    根本需求是后台静默更新 APK (且仅在用户静默/未使用时)

    用 Unity3D 开发的工业&企业安卓软件,半无人值守,所以需要后台能自动更新且更新时机可控。

    之前想用 360 的 Replugin ,折腾了半天,加上那个插件之后各种编译报错,好不容易解决了,打开就闪退,感觉像是不太兼容 Unity 导出的 Android 项目的样子。

    也搜了下腾讯的 Shadow ,网上有人明确说 Shadow 不支持 Unity 这种“在.so 中加载 Activity”的方案。

    甚至试了下 VirtualApp ,因为理论上这玩意能直接加载未使用修改的 APK 。现在各路多开软件,包括 GBox 以及出境易这些 APK in APK 容器方案都是基于它。我试的这个: https://github.com/ServenScorpion/VirtualApp

    安装它编译好的这个容器,在里面导入我的 APK (未经任何修改),App 能启动,但是启动后 Unity 的画面黑屏,不知道为啥。

    于是就想到了 VMOS 这类“虚拟机”方案。试了下我的 App 能在 VMOS 中完美运行,所以要是我能定制这类“虚拟机”App ,比如把 launcher 及其它无用系统 app 都去掉,只留一个我的 app ,虚拟机启动后自动启动我的 app ,然后再加入一个系统级的 updater.apk 用来管理更新,感觉挺完美的。

    因为设备都是市面上采购的消费级安卓设备(手机/平板等),不考虑去找 OEM 定制安卓设备,所以看起来这是最好的方案了?

    11 条回复    2025-01-30 23:02:17 +08:00
    cwxiaos
        1
    cwxiaos  
       20 小时 20 分钟前 via iPhone
    两仪开源的,作者弃坑了,是一个完整的虚拟机

    另外是 virtualapp,是沙盒方案
    tyzandhr
        2
    tyzandhr  
       18 小时 42 分钟前 via Android
    virtualapp 开源而不开放,是收费的
    alphaControler
        3
    alphaControler  
       16 小时 3 分钟前 via Android
    我看 OP ,应该设备是自己的,找人把设备给 root 了,就可以拥有各种权限了。直接替换 launcher 和系统级的 updater ,理论上是可以解决的。
    alphaControler
        4
    alphaControler  
       15 小时 54 分钟前 via Android
    @alphaControler
    1.自己写一个 launcher APP ,然后使用跨进程拉起自己的 APP ,
    2.把当前 APP 的首页返回键退出 APP 事件拦截掉
    3.在 launcher 中把 home 键拦截并改成拉起自己的游戏应用
    4.launcher 可以通过生命周期感知到当前用户在用还是未在用,直接后台控制静默升级。

    有 root 权限,这些都是可以做到的。
    zsh2517
        5
    zsh2517  
       11 小时 34 分钟前
    (只是一个猜想)全部开放 adb 是否可行?目前 adb pair + connect 的机制应该有一定的安全性(或者走有线)。adb 本身是可以安装软件( adb install )和拉起 activity ( adb shell am start )的,然后也支持远程控制(参考如 scrcpy )
    liyafe1997
        6
    liyafe1997  
    OP
       9 小时 33 分钟前
    @alphaControler 这不是一个可持续的方案,不是什么设备都能 root
    liyafe1997
        7
    liyafe1997  
    OP
       9 小时 32 分钟前
    @zsh2517 adb 127.0.0.1 ?感觉可能不太稳定?应该每次重启后都要重新 pair 吧?
    zsh2517
        8
    zsh2517  
       8 小时 29 分钟前
    @liyafe1997 设备数量不多的话可以考虑有线,授权后就可以一直用。无线的话,每次重启之后可能需要打开无线调试功能,然后识别地址
    zsh2517
        9
    zsh2517  
       8 小时 26 分钟前
    好像有个叫做 mdns 的东西,会自动发现网络下的已配对的设备。具体能不能用可以试试
    alphaControler
        10
    alphaControler  
       8 小时 13 分钟前 via Android
    @liyafe1997 不是自己采购设备,植入软件,再出售设备吗?
    s82kd92l
        11
    s82kd92l  
       6 小时 52 分钟前 via Android
    我理解工业软件更多的是要读取 android 上的各种传感器数据,gui 要求不高。这种情况 termux 里面的任何可执行文件都可以满足传感器读取加上传需求,需要 gui 的就简单写个 web 节目得了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   689 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 21:54 · PVG 05:54 · LAX 13:54 · JFK 16:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.