У меня есть 2 приложения.
Если я использую службу, я могу установить разрешение, поэтому только app1
может отправить намерение на app2
:
Определить разрешение в app2
(protection level: signature
) и использоватьэто разрешение в app1
.
Службе в app2
защищено этим разрешением.
Таким образом, только app1
может отправить намерение службе в app2
, и никакое другое приложение (если толькомоя подпись просочилась) может отправить намерение на обслуживание на app2
.
Могу ли я сделать то же самое с Broadcast Receiver?
- app1: sendBroadcast (намерение, разрешение)
- app2: определить разрешение, использовать это разрешение.
Насколько я понимаю, использовать sendBroadcast (намерение,разрешение), приложению не нужно «использовать» разрешение.Это означает, что ЛЮБОЕ приложение может отправить намерение на app2
.Эти параметры разрешений проверяются только на соответствие app2
, чтобы другие приложения не получали это намерение.(Если я удаляю app2
и устанавливаю поддельный app2
с той же самой определенной строкой разрешения, поддельный app2
может получить намерение от app1
, что является неожиданным)
Кстати, если приложение определяет разрешениеи использовать его сам по себе, уровень защиты (подпись), кажется, не имеет смысла.Это правда?
Теперь я могу установить дополнительное разрешение:
- app1: определить разрешение, использовать это разрешение.
- app2: приемник ограничен только для этого разрешения.
Опять же, если удалить app1
, установить поддельное app1
с тем же разрешением, то поддельное app1
может отправить ложное намерение на app2
.Что я могу сделать, чтобы предотвратить получение app2
поддельных намерений?
Спасибо