VA产品说明&开发指导
VirtualApp(简称:VA)是一款运行于Android系统的沙盒产品,可以理解为轻量级的“Android虚拟机”。其产品形态为高可扩展,可定制的集成SDK,您可以基于VA或者使用VA定制开发各种看似不可能完成的项目。VA目前被广泛应用于APP多开、小游戏合集、手游加速器、手游租号、手游手柄免激活、VR程序移植、区块链、移动办公安全、军队政府数据隔离、手机模拟信息、脚本自动化、插件化开发、无感知热更新、云控等技术领域。
Github上代码已在2017年12月份停止更新,商业版代码在持续更新中,如需授权获得最新代码,请联系微信:10890
| 术语 | 解释 |
|---|---|
| 宿主 | 集成VirtualApp类库(lib)的App叫做宿主 |
| 宿主插件 | 用于在同一个手机,运行另一种ABI的宿主包,又称做插件包,扩展包,宿主插件包,宿主扩展包 |
| 虚拟App/VApp | VA的虚拟环境多开的app |
| 外部App | 手机真实环境安装的app |

VA技术一共涉及到了Android的APP层,Framework层以及Native层。
一个APP想要在Android系统上运行,必须要安装后系统才会接纳。安装到VA内部的APP实际上并没有安装到系统中,所以正常情况下是无法运行的。那如何才能让它运行呢?
答:那就只有“欺骗”系统,让系统认为已经安装。而这个“欺骗”过程就是VA Framework的核心工作内容,也是整个VA的核心技术原理。
下面介绍下在这3个层次分别做了什么事情:
| 层次 | 主要工作 |
|---|---|
| VA Space | 由VA提供了一个内部的空间,用于安装要在其内部运行的APP,这个空间是系统隔离的。 |
| VA Framework | 这一层主要给Android Framework和VAPP做代理,这也是VA的核心。VA提供了一套自己的VA Framework,处于Android Framework与VA APP之间。 1. 对于VAPP,其访问的所有系统Service均已被 VA Framework 代理,它会修改VAPP的请求参数,将其中与VAPP安装信息相关的全部参数修改为宿主的参数之后发送给Android Framework(有部分请求会发送给自己的VA Server直接处理而不再发送给Android系统)。这样Android Framework收到VAPP请求后检查参数就会认为没有问题。2. 待Android系统对该请求处理完成返回结果时,VA Framework同样也会拦截住该返回结果,此时再将原来修改过的参数全部还原为VAPP请求时发送的。 这样VAPP与Android系统的交互也就能跑通了。 |
| VA Native | 在这一层主要为了完成2个工作,IO重定向和VA APP与Android系统交互的请求修改。 1. IO重定向是因为可能有部分APP会通过写死的绝对路径访问,但是如果APP没有安装到系统,这个路径是不存在的,通过IO重定向,则将其转向VA内部安装的路径。 2. 另外有部分jni函数在VA Framework中无法hook的,所以需要在native层来做hook。 |
总结: 通过上面技术架构可以看到,VA内部的APP实际是跑在VA自己的VA Framework之上。 VA已将其内部APP的全部系统请求进行拦截,通过这项技术也能对APP进行全面控制,而不仅仅只是多开。并且为了方便开发者,VA还提供了SDK以及Hook SDK。
VA运行时有5类进程:CHILD进程,VA Host Main进程,VA Host Plugin进程,VAPP Client进程,VAServer进程。
VA为了同时支持32位APP与64位APP,需要安装2个包:一个主包,一个插件包(在本文档中主包是32位,插件包是64位)。
2个包也是必须的,因为一个包只能运行在一种模式下,要么32位,要么64位。所以对于32位的APP,VA使用32位的主包去运行,对于64位的APP,VA则使用64位的插件包去运行。
在主包中含了VA的所有代码,插件包中只有一段加载主包代码执行的代码,无其他代码。所以插件包几乎不用更新,只需要更新主包即可。
另外主包是选择用32位还是64位,可以在配置文件中修改(比如对于要上GooglePlay的用户,会修改为主包64位,插件包32位)。
各类进程的作用与解释如下:
| 进程类型 | 作用 |
|---|---|
| CHILD | 由VA Host集成的其他进程,比如:保活进程,推送进程等。 |
| VA Host Main | VA主包的UI主界面所在的进程。默认主包是32位,插件包是64位,可在配置文件中修改切换。 |
| VA Host Plugin | 支持64位APP的插件包所在进程。默认主包是32位,插件包是64位,可在配置文件中修改切换。 |
| VAPP Client | 安装到VA中的APP启动后产生的进程,在运行时会将io.busniess.va:pxxx进程名修改VAPP的真实进程名。 |
| VAServer | VA Server的所在的进程,用于处理VA中不交予系统处理的请求。比如APP的安装处理。 |
通过上面的技术架构,我们可以了解到VA可以对APP进行全面的控制,并且提供了Hook SDK,几乎能满足您在各个领域的一切需求:
1. 可以满足您的双开/多开需求
VA可以让您在同一部手机上安装多个微信/QQ/WhatsApp/Facebook等APP,实现一部手机,多个账号同时登录。
可以满足您的移动安全需求
VA提供了一整套内部与外部的隔离机制,包括但不限于(文件隔离/组件隔离/进程通讯隔离),简单的说VA内部就是一个“完全独立的空间”。
通过VA可将工作事务与个人事务安全的隔离,互不干扰。稍作定制即可实现应用行为审计、数据加密、数据采集、数据防泄漏、防攻击泄密等移动安全相关的需求。
2.1 应用行为审计
通过VA提供的HOOK能力可以实现实时监测用户使用行为,将违规信息上传到服务器;并能轻易实现诸如时间围栏(在某个时间段内能否使用应用的某个功能)、地理围栏(在某个区域内能否使用应用的某个功能)、敏感关键字过滤拦截等功能需求。
2.2 数据加密
通过VA提供的HOOK能力可以实现对应用的全部数据/文件加密,保证数据/文件落地安全。
2.3 数据采集
通过VA提供的HOOK能力可以实现应用数据的实时无感上传需求,如聊天记录、转账记录等,防止事后删除无法追溯。
2.4 数据防泄漏
通过VA提供的HOOK能力可以实现应用防复制/粘贴、防截屏/录屏、防分享/转发、水印溯源等需求。
2.5 防攻击泄密
通过VA提供的应用管控能力可以将APP获取短信/通讯录/通话记录/后台录音/后台拍照/浏览历史/位置信息等隐私相关的行为完全控制在沙盒中,防止木马/恶意APP获取到用户真实的隐私数据,造成泄密等严重后果。
可以满足您的免ROOT HOOK需求
VA提供了Java与Native的Hook能力,通过VA,您可以轻易实现诸如虚拟定位、改机、APP监控管理、移动安全等各种场景需要的功能。
可以满足您的APP静默安装需求
VA提供了APP静默安装,静默升级,静默卸载的能力。如应用商店或游戏中心在集成VA后可以避免需要用户手动点击确认安装的操作,做到下载后立即安装到VA内,给用户带来“小程序”搬的体验,彻底避免了应用不易被用户安装上的问题。
可以满足您的APP管控需求
您可以通过VA清楚的掌握APP访问了哪些系统API,哪些敏感数据,哪些设备信息等。比如APP是否访问了联系人,相册,通话记录,是否访问了用户的地理位置等信息。
当然,您还可以通过VA控制或者构造自定义的信息给这些APP。不仅于此,您还可以获取到APP的私有数据,比如聊天数据库等。总之通过VA提供的应用管控能力,您可以轻易控制APP的一切行为,甚至修改APP与服务器交互内容等。
可以满足您的海外市场需求
VA实现了对Google服务的支持,以支持海外的App运行,比如Twitter、Messenger、WhatsApp、Instagram、FaceBook、Youtube等。
可以满足您的VR程序移植需求
可以通过VA的Hook能力拦截VR设备的API,让您无需改动代码即可将VR程序移植到新的设备。
可以满足您几乎一切能想到的需求
VA对于内部的App具有完全的监管和控制能力,几乎能满足您的一切需求!
同时VA也是该技术领域唯一一款对外商业授权的产品
截止目前已有上百家授权客户在付费使用VirtualApp商业版代码,集成VirtualApp代码的APP日启动次数超过2亿次,众多安卓工程师向我们提供不同场景下的用户反馈,通过我们技术团队不断优化迭代,不断提升产品性能与兼容性!
克隆能力
可以克隆外部系统中已经安装的App,并在内部运行,互不干扰。典型应用场景为App双开。
免安装能力
除了克隆已安装之外,VA可以直接在内部安装(外部无感知)apk,并在内部直接运行。典型应用场景为插件化,独立应用市场等。
多开能力
VA不仅可以“双开”,独特的多用户模式支持用户在内部无限多开同一个App。
内外隔离能力
VA是一个标准的沙盒,或者说“虚拟机”,提供了一整套内部与外部的隔离机制,包括但不限于(文件隔离/组件隔离/进程通讯隔离),简单的说VA内部就是一个“完全独立的空间”。在此基础之上,稍作定制即可实现一部手机上的“虚拟手机”。当然您也可以发挥想象,定制成应用于数据加密,数据隔离,隐私保护,企业管理的应用系统。
对于内部App的完全控制能力
VA对于内部的App具有完全的监控和控制能力,这点在未Root的外部环境中是绝对无法实现的。
高性能
进程级“虚拟机”,VA独特的实现方式让其性能几乎于原生App一致,更不需要普通虚拟机漫长的启动。
全版本支持
支持5.0-17.0,支持32位/64位app,支持ARM以及X86处理器。并且支持未来将更新的Android版本。
易扩展与集成
VA 的集成方式与普通Android库类似,即使您的App已经完成上线,您也方便的可以集成VA,享受VA带来的能力。
支持Google服务
提供Google服务的支持,以支持海外的App
在做企业级移动安全时,往往需要对APP进行管控,以下是列出的可能技术方案对比:
| 技术方案 | 原理简介 | 点评 | 运行性能 | 兼容稳定性 | 项目维护成本 |
|---|---|---|---|---|---|
| 二次打包 | 通过反编译目标APP,加入自己的控制代码,重新打包 | 1.现在的APP几乎都有加固或防篡改保护,重打包已是一件非常困难的事 2.手机系统也会检测APP是否被重打包,如果重打包,会直接提示用户存在安全风险,甚至不让安装 3.针对每一个APP,甚至每一个版本都要深入去逆向分析,耗时耗力,难于维护 |
优秀 | 差 | 高 |
| 定制ROM | 通过定制系统源码,编译刷到指定手机 | 只能针对指定的内部手机,局限性太大,无法扩展 | 优秀 | 优秀 | 高 |
| ROOT手机 | 通过ROOT手机,刷入xposed等类似框架 | 1.ROOT手机现在本身已是一件不太可能的事 2.现实中也很难让用户能去ROOT自己的手机 |
优秀 | 差 | 高 |
| VA | 轻量级虚拟机,速度快,对设备要求低 | 无上述风险点 | 优秀 | 优秀,有上百家企业在同时测试反馈 | 低,VA提供了API并有专业的技术团队保障项目稳定运行 |
| 通过以上对比可以看出,VA是一款优秀的产品,并且能降低您的开发维护成本! |
第1步:在您的Application中调用VA接口VirtualCore.get().startup()来启动VA引擎
第2步:调用VA接口VirtualCore.get().installPackageAsUser(userId, packageName)将目标APP安装到VA中
第3步:调用VA接口VActivityManager.get().launchApp(userId, packageName)启动APP
仅通过以上3个API就完成了基础使用,VA已屏蔽了复杂的技术细节,并提供了接口API,让您的开发变得很简单!
VA已被上百家企业进行了广泛测试,包含数十家上市公司高标准的测试及反馈,几乎涵盖了海内外的各种机型设备和场景! 为您的稳定运行提供了充分的保障!
截止目前,支持的系统版本:
| 系统版本 | 是否支持 |
|---|---|
| 5.0 | 支持 |
| 5.1 | 支持 |
| 6.0 | 支持 |
| 7.0 | 支持 |
| 8.0 | 支持 |
| 9.1 | 支持 |
| 10.0 | 支持 |
| 11.0 | 支持 |
| 12.0 | 支持 |
| 13.0 | 支持 |
| 14.0 | 支持 |
| 15.0 | 支持 |
| 16.0 | 支持 |
| 17.0 | 支持 |
支持的APP类型:
| APP类型 | 是否支持 |
|---|---|
| 32位APP | 支持 |
| 64位APP | 支持 |
支持的HOOK类型:
| Hook类型 | 是否支持 |
|---|---|
| Java Hook | 支持 |
| Native Hook | 支持 |
支持的CPU类型:
| Hook类型 | 是否支持 |
|---|---|
| ARM 32 | 支持 |
| ARM 64 | 支持 |
购买授权后我们会建立微信群,有任何问题可以随时反馈给我们,并根据优先级在第一时间处理!
VA开发文档请参考:开发文档
VirtualApp虚拟机技术归属于:山东盒一网络科技有限公司(原:济宁市罗盒网络科技有限公司),于2015年至2026年申请多项VirtualApp知识产权,受中华人民共和国知识产权法保护。当您需要使用Github上的代码时,请购买商业授权,获取商业授权后将可以收到最新VirtualApp商业版全部源代码。上百家授权客户在付费使用VirtualApp商业版代码,集成VirtualApp代码的APP日启动次数超过2亿次,众多安卓工程师向我们提供不同场景下的用户反馈,通过我们技术团队不断优化迭代,VirtualApp商业版代码性能更好、兼容性更高。当您的公司获取授权后,将成为其中一员,享受这些不断迭代完善后的技术成果。并可以和我们的授权客户进行运营、技术及商业上的互动合作。
负责人:张总
微信:10890
您如果未经授权将VirtualApp用于内部使用、商业牟利或上传应用市场,我们将取证后报警(侵犯著作权罪)或起诉,这将对您所属公司造成刑事责任及法律诉讼,影响到您公司的商誉和投资。购买商业授权为您节省大量开发、测试和完善兼容性的时间,让您更多时间用于创新及盈利。罗盒科技已在2020年报警和起诉了一些个人及公司。
为响应国家对于知识产权的保护号召!凡举报自己所在公司或其他公司未经授权,违法使用VirtualApp代码开发产品的,一经核实给予现金奖励。我们会对举报人身份保密!举报联系微信:10890
XPosed Hook框架2026年10月7号 至 2026年10月26号 商业版代码更新内容
748、完善基础APK及拆分包(base/split)的恢复解析,缓存失效后重新生成主包、拆分包组件及签名信息,确保系统升级或APK变化后应用组件识别和扩展包同步正常
747、兼容旧版v6安装清单并保持v7存储格式,系统升级后自动迁移原安装记录及各虚拟用户的安装、隐藏、启动状态,无需重新安装应用
746、完善应用恢复时的ABI及扩展包同步处理,修复进程位数选择错误,以及扩展包基础APK缺失后未自动补齐的问题
745、修复异常应用再次移入时被误判为已安装,导致未实际恢复仍返回成功的问题,并保留原有多用户安装状态
744、完善包缓存、签名缓存及安装列表的校验和写入保护,避免清单截断被误判为有效,以及写入中断损坏原有记录的问题
743、完善应用安装记录及用户数据保护,修复包信息加载失败后触发卸载清理,造成应用及数据被误删的问题
742、修复Android 16升级至17后旧包信息缓存不兼容,导致VA核心进程反复崩溃、无法移入及启动应用的问题,并增加旧缓存失效后的自动重建机制
2026年9月1号 至 2026年10月7号 商业版代码更新内容
741、完善ART/JNI方法校验和字符串释放处理,修复初始化发生异常后仍被标记为成功的问题
740、完善ARM Hook安装失败处理,修复内存页范围计算及原有页权限恢复不正确的问题
739、修复UID处理线程初始化失败后一直等待,以及失败重试时状态异常和资源泄漏的问题
738、修复16KB内存页环境下路径检查对齐错误,导致正常文件访问失败的问题
737、修复ARM64指令重定位时负偏移地址计算错误、部分指令字段被错误改写,以及ADRP原始页地址未正确保留的问题
736、修复Binder拦截后异常类型发生变化,导致APP无法正确处理异常的问题
735、适配部分Android 16手机上Service连接回调的参数差异
734、修复账号token失效后清理不完整,仍可能获取到旧token的问题
733、修复普通账号认证成功后token未保存的问题
732、修复自定义账号token缓存命中后仍重复请求认证的问题
731、修复stopService返回状态错误,完善服务启动与停止衔接处理
730、修复调用finishAffinity后Activity结束状态不正确的问题
729、修复Seccomp-Bpf模式下使用相对路径添加inotify监听失败的问题
728、修复futimens更新文件时间时错误返回权限异常的问题
727、修复syscall(truncate)参数传递错误导致文件截断失败的问题
726、修复账号可见性配置在重启后丢失或归属到错误分身的问题
725、修复取消全部闹钟时误取消其他多开APP闹钟的问题
724、修复查询通知时混入其他APP通知,以及使用返回的tag取消通知失败的问题
723、修复查询通知监听权限和气泡配置时出现空指针的问题
722、修复多包安装完成后父安装会话未结束、完成通知缺失的问题
721、完善安装会话权限校验,防止不同APP操作彼此的安装任务
720、修复在非0虚拟用户中安装新APP时,错误安装到用户0的问题
719、修复安装包含重复APK的安装包时,安装线程卡死的问题
2026年8月5号 至 2026年 8月31号 商业版代码更新内容
718、修复部分手机上启动APP后按返回键无反应
717、处理fake_dlopen,解决某些函数无法找到的问题
716、处理hook后的权限恢复
715、处理maps中的VMA,将某些被mprotect拆分的合并
714、修复LocaleManager中的函数名错误
2026年7月17号 至 2026年 8月4号 商业版代码更新内容
713、对sdcard安装的文件进行了系统APP模拟
712、修复getOatFile()函数
711、路径模拟相关的配置调整
710、执行execve时增加对LD_LIBBRAY_PATH的支持
709、修复多个不同类型的与加固/检测相关的导致APP无法启动的问题
| 日期 | 榜单 | 排名 | 周期新增 | 总 STAR |
|---|