Mam 2 aplikacje.
Gdybym skorzystać z usługi, mogę ustawić uprawnienia tak tylko app1
może wysłać zamiar app2
:
Zdefiniuj uprawnienia w app2
(protection level: signature
) i korzystać z tego uprawnienia w app1
.
Usługa w app2
jest chroniona tym prawem.
W ten sposób tylko app1
może wysłać zamiar usługi na app2
, i żadna inna aplikacja (chyba mój podpis jest wyciekły) może wysłać zamiar usługi na app2
.Ograniczanie odbiornika nadawczego systemu Android z konkretnej aplikacji
Czy mogę zrobić to samo z odbiornikiem Broadcast?
- app1: sendBroadcast (intent, pozwolenie)
- app2: zdefiniować uprawnienia, należy to zgodę.
Zgodnie z moim rozumieniem korzystania z sendBroadcast (zamiar, zezwolenie), aplikacja nie musi "używać" pozwolenia. Znaczenie DOWOLNEJ aplikacji można wysłać zamiar do app2
. Te parametry uprawnień zostały sprawdzone tylko pod kątem app2
, aby uniknąć innych aplikacji, które mogłyby otrzymać takie zamiary. (Jeśli usunąć app2
i zainstalować fałszywe app2
z tego samego łańcucha zgody zdefiniowany, fałszywy app2
można dostać intencyjny app1
, który jest nieoczekiwany)
BTW Jeśli aplikacja definiować uprawnienia i używać go w sobie, ProtectionLevel (podpis) wydaje się nie mieć znaczenia. Czy to prawda?
Teraz mogę ustawić dodatkowe uprawnienia:
- app1: Zdefiniuj uprawnienia, należy to zgodę.
- app2: Odbiorca jest ograniczony tylko do tego uprawnienia.
Ponownie, jeśli ktoś usuwa app1
, instaluje fałszywe app1
z tego samego zgody, to fałszywy app1
mogą wysyłać fałszywe zamiar app2
. Co mogę zrobić, aby zapobiec otrzymywaniu fałszywych intencji przez użytkownika app2
?
Dzięki