沙盒机制的安卓系统(安卓沙盒运行软件)

沙盒机制的安卓系统,原文标题:Android 系统的沙盒程序,App 虚拟化引擎。《开源精选》是我们分享Github、Gitee等开源

沙盒机制的安卓系统,原文标题:Android 系统的沙盒程序,App 虚拟化引擎。

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的 Android 系统的沙盒程序,App 虚拟化引擎创建了一个虚拟空间,在那里可以任意安装、启动、控制、卸载应用。虚拟空间与外部隔离相当于沙盒环境,可在安卓上实现应用多开、静默安装等黑科技。

VirtualApp介绍

VirtualApp(简称:VA)是一款运行于Android系统的沙盒产品,可以理解为轻量级的“Android虚拟机”。其产品形态为高可扩展,可定制的集成SDK,您可以基于VA或者使用VA定制开发各种看似不可能完成的项目。VA目前被广泛应用于APP多开、小游戏合集、手游加速器、手游租号、手游手柄免激活、区块链、移动办公安全、军队政府数据隔离、手机模拟信息、脚本自动化、插件化开发、无感知热更新、云控等技术领域。

VA技术架构

VA技术一共涉及到了Android的APP层,Framework层以及Native层。

沙盒机制的安卓系统(安卓沙盒运行软件)

层次

主要工作

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功能介绍

1.可以满足您的双开/多开需求,VA可以让您在同一部手机上安装多个微信/QQ/WhatsApp/Facebook等APP,实现一部手机,多个账号同时登录。

2.VA提供了一整套内部与外部的隔离机制,包括但不限于(文件隔离/组件隔离/进程通讯隔离),简单的说VA内部就是一个“完全独立的空间”。 通过VA可将工作事务与个人事务安全的隔离,互不干扰。稍作定制即可实现应用行为审计、数据加密、数据采集、数据防泄漏、防攻击泄密等移动安全相关的需求。

3.VA提供了Java与Native的Hook能力,通过VA,您可以轻易实现诸如虚拟定位、改机、APP监控管理、移动安全等各种场景需要的功能。

4.VA提供了APP静默安装,静默升级,静默卸载的能力。如应用商店或游戏中心在集成VA后可以避免需要用户手动点击确认安装的操作,做到下载后立即安装到VA内,给用户带来“小程序”搬的体验,彻底避免了应用不易被用户安装上的问题。

5.VA实现了对Google服务的支持,以支持海外的App运行,比如Twitter、Messenger、WhatsApp、Instagram、FaceBook、Youtube等。

特有能力

  • 克隆能力
    可以克隆外部系统中已经安装的App,并在内部运行,互不干扰。典型应用场景为App双开。
  • 免安装能力
    除了克隆已安装之外,VA可以直接在内部安装(外部无感知)apk,并在内部直接运行。典型应用场景为插件化,独立应用市场等。
  • 多开能力
    VA不仅可以“双开”,独特的多用户模式支持用户在内部无限多开同一个App。

VA工程接入

1.创建自己的App

新建一个application类型的module,并添加lib模块为依赖

implementation project(':lib')

2.在AndroidManifest.xml添加所需的权限

<uses-permission android:name="${VA_ACCESS_PERMISSION_NAME}" />

权限名称必须与VAConfig.gradle中所声明的保持一致,可以在build.gradle中添加Placeholder来防止出错。

android { // ... manifestPlaceholders = [ VA_ACCESS_PERMISSION_NAME: rootProject.ext.VA_ACCESS_PERMISSION_NAME, ]}

3.创建一个Application

复写attachBaseContext方法,添加引导VirtualApp的代码:

@Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); try { VirtualCore.get().startup(base, mConfig); } catch (Throwable e) { e.printStackTrace(); } }

更多内容:https://github.com/asLody/VirtualApp

本文《沙盒机制的安卓系统(安卓沙盒运行软件)》由网赚联盟( wangzhuan.org.cn )整理或原创,感谢您的阅读。

随机文章

SEO小小课堂网
搜素引擎算法
关键词排名优化
GEO培训
SEO小小课堂网
SEO教程
站长导航
关键词排名优化

百度搜索“网赚联盟”即可找到本站,微信搜索“小小课堂网”关注小小课堂网公众号。网赚联盟( wangzhuan.org.cn )欢迎用户投稿,发布者:GitHub精选,文章版权归作者所有,投稿文章不代表网赚联盟立场,中二少年发布为网赚联盟原创文章,转载请注明出处:https://wangzhuan.org.cn/400744.html

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注