V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
mrcn
V2EX  ›  Android

应用内直接运行 apk 免安装?这是什么黑科技?

  •  
  •   mrcn · Jun 13, 2017 via Android · 18363 views
    This topic created in 3240 days ago, the information mentioned may be changed or developed.
    找游戏时发现的一个黑科技

    不需要任何特殊的权限,下载好游戏( apk )之后直接就能在应用内启动,并且可以控制游戏的数据等等

    感觉这是黑科技?还是我火星了?猜测是基于安卓多用户实现的功能。

    具体的应用的名字叫做“ GG 大玩家”,是一个游戏市场。里面有个“魔盒”功能,下载的游戏会安装到魔盒,然后直接就可以在魔盒里运行第三方的游戏。
    15 replies    2017-06-16 10:31:05 +08:00
    honeycomb
        1
    honeycomb  
       Jun 13, 2017 via Android
    和国内流行的人热更新是一个道理。
    本想着 Google 什么时候把这个漏洞消除,结果连它自己的 safetynet 也在用热更新
    aprikyblue
        2
    aprikyblue  
       Jun 13, 2017
    mrcn
        3
    mrcn  
    OP
       Jun 13, 2017 via Android
    @aprikyblue 感谢。
    vileer
        4
    vileer  
       Jun 13, 2017 via iPhone
    原理应该是应用多开
    debuggerx
        5
    debuggerx  
       Jun 13, 2017
    @vileer 应该是插件化,具体参考 2 楼的例子,和多开不是一回事,多开或者说分身主要解决的是包名冲突
    koalli
        6
    koalli  
       Jun 13, 2017
    应该是插件化,之前有 star 过一个类似的项目,可以看看
    https://github.com/kaedea/android-dynamical-loading
    wessin
        7
    wessin  
       Jun 13, 2017 via iPhone   ❤️ 1
    妈蛋,今天在小米浏览器中无意点开了 58 同城,返回桌面 app 都装好了,这一切都是后台自动操作,什么提示都没有,wtfk
    jacy
        8
    jacy  
       Jun 13, 2017
    几年前的 qq 游戏安卓版就是这样,单独下载游戏,不需要另外安装
    yukiww233
        9
    yukiww233  
       Jun 13, 2017
    http://www.coolapk.com/apk/com.dof.apkrun
    研究热更新衍生出的一堆东西...
    NoAnyLove
        10
    NoAnyLove  
       Jun 14, 2017
    热更新既然可以直接读取 Class 文件来运行( ClassLoader ),那么直接把 apk 文件解压取出 dex 文件,再从 dex 文件中取出 class 文件来加载应该也是可以的吧。感觉 Smali 库应该就能做到,不过我没试过,感觉有点意思。
    araraloren
        11
    araraloren  
       Jun 14, 2017
    @wessin 可以试试 安装 app protector,把安装卸载程序加到锁定列表
    codehz
        12
    codehz  
       Jun 14, 2017
    @NoAnyLove #10 是的,运行代码很容易,难在欺骗应用,让它以为它运行在正常环境中
    NoAnyLove
        13
    NoAnyLove  
       Jun 15, 2017
    @codehz 没有试过。这种方式运行的程序会有什么不同吗?
    codehz
        14
    codehz  
       Jun 15, 2017 via Android
    @NoAnyLove 意味着你得模拟一个安卓环境出来,举一个例子,你得把虚拟 app 的 activity 映射成实际已经注册的 activity,因为你不可能提前知道要运行的程序需要注册哪些 actuvity 对吧
    septem123
        15
    septem123  
       Jun 16, 2017
    @wessin 你这个应该是流应用 具体可以看看 dcloud 的文档
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1019 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 19:05 · PVG 03:05 · LAX 12:05 · JFK 15:05
    ♥ Do have faith in what you're doing.