Tengo 2 aplicaciones.
Si utilizo el servicio, puedo ajustar el permiso por lo que sólo puede enviar app1
intención de app2
:
Definir el permiso por app2
(protection level: signature
), y usar ese permiso en app1
.
El servicio en app2
está protegido por ese permiso.
De esta manera, sólo app1
puede enviar una intención de un servicio en app2
, y ninguna otra aplicación (a menos que mi firma es filtrado) puede enviar la intención de servicio en app2
.Restricción del receptor de difusión de Android desde la aplicación específica
¿Puedo hacer lo mismo con Broadcast Receiver?
- app1: sendBroadcast (intención, permiso)
- app2: definir el permiso, utilice ese permiso.
A mi entender para usar sendBroadcast (intento, permiso), la aplicación no necesita "usar" el permiso. Significado CUALQUIER aplicación puede enviar intento a app2
. Esos parámetros de permiso solo se verificaron contra app2
, para evitar que otras aplicaciones reciban esta intención. (Si quito app2
, e instalar falsos app2
con la misma serie de permiso definido, falsa app2
puede conseguir intención de app1
, que es inesperado)
Por cierto, si la aplicación definir el permiso y utilizarlo en sí, el ProtectionLevel (firma) parece no tener ningún significado. ¿Es esto cierto?
Ahora, puedo ajustar el permiso adicional:
- app1: Definir el permiso, utilice ese permiso.
- aplicación2: Receptor restringido solo para ese permiso.
De nuevo, si se quita app1
, instala falsos app1
con el mismo permiso, falsa app1
puede enviar la intención falsa para app2
. ¿Qué puedo hacer para evitar que app2
reciba un intento falso?
Gracias
El la etiqueta también puede definir qué permisos deben tener los organismos de radiodifusión, consulte http://developer.android.com/guide/topics/manifest/receiver-element.html#prmsn –