保护文件不被应用程序本身访问

时间:2012-11-15 21:20:09

标签: android

我正在开发一个Android应用程序,在那里我下载pdf文件。 所以我创建了一个名为NameProject的文件,我将所有下载的pdf放入其中。我可以通过我的应用程序以及文件管理器等其他应用程序访问此文件。 android文件系统是开放的,所以我需要保护下载的文件不被应用程序本身访问。

我能这样做吗?如果是,任何想法都将受到赞赏。

由于

2 个答案:

答案 0 :(得分:1)

这里不是Android专家。因此,我不知道如何在不同的应用程序之间保护文件。但无论如何,如果该设备已植根,即使该设备无关紧要。

虽然这不是我宽恕或实践的东西,但你唯一的希望就是默默无闻的安全。我的意思是,当您将这些文件放到应用程序文件系统空间时,使用加密模式并加密该文件。确保在应用程序中有解密算法。在这里,我假设这些将是只读文件,因为你提到了PDF。如果没有,即最终用户是否能够编辑和保存它们,您还需要在应用程序中使用加密功能。

我认为你掌握了我的目标。

  1. 最终用户启动应用并选择要显示的文件
  2. 应用程序将该文件解密为临时名称
  3. 一个。 (可选)用户编辑并保存文件
  4. 湾(可选)应用程序加密文件并将其保存为原始名称
  5. 应用程序删除临时的未加密文件
  6. 根据您在应用程序之外无法访问概念的重要性,您可能希望将此逻辑包装到另一组条件中并对其进行测量。

    但毕竟,一个坚定的头脑能够而且最终会找到一种方法来破解它们。特别是如果您将应用程序发布到野外,即互联网。在受控制的企业环境部署中,您有更好的机会将其保持在较长时间内,包括公司政策等。但是,最终,这是徒劳的努力。它会给你买一些时间。多少时间,是唯一的问题。

    希望这有帮助

答案 1 :(得分:1)

将文件下载到应用程序内部存储目录(/ data / data / packagename ),如果没有root权限,则无法访问该目录。但是只保留必要的文件,因为手机内存很小。

File appdir = context.getDir("mydir", Context.MODE_PRIVATE);

File fileWithinAppDir = new File(appdir, "appfile");