我正在开发一个能够在需要时从专用服务器下载第三方apk(即:外部apk)的应用程序(即: base apk)。当这种情况发生时,基础应用程序(基础apk)开始实例化每个先前下载的apk (即:外部apk),其方式类似于详细阐述的here。除了那些第三方apks被设计为利用自身的本地资源(即:res/布局/布局文件)的情况外,整个过程都很顺利。在这种情况下,第三方apk用于访问这些本地资源的代码(例如,通过尝试如下所示的膨胀布局)无法抛出NULLPointerException(无法定位每个资源)。
我想知道这是不是一个可行的方案。如果是(很可能是我猜的),有没有什么直接的解决方案/变通办法,目前我对此不屑一顾?
LayoutInflater.from(this.getContext()).inflate(mypackage.external.apk.R.layout_to_be_loaded, this);谢谢!
发布于 2012-03-10 08:35:38
当发生这种情况时,基础应用程序(基础apk)开始实例化每个先前下载的apk (即:外部apk),其方式类似于这里详述的方式。
这是不安全的,提供了代码注入攻击的可能性。我不会用一根十英尺长的杆子去碰那项技术。
有没有什么直接的解决方案/变通办法,我目前对此不屑一顾?
不怎么有意思。您正在从外部未安装的APK中提取字节码,并在您的进程中执行它。您无法以某种方式将这些资源提取出来,并将它们与您的资源混合在一起。
https://stackoverflow.com/questions/9642310
复制相似问题