2011-11-17 2 views
13

私は書いています1)AccountManagerにユーザー名とパスワードを格納するアプリケーション、2)自分のサーバーにログインするためにこれらの資格情報にアクセスする別々のバックグラウンドサービスアプリケーションなど。サービス(アプリ2)からAccountManager.getPassword(アカウント)を呼び出して、他のアプリ(アプリ1)を使用してAccountManagerに追加したタイプのアカウントにアクセスできます。他のアプリからAndroid AccountManagerのパスワードを読み取らないようにするにはどうすればよいですか?

これにより、私は、1)アカウント管理アクセスを持つマニフェストのフィールドを含む1)と、2)特定のタイプのすべてのアカウントを繰り返して、それらに対してmAccountManger.getPassword(account)を呼び出します。インストール中に、アプリケーションが使用を要求するすべてのアクセス許可がダイアログに表示されることはわかっていますが、疑わしいアクセス権を要求するため、普通のユーザーがアプリケーションを拒否するとは思えません。

getPasswordがアカウントタイプで呼び出されないようにする方法はありますか?自分自身に多くのアカウント権限を与えたアプリからAccountManagerのアカウントを保護する方法はありますか?

答えて

9

アカウントデータの保護は、要求を行っているプロセスのLinuxユーザーID(UID)に基づいています。それぞれのアカウントは(UIDを持つ)アカウントオーセンティケータに関連付けられており、getPassword(または他のいくつかのメソッド)を呼び出すプロセスは、オーセンティケータと同じUIDを持つ必要があります。