为什么在访问其他应用程序的帐户信息时,“调用者uid xxxxx与验证者的uid不同”?

时间:2012-03-08 04:55:34

标签: android accountmanager

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

但是当我运行B时,我得到“java.lang.SecurityException:caller uid xxxx与authenticator的uid不同”。

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

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

1 个答案:

答案 0 :(得分:3)

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

这是一项重要的安全预防措施。如果它没有这个任何应用程序可以阅读任何人的elses用户数据。这可能包含感性信息。

来源:阅读代码