2つのアプリケーションがあります。
サービスを使用する場合、許可を設定して、app1
インテントを にのみ送信できるようにすることができますapp2
: ( ) で
許可を定義し、 でその許可を使用します。
のサービスはその許可によって保護されています。
このように、 のみが のサービスにインテントを送信でき、他のアプリは (私の署名が漏洩しない限り) のサービスにインテントを送信できません。app2
protection level: signature
app1
app2
app1
app2
app2
ブロードキャスト レシーバーでも同じことができますか?
- app1: sendBroadcast(意図、許可)
- app2: パーミッションを定義し、そのパーミッションを使用します。
sendBroadcast(intent, permission) の使用に関する私の理解では、アプリケーションは許可を「使用」する必要はありません。つまり、どのアプリケーションでもインテントを に送信できますapp2
。app2
これらの許可パラメーターは、他のアプリケーションがこのインテントを受け取らないようにするため、に対してのみチェック
されました。( を削除し、定義された同じパーミッション文字列でapp2
fake をインストールすると、 fakeは からインテントを取得できますが、これは予想外です)app2
app2
app1
ところで、アプリケーションがパーミッションを定義してそれ自体を使用する場合、protectionLevel(signature) は意味がないようです。これは本当ですか?
これで、追加のアクセス許可を設定できます。
- app1: パーミッションを定義し、そのパーミッションを使用します。
- app2: 受信者はその権限のみに制限されます。
繰り返しますが、 を削除し、まったく同じ権限でapp1
fake をインストールすると、 fakeは に偽のインテントを送信できます。偽のインテントを受信しないようにするにはどうすればよいですか?app1
app1
app2
app2
ありがとう