2016-09-19 17 views
2

私のアプリケーションの1つが他のアプリケーションにコンテンツを提供する古典的なケースがあります。私は、コンテンツプロバイダが署名保護レベルの許可を使用して保護できることを知っています。しかし、私は他の方向に心配しています。コンテンツプロバイダを含むアプリがインストールされておらず、悪意のあるアプリに同じ権限のプロバイダが含まれている場合(私は権限が誤って衝突することはないが、悪意のあるアプリについて考える)私のアプリが、同じ署名を持つアプリで定義されている場合にのみ、プロバイダに照会するようにする方法を教えてください。ContentProviderの署名を確認してください

私が考えることができるもっとも近いことは、パッケージマネージャーから他のアプリを見つけて、その署名が一致することを確認することです。私の他のアプリはコンテンツプロバイダを持っているので、同じ権限を持つ別のコンテンツプロバイダを同じデバイスにインストールすることはできません。しかし、これで私はパッケージ名と権限とを結びつけています。私はよりクリーンな方法があることを望んでいる。

答えて

3

resolveContentProvider()PackageManagerに呼び出し、権限文字列を渡します。これにより、その文字列のContentProviderの詳細が表示されます。そこから、そのプロバイダのパッケージの署名をチェックして、あなたのパッケージに合っているかどうかを確認します。

関連する問題