分享一个安卓简单易用的开源多开SDK

646 阅读1分钟

项目链接
传统的多开方案依赖于java动态代理、inline hook、代理转发等手段保证虚拟进程的正常运行。如果三方app同样使用了java动态代理,此时会存在代理相互覆盖的问题,该情况会导致三方app运行时的逻辑发生变化。逻辑‘被’发生变化是极大多数厂家不愿意看到的,可能在一定程度上影响其收益。所以从某种意义上来讲,传统方案并不能定义为容器。

MultiApp技术选型之初就抛弃了动态代理,service、receiver、provider等binder组件也均由MultiApp engine自行维护。很遗憾的是Activity组件必须通过代理维护其生命周期,但是我们使用了更底层的机制确保不会影响app的运行时逻辑。另外,在native hook技术上,我们基于seccomp/bpf自研了更为有效的svc hook方案,并在某些场景下启用,综合来看更接近沙盒容器的概念