6 votos

¿Las aplicaciones de "Fuentes desconocidas" están restringidas por los permisos?

Sé que las aplicaciones de Google Play no pueden hacer nada que no esté detallado en su AndroidManifest.xml y será bloqueado para hacerlo. Quiero saber si las aplicaciones que no son de Google Play están bloqueadas con la misma medida de seguridad.

¿Me dirá Android qué permisos requieren antes de la instalación y bloqueará las funciones que utilicen permisos no anotados en el manifiesto de las apps que no son de Google Play? Porque Google dice:

En el caso de que una aplicación intente utilizar una función protegida que no haya sido declarada en el manifiesto de la aplicación, el fallo en el permiso normalmente dará lugar a una excepción de seguridad que se devolverá a la aplicación. Las comprobaciones de permisos de las APIs protegidas se aplican al nivel más bajo posible para evitar que se eludan. En la Figura 2 se muestra un ejemplo de la mensajería de usuario cuando se instala una aplicación que solicita acceso a las APIs protegidas.

¿Se aplica esto a las aplicaciones que no son de Google Play?

7voto

Andrew T. Puntos 2107

¿Me dirá Android qué permisos requiere antes de la instalación?

En general, sí. En la mayoría de los dispositivos Android (si no todos), hay una aplicación del sistema llamada "Instalador de paquetes" que se encarga de la instalación/actualización de una aplicación. Cuando se instala un archivo APK de origen desconocido, esta aplicación se ejecuta y muestra todos los permisos que la aplicación solicita, que se ven así:

Package installer on KitKat

Instalador de paquetes en KitKat

¿Bloqueará Android las funciones que utilicen permisos no anotados en el manifiesto de las aplicaciones que no son de Google Play?

Durante la instalación, Android no comprueba/prueba si una función requiere un permiso específico para ejecutarse. En otras palabras, el usuario puede instalar la aplicación. Sin embargo, la aplicación lanzará SecurityException (que puede bloquearse/comportarse de forma impredecible/no hacer nada, depende de cómo se maneje) al ejecutar la función que necesita un permiso, pero que no está declarada en el archivo de manifiesto. Esto se aplica a todas las aplicaciones, independientemente de dónde estén instaladas .

Ejemplo : hacer una operación de red sin declarar <uses-permission android:name="android.permission.INTERNET" /> hará que la aplicación se bloquee con un seguimiento de la pila:

E/AndroidRuntime(18698): Caused by: java.lang.SecurityException: Permission denied (missing INTERNET permission?)

.

4voto

Jason D. Puntos 46

Una aplicación tiene que declarar todos sus requisitos de permisos, porque se le conceden en la instalación.

Consulte la sección "Uso de permisos" aquí: http://developer.Android.com/guide/topics/security/permissions.html

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X