Respecto a los permisos de Android y al nivel de protección de firmas

Soy nuevo en Android y tengo una pregunta sobre el nivel de protección "Firma" para los permisos en AndroidManifest.xml.

El documento de referencia de Android indica acerca del nivel de protección "Firma":

Un permiso que el sistema otorga sólo si la aplicación solicitante se firma con el mismo certificado que la aplicación que declaró el permiso. Si los certificados coinciden, el sistema concede automáticamente el permiso sin notificar al usuario o solicitar la aprobación explícita del usuario.

Esto implica que los permisos que tienen nivel de protección "Firma" no están disponibles para su uso por la aplicación normal y sólo se puede utilizar Android Dev Team.

Lo que me pregunto es que cuántas aplicaciones en Android Market o en otros sitios pueden tener estos permisos? Al igual que una aplicación que se utiliza para grabar llamadas tiene android.permission.DEVICE_POWER además de otros permisos. ¿El sistema Android realmente concede este permiso a esta aplicación durante la instalación?

Cuando traté de usar el permiso "READ_INPUT_STATE" (nuevo en 2.2) Tengo el siguiente error en LogCat:

06-28 09: 28: 34.943: WARN / PackageManager (60): No otorga permiso android.permission.READ_INPUT_STATE para empaquetar com.example.wheredoyoulive (protectionLevel = 2 flags = 0x8444)

Lo mismo es cierto para los permisos con nivel de protección "SignatureOrSystem". Existe una aplicación de llamada que tiene permiso CALL_PRIVILEGED además de otros permisos.

Por favor, ayúdame y aclare mis dudas.

Saludos

Abhishek

Creo que el propósito de la "Firma" nivel de permiso es para dos aplicaciones por el mismo desarrollador para ser capaz de compartir datos sin problemas sin molestar al usuario. El permiso READ_INPUT_STATE no está destinado a ser utilizado en aplicaciones:

Permite que una aplicación recupere el estado actual de las teclas y los conmutadores. Esto es sólo para uso del sistema.

Ver http://developer.android.com/reference/android/Manifest.permission.html#READ_INPUT_STATE

Facebook casa utiliza esto,

Una vez que lo instales te darás cuenta de que no pide NINGUNA autorización, sino que requiere explícitamente que la aplicación facebook esté instalada, para que el sistema pueda otorgarle los permisos necesarios por proxy de la aplicación de Facebook.

Por lo general, lo que sucede es la aplicación de Facebook con las instalaciones de publicidad para otras aplicaciones para leer su estado y el feed de noticias, normalmente estas aplicaciones tendrían que solicitar explícitamente permiso para usarlos si están firmados bajo un certificado diferente o clave privada.

  • No se puede resolver Manifest.permission.ACCESS_FINE_LOCATION
  • Permiso para leer datos de la tarjeta SD
  • Permiso denegado al escribir en sdCard
  • ¿Cómo obtener la configuración del permiso de aplicación en android?
  • ¿Es posible eliminar permisos de una aplicación de Android?
  • Permisos de archivo en Android
  • StartBluetoothSco () lanza la excepción de seguridad (BROADCAST_STICKY) en ICS
  • Determinar la lista de permisos utilizados por una aplicación instalada en Android
  • Android M permiso de la prueba READ_PHONE_STATE (permisos peligrosos)
  • ¿Puedo activar el modo de desarrollo para un usuario que no sea el propietario en una tableta Android?
  • Permisos de Android M con notificaciones de parsemisión
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.