我正在写 1) 一个在 AccountManager 中存储用户名和密码的应用程序,以及 2) 一个单独的后台服务应用程序,它访问这些凭据以登录到我的服务器等。玩这个,我发现我能够从服务(应用程序 2)调用 AccountManager.getPassword(account) 以访问我使用其他应用程序(应用程序 1)添加到 AccountManager 的帐户类型。
因此,我开始想知道是什么阻止了任意恶意应用程序从 1)包括清单中的字段以具有帐户管理访问权限,然后 2)从迭代特定类型的所有帐户并调用 mAccountManger.getPassword (帐户)在他们身上。我知道在安装过程中,会弹出一个对话框,其中包含应用程序请求使用的所有权限,但我认为我们不能指望普通用户拒绝应用程序,因为它请求可疑权限。
有没有办法防止 getPassword 在帐户类型上被调用?有没有办法保护 AccountManager 中的帐户免受赋予自己大量帐户权限的应用程序的影响?