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":
- Negación de permisos: Acceso al servicio ComponentInfo {...} desde pid = -1
- Falta el permiso de Bluetooth, pero mi aplicación no lo usa
- Cómo obtener permisos de manifiesto de cualquier aplicación Android instalada
- ¿Por qué mi aplicación solicita permiso de identificación de teléfono?
- Facebook, setReadPermissions y setPublishPermissions
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
- ¿Hay alguna manera de pedir permiso mediante programación?
- Protege y desprotege el archivo para evitar la eliminación accidental en Android mediante aplicaciones de limpieza con errores
- ¿Por qué se rechazan estos permisos?
- Google Play detecta nuevos permisos después de usar Android Studio
- Android Permiso, required = "false", falla
- Privilegios elevados en la aplicación para Android
- ¿Pueden las aplicaciones de Android solicitar permisos adicionales en tiempo de ejecución?
- ¿Puedo incluir el nombre del permiso en la cadena res
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 pudo encontrar el método classpath () para los argumentos
- ListView de Android con casilla de verificación Eliminar / obtener ID de fila