是否有可能为文件提供特定于应用程序的安全性?我希望文件只能由所需的应用程序访问,而不能由其他应用程序访问。
发布于 2011-02-03 16:48:07
我假设您有存储在SD卡上的文件,因为存储在内部文件系统中的文件在默认情况下是受保护的。
保护您的数据不受其他应用程序影响的唯一方法是使用某种加密。
Android为每个应用程序提供自己的用户id,然后标准的Linux文件系统访问权限负责保护存储在内部文件系统上的数据。你不需要做任何事情就可以利用这个特性,因为它是Android中整个安全模型的核心。
但对于外部存储,如SD卡,Android正在使用FAT文件系统,以使卡与Windows兼容。这是一个很好的想法,但由于FAT文件系统缺乏任何访问权限功能,所有应用程序都可以使用存储在SD卡上的所有内容。(需要访问SD卡的应用程序需要请求许可才能执行此操作。)
(这是Android的一个巨大的完整性问题。敏感信息不应该存储在SD卡上,但所有拍摄的照片都存储在那里。一个可以访问SD卡和互联网的应用程序可以在你不知情的情况下轻松地将你所有的照片上传到服务器上。)
发布于 2011-02-03 13:46:32
您可以通过在AndroidManifest.xml文件中声明来使用权限。如Android开发者权限指南中所述:。
例如,想要控制谁可以启动其活动之一的应用程序可以声明此操作的权限,如下所示:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.me.app.myapp" >
<permission android:name="com.me.app.myapp.permission.DEADLY_ACTIVITY"
android:label="@string/permlab_deadlyActivity"
android:description="@string/permdesc_deadlyActivity"
android:permissionGroup="android.permission-group.COST_MONEY"
android:protectionLevel="dangerous" />
...
</manifest>你能检查一下webpage吗?如果你不清楚我们可以在这里讨论,我必须在给出确切的答案之前再看一遍。
编辑:也在so中签入此post。
发布于 2012-07-18 06:10:45
是。一个简单的解决方案是在安装应用程序时使用/dev/urandom生成随机密钥,将密钥存储在本地存储(而不是SD卡上),然后使用此密钥加密您存储在SD卡上的文件。这将阻止其他应用程序读取这些文件。
当然,这种方法的一个后果是,用户将无法移除SD卡,将其放入其PC中,并将这些文件复制到其PC上。
https://stackoverflow.com/questions/4882872
复制相似问题