> App应用双开(多开)技术
微信分身,微信多开,微信双开- http://blog.csdn.net/yunajie/article/details/50894488
Android应用分身功能介绍- http://blog.csdn.net/maetelibom/article/details/52084085

-- LBE平行空间和市面上的其他应用双开app有本质区别,其他方案是通过改包名、改Framework等非常粗糙的方式达到目的,而 LBE是让应用在自己开的虚拟机里面运行,单独的进程单独的环境来实现双开;而机友精灵是把应用通过复制改代码重新生成APK文件来实现的;MIUI8。LBE平行空间的底层是一个完整的虚拟化引擎:MultiDroid更准确的说,MultiDroid并不是硬件虚拟化或OS虚拟化 (譬如VMware, Xen, KVM),它也不是应用层虚拟化(譬如XenApp, Wine),MultiDroid更类似容器(Container).LBE出品的平行空间(Parallel Space)。
  现阶段,已有许多安全公司研发出了较早时期的App双开技术:LBE平行空间、卓盟双开助手、金山开小号,但是它们的原理无一例外的是插件化。

- LBE MultiDroid的关键技术有:
  1. Framework层的虚拟实现在Android环境中,每个应用在运行时都需要和Android framework打交道。Android系统的System-Server进程提供了大部分的系统API。 应用程序通过Binder IPC调用系统API。LBE之前在安全大师产品中,也就是通过对System-Server的hook来实现主动防御和权限管理,但MultiDroid在设计之初的一个最重要的目标就是不需要root权限,从而不能通过hook的方式来实现虚拟化。为此,我们需要自行实现一套完整的System-Server API,这就是MultiDroid的核心,工作量非常大,更麻烦的是,我们的设计目标是支持所有Android 4.0以上版本,而每个版本的Framework实现又千差万别……
  2. 文件系统虚拟化程序在运行的时候,会加载文件系统上的程序指令和程序数据。要建立虚拟的应用程序运行环境,需要模拟一个独立的文件系统,在这个独立的文件系统中,再针对不同的虚拟应用的主目录进行区分和权限控制;
  3. Android系统组件管理一个Android应用基本上是由Android四大组件(Activity, Service, Broadcast Receiver,Content Provider)构成。在Android环境中,System-Server和应用通过进程间通信交互,Android系统负责了四大组件的管理,包括创建,激活,销毁等。MultiDroid引擎实现了一套Android组件管理系统,用来模拟系统对Android组件的管理。每个运行在虚拟环境中的应用,会把自己的组件注册给MultiDroid引擎,由MultiDroid引擎负责各个组件的生命周期维护;
  4. 应用进程管理Android本身在应用和进程之间做了隔离,应用几乎不需要感知进程的存在,只需要关注应用自身的四大组件。但是应用本身还是需要在Dalvik进程中运行。虚拟环境中的进程仍然是一个Dalvik进程, MultiDroid引擎负责了虚拟应用进程的创建,进程ID的分配,进程的销毁等;
  
 - MultiDroid的未来发展:
 目前的MultiDroid引擎已经相当完善,可以很好的运行市面上的绝大部分App,而且在耗电和内存使用上都做了非常多的优化,但这只是起步,我们期望下一版的MultiDroid引擎将会从某种程度上改变Android本身的生态环境和使用体验,譬如支持整个虚拟环境的快照和恢复,发烧友就不用为了尝试各种新鲜玩法而反复刷机了,当然,还有虚拟环境内应用数据的云备份,类似iCloud,虽然有Android厂商也支持类似功能,但跨厂商的设备同步目前还没有;再譬如代码动态优化,虽然目前的MultiDroid引擎并没有性能问题,但我们希望可以借鉴ART的做法,通过在虚拟环境中的代码预优化和动态转换,来提升应用加载速度;同时,我们已经找到了一个办法把具有某些特征的dex字节码片段在虚拟环境中转为native指令来运行,性能的提升非常夸张。总之,MultiDroid打开了一个盒子,里面有无穷可能。

-- 实现双开(多开)的几种方案:
 1.静态修改APK包名,然后重打包
作为厂商肯定不推荐这个方式拉,可能存在法律风险
 2.动态修改APK包名
对原生代码修改量小,兼容性差,部分APP需单独适配
 3.动态修改进程的实例
对原生代码修改量大,兼容性一般,可能会导致系统一些乱七八糟的BUG
 4.通过多用户机制实现
MIUI的实现机制,更多的是修改多用户在相关的代码
 5.通过动态加载(运行)的机制来实现(LBE的平行空间)
作为第三方开发者,不能ROOT,不能修改系统源码,逼的LBE用这种方式,也是难为他们了

-- 不管是平行空间还是双开助手还是其他的类似实现,都离不开Hook技术。几种Hook技术:
1.Binder Hook,DroidPlugin;
2.Handler Hook,去看看ActivityThread.mH是干啥的就知道了;
3.Native Hook。就是文件系统Hook,比如:
 open("/data/data/${pkg}/", flag) ==>open("/data/data/http://com.lbe.xxx/yy/${pkg}/", flag); LBE用的是inline hook

-- 企业空间和原本用户空间
  使用Android原生接口,实现“应用双开”,源代码可以从 https://github.com/bobohuang1985/android-utils-api 下载,具体代码位置在utils.bobo.com.boboutils.MultiApp包内,

-- APK多开原理- https://segmentfault.com/a/1190000005139577
 packageName 在代码中使用,通常在 AndroidManifest.xml中指定,applicationId 则只是用于程序的标识,通常在 build.gradle 中指定。这样有一个好处,假如你想发布一个免费版,一个收费版,你只需要在 build.gradle 中把applicationId 后面加上免费版的后缀包名(如".free"),收费版加上收费版的后缀即可,而不需要修改你的其他代码。 
  你可以通过使用以下的 Gradle DSL 方法,为不同的flavors和构建类型修改你的应用程序的 ApplicationId:
 productFlavors {
        pro {
            applicationId = "com.example.my.pkg.pro"
        }
        free {
            applicationId = "com.example.my.pkg.free"
        }
    }
    buildTypes {
        debug {
            applicationIdSuffix ".debug"
        }
    }
 改掉主配置文件中的包名和smali文件相关的包名后,虽然可以安装,但是并不能运行,最直接的一点就是改掉了主配置文件的包名,那些像百度地图,极光推送,环信聊天等第三方SDK就都不能用了,因为这些都是在开发者中心注册ID的,和包名是绑定的,所以用ApkTool工具反编译的APK并不是双开实现的工具。

-- 三星MY KNOX不仅仅是一个软件这么简单,它具有两大特性。首先就是安全沙盒机制,My Knox功能可以为需要安全保护的APP应用(如:微信、支付宝等)和信息(如:通讯录、相册等)提供一个独立的、与外界隔离的空间,从使用场景来看就是应用双开;其次是Root操作熔断机制,如果有人企图非法获取系统管理权,一旦触发Root操作,手机主板上的Knox“保险丝”会物理熔断,且不可逆转。

> DroidBox安卓沙盒
Android 双开沙箱 VirtualApp 源码分析(三)App 启动- http://blog.csdn.net/ganyao939543405/article/details/76177392
针对Android沙盒的“中间APP攻击”- http://blog.csdn.net/qq_27446553/article/details/56674931

App沙盒/双开技术是现在仍处于发育时期的未成熟技术,它的目标是使一个未安装的APK直接运行在一个容器当中,与外部环境部分隔离(或完全隔离),处于沙盒之中的App无法觉察到自己的环境与普通运行时的环境有所不同,并能够与沙盒之中的其它App进行交互。概念上来讲,它类似Docker。
  
-- App沙盒的难点主要有:
 1.欺骗 App,让其认为自己运行在正常的环境中。
 2.完整得驱动四大组件。
 3.让组件的进程分布与实际完全一致。
 4.随时与处在沙盒外部的容器和宿主(Host)进行同步的远程通信。
 5.兼容不同系统API版本的设备。
 6.SD卡隔离(Native IO Redirect)。

App应用双开技术,Android沙盒相关推荐

  1. android 沙盒_我们分别测试了2020年排名前五的最佳android电视盒

    android 沙盒 So once you have decided you want an android TV box. Now, all you have to do is pick from ...

  2. android盒子开发招聘,[原创]Android沙盒开发之系统libc库定制修改

    [原创]Android沙盒开发之系统libc库定制修改 2013-7-29 22:29 11525 [原创]Android沙盒开发之系统libc库定制修改 2013-7-29 22:29 11525 ...

  3. android 沙盒存储,Android Q存储机制-沙盒机制

    Android Q文件存储机制修改成了沙盒模式 应用只能访问自己沙盒下的文件和公共媒体文件 存储(也就是write)私有目录和公共媒体文件都不需要WRITE_EXTERNAL_STORAGE权限 读取 ...

  4. android 沙盒 ios,iOS中的沙盒机制

    1.应用沙盒结构分析: 应用程序包:(图中的Layer)包含了所有的资源文件和可执行文件 Documents: 保存应用运行时生成的需要出持久化的数据,iTunes同步设备会备份该目录.例如,游戏应用 ...

  5. 恶意软件的沙盒规避技术

    恶意软件的沙盒规避技术 欢迎访问本人博客: https://www.xuanworld.top/ 摘要 ​ 恶意软件的沙盒技术目前广泛应用于网络安全的公司以及各类软件市场,沙盒可以探测到软件的各种行为 ...

  6. [App Store Connect帮助]二、 添加、编辑和删除用户(5)创建一个沙盒测试员帐户...

    如果您的 App 使用了 App 内购买项目或 Apple Pay,您可以在 App Store Connect 中创建沙盒测试员帐户,以便您向用户提供该 App 前,可以使用该帐户在测试环境中运行您 ...

  7. 沙盒隔离技术的本质与背景

    一.沙盒隔离技术的本质 沙盒隔离技术的本质是对应用进程进行隔离,控制应用进程对本机系统资源的调用,比如:磁盘.网络.涉密文件等. 沙盒进程隔离的安全策略如下:1)区别涉密进程与非涉密进程:2)能直接上 ...

  8. Mac 开发(一) 苹果沙盒机制sandbox 简介

    文章目录 Mac 开发(一) 苹果沙盒机制sandbox简介 1 Mac sandbox简介 1.1 关于应用程序沙盒 1.2 为啥要用沙盒机制 2 沙盒原理 3 xcode中开启沙盒权限 3.1 X ...

  9. Mac 开发(一) 苹果沙盒机制sandbox简介

    Mac 开发(一) 苹果沙盒机制sandbox简介 孔雨露正在上传-重新上传取消 2020年06月07日 16:41 ·  阅读 7332 @[TOC] Mac 开发(一) 苹果沙盒机制sandbox ...

最新文章

  1. 2018-3-19 损失函数与适应度函数,稳定选择与分裂选择
  2. 超越PVT、Swin,南大开源高效Transformer:ResT​
  3. python决策树算法代码_Python3.0 实现决策树算法的流程
  4. php 中空数据 用大括号,php语法设计 数组为什么不采用普遍的{}大括号呢? 其它的 编程语言 在数组初始值 都是 用大括号{} 包含的。...
  5. Python 中list.sort和sorted以及bisect
  6. LAMP 环境搭建实例
  7. Hyper-V 替换 vmwp
  8. 公有云关闭潮或显端倪,企业如何选择?
  9. 【机器学习】Softmax Regression算法原理与java实现
  10. 软件生成问候图片_设计师注意啦!欧美风双色图片一键生成的软件来啦!
  11. hen Content must be served over https解决方案
  12. 人物连连看 python课程设计 pygame学习
  13. Django新增数据
  14. 资格考试_第二章_证券投资基金概述
  15. [WinAPI]通过Windows系统CLSID(GUID)打开系统指定窗口,及部分[上帝模式]命令
  16. 用料扎实的全模组电源,还有十年换新支持,安钛克HCG 850体验
  17. 苹果11怎么录屏_苹果11突然黑屏是怎么回事?
  18. 基于JAVA江西婺源旅游文化推广系统计算机毕业设计源码+数据库+lw文档+系统+部署
  19. matlab 数值计算课 二阶微分方程-龙格库塔方法 ODE45
  20. 使用Spreadsheet Compare工具对比Excel文件差异

热门文章

  1. 让小家变得温馨的小诀窍
  2. davinci 达芬奇BI工具
  3. 微阵列数据分析(Microarray data analysis)
  4. 阵列c语言,C语言结构体阵列的定义
  5. 【硬件】常见芯片封装技术
  6. 移动网络的切换、重选和重定向
  7. 虚拟仿真 人人开发(二)
  8. RISC-V详细介绍
  9. 国开计算机应用基础中考答案,国开电大 计算机应用基础(本) 形考一答案
  10. kankan转载:Android实现3d翻转效果