代码之家  ›  专栏  ›  技术社区  ›  Mathias Conradt

内部存储文件的应用程序访问权限

  •  1
  • Mathias Conradt  · 技术社区  · 15 年前

    有关每个应用程序专用的内部存储的问题(尤其是使用context.mode_private存储文件时)。

    该存储实际上是如何分配给应用程序的?只是通过包名还是通过某种方式绑定到应用程序的符号键?

    假设我已经安装了应用程序1,然后用相同的名称和包名称(只是用不同的密钥签名不同)编写另一个应用程序2并安装它(应用程序2替换应用程序1),应用程序2是否可以访问/data/data/[app]/文件?

    或者,由于最初的签名键不同,我甚至不能用app2替换app1吗?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Ryan Conrad    15 年前

    我认为你不能有两个应用程序使用同一个软件包。我知道如果我在我的设备上有一个开发构建,并且我试图安装这个版本,我会得到一个错误,我必须先卸载前面的版本。

    这也与 下午 ,它卸载并按包名称列出应用程序。

    所以我的答案是,它根据包名称来分配它,但是不能有两个应用程序具有相同的包名称。

        2
  •  1
  •   CommonsWare    15 年前

    只是根据包的名称或者某种方式 绑定到应用程序的签名密钥?

    两者都不。

    安装后,每个应用程序都会分配一个Linux用户ID。其所有文件都由该用户所有。它的进程以该用户的身份运行。 MODE_PRIVATE 文件设置为拒绝其他用户的所有文件。

    或者我甚至不能替换 由于标志不同,APP1和APP2 钥匙在第一位?

    对的。