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