4

我编写了一个应用程序 A,它使用 AccountManager 进行登录处理。然后,我编写了另一个应用程序 B,它使用 A 的 AccountManager 帐户数据。

但是当我运行 B 时,我得到“java.lang.SecurityException: caller uid xxxx is different than the authenticator's uid”。

用 A 的密钥库文件对 B 签名解决了这个问题。

但是,我仍然想知道为什么会发生这种情况以及是否有替代解决方案。

4

1 回答 1

3

此消息具有高度误导性。如果您与具有帐户验证器的应用程序具有相同的 uid 或相同的签名,则您只能访问其他帐户信息。没有其他解决方案。他们会很好地改变信息。

这是一项重要的安全预防措施。如果没有这个,任何应用程序都可以读取其他任何人的用户数据。这可能包含有意义的信息。

来源:阅读代码

于 2012-07-28T04:16:09.897 回答