1

我正在开发一个允许插件通过 OSGi(使用 Apache Felix)运行的 Android 应用程序。但是,我想在每个插件的基础上强制执行某些安全方面。即允许哪个插件访问文件系统。另外,我想总体上防止反射。

到目前为止,我发现的所有教程都提到了结合使用 OSGi 安全性和加载标准 Java SecurityManager。但是,后者在 Android 上不存在,因此使整个方法完全无法使用。我不想使用 Bytecode Manipulation 来防止各种插件中发生事情,因为这既麻烦又我总是会错过一些东西。

那么,有没有人知道,我如何才能在 Android 上获得类似于标准 Java 安全的安全架构?最重要的是,如何防止使用反射?

而且,有没有办法阻止 I/O 访问,即基于每个线程?

4

2 回答 2

1

除非您愿意修改核心操作系统,否则您不能。Android 标准权限可以限制对文件和 API 的访问,但没有什么可以阻止反射。操作系统使用它,所以如果你完全阻止它,事情就会崩溃。通过 UID 阻塞,进程可能是可行的,但您必须修改核心 Java API 的实现(在 libcore 中)。

于 2012-11-30T02:27:47.430 回答
1

沙盒中的沙盒!出于性能原因,这听起来不是一个特别有吸引力的想法,但据我所知,仍然可以设置 SecurityManager。因此,您可以设置自己的安全管理器并随时检查检查。然而,这个讨论表明,Android 团队对基础库的质量不是很有信心。(我可能会删除所有检查以获得一些性能,但我现在觉得进程内安全的整个想法是一个简单、清晰和错误的解决方案......)

于 2012-11-30T07:38:48.943 回答