我想知道共享首选项的安全性.

即使共享引用是在模式_PRIV(0)下创建的,也可以访问它们吗

谢谢

推荐答案

共享首选项作为文件存储在设备的文件系统中.默认情况下,它们存储在应用程序的数据目录中,文件系统权限设置仅允许特定应用程序运行时使用的UID访问它们.因此,它们是私有的,因为Linux文件权限限制对它们的访问,就像在任何Linux/Unix系统上一样.

任何具有根级别设备访问权限的人都可以看到它们,因为根可以访问文件系统上的所有内容.此外,任何与创建应用程序使用相同UID运行的应用程序都可以访问它们(这通常不会完成,您需要采取特定的操作以使两个应用程序使用相同的UID运行,因此这可能不是一个大问题).最后,如果有人能够在不使用已安装的Android操作系统的情况下安装设备的文件系统,他们也可以绕过限制访问的权限.

如果您担心这样访问您的首选项(或您的应用程序编写的任何数据),那么您将需要对其进行加密.如果你那么担心他们,你需要弄清楚你所看到的风险水平到底需要多少保护.2011年12月刚刚出版的"Application Security for the Android Platform"中对此有非常广泛的讨论(免责声明:我是这本书的作者).

Android相关问答推荐

时区日光节约改变问题

如何使用喷气背包压缩让Animated Image Vector每次动画化一条路径?

更新画布上的绘图以具有水平填充

在Jetpack Compose中,material 3 Textfield上的底部边框 colored颜色 是如何更改的?

Android和Rust,OpenSSL交叉编译在ARM V7上链接失败

房间@嵌入式VS一对一关系

在Android 14/SDK 34中使用RegisterReceiver的正确方式是什么?

在androidStudio中,如何使用带有ResolutionStrategy的ResolutionSelector而不是setTargetResolve()?

错误:参数的类型必须是用@Entity注释的类或其集合/array. java.lang.String tocd);

kotlin中&&和and的区别

Andorid Studio编译器如何自动为变量editText生成mutableStateOf("")的方法名?

Android Drawable文件夹中的图像显示模糊

Android Jetpack Compose 电视焦点恢复

如何像 XML 一样在 Compose Android Studio 中折叠/展开小部件代码区域/区域

LazyColumn 项目,隐式接收器无法在此上下文中调用单元

Horizo​​ntalPager 的可组合物中的 LaunchedEffect 问题

如何使用文件提供程序将视频从一个应用程序共享到另一个应用程序?

如何在 Jetpack Compose 中擦除画布时变得透明,现在我得到白色?

Android 应用程序在启动时自动启动

Jetpack Compose 中的按钮上的文本未更新