根本需求是后台静默更新 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 定制安卓设备,所以看起来这是最好的方案了?
1
cwxiaos 20 小时 20 分钟前 via iPhone
两仪开源的,作者弃坑了,是一个完整的虚拟机
另外是 virtualapp,是沙盒方案 |
2
tyzandhr 18 小时 42 分钟前 via Android
virtualapp 开源而不开放,是收费的
|
3
alphaControler 16 小时 3 分钟前 via Android
我看 OP ,应该设备是自己的,找人把设备给 root 了,就可以拥有各种权限了。直接替换 launcher 和系统级的 updater ,理论上是可以解决的。
|
4
alphaControler 15 小时 54 分钟前 via Android
@alphaControler
1.自己写一个 launcher APP ,然后使用跨进程拉起自己的 APP , 2.把当前 APP 的首页返回键退出 APP 事件拦截掉 3.在 launcher 中把 home 键拦截并改成拉起自己的游戏应用 4.launcher 可以通过生命周期感知到当前用户在用还是未在用,直接后台控制静默升级。 有 root 权限,这些都是可以做到的。 |
5
zsh2517 11 小时 34 分钟前
(只是一个猜想)全部开放 adb 是否可行?目前 adb pair + connect 的机制应该有一定的安全性(或者走有线)。adb 本身是可以安装软件( adb install )和拉起 activity ( adb shell am start )的,然后也支持远程控制(参考如 scrcpy )
|
6
liyafe1997 OP @alphaControler 这不是一个可持续的方案,不是什么设备都能 root
|
7
liyafe1997 OP @zsh2517 adb 127.0.0.1 ?感觉可能不太稳定?应该每次重启后都要重新 pair 吧?
|
8
zsh2517 8 小时 29 分钟前
@liyafe1997 设备数量不多的话可以考虑有线,授权后就可以一直用。无线的话,每次重启之后可能需要打开无线调试功能,然后识别地址
|
9
zsh2517 8 小时 26 分钟前
好像有个叫做 mdns 的东西,会自动发现网络下的已配对的设备。具体能不能用可以试试
|
10
alphaControler 8 小时 13 分钟前 via Android
@liyafe1997 不是自己采购设备,植入软件,再出售设备吗?
|
11
s82kd92l 6 小时 52 分钟前 via Android
我理解工业软件更多的是要读取 android 上的各种传感器数据,gui 要求不高。这种情况 termux 里面的任何可执行文件都可以满足传感器读取加上传需求,需要 gui 的就简单写个 web 节目得了
|