2010-09-23 4 views
5

Si prueba el Contact Manager que viene con Android 2.2 Froyo, le dará acceso a todos los contactos en la base de datos sqlite a través de Contact ContentProvider. Pero si se escribe una aplicación que no es com.android.contacts sólo se consigue el acceso a la tabla restringida a causa de este código aquí:¿Por qué se censuran algunos contactos de las aplicaciones en Android?

http://www.google.com/codesearch/p?hl=en#cbQwy62oRIQ/res/values/unrestricted_packages.xml&q=unrestricted_packages&sa=N&cd=1&ct=rc

Si intenta ninguna de las muestras como ContactManager o cualquier aplicación en el mercado, no tendrá acceso a la lista completa de contactos, solo tendrá acceso a la vista restringida.

La tabla restringida parece contener solo contactos con números de teléfono y excluye algunos contactos de Facebook. No encuentro ninguna documentación sobre por qué un contacto estaría restringido en algún lugar de los documentos del desarrollador.

¿Hay alguna forma de evitar esto además de enraizar y abrir el sqlite db manualmente o utilizando un firmware personalizado?

Respuesta

1

¿Hay alguna forma de evitar esto además de enraizar y abrir el sqlite db manualmente o con un firmware personalizado?

0

Seguridad.

Sería demasiado fácil para una aplicación deshonesta hacer algo malicioso (como enviarse a todos sus contactos).

+0

no. Ese es el propósito de las entradas de manifiesto de privilegios de la aplicación. Esto parece ser una forma para que los fabricantes de firmware eludan el sistema de privilegios de la aplicación para evitar que las aplicaciones accedan al contacto db. – radiofrequency

0

¿Especificó android.permission.READ_CONTACTS en su manifiesto?

¿Qué te hace creer que este subconjunto de contactos de Facebook publica su número de teléfono en su información?

+0

sí, especifico esto en mi aplicación. Supongo que esto no es una cuestión más de información que los fabricantes de firmware pueden impedir el acceso a los contactos disponibles a través del proveedor de contacto. Los usuarios de la aplicación de mi directorio telefónico a menudo se quejan de los contactos que no están disponibles en la aplicación frente a la aplicación predeterminada de la guía telefónica. – radiofrequency

+0

@radiofrequency Esto es más que un poco viejo, pero pareces tenerlo al revés. No se trata de restringir el acceso que, de otro modo, no estaría restringido, sino de restringir el acceso que, de lo contrario, estaría restringido. Por lo que puedo decir, el estado predeterminado es para los datos (del usuario) marcados como restringidos a ser (parcialmente) inaccesibles a menos que se otorgue un permiso explícito en ese archivo XML de recursos del sistema. Eso permite a los desarrolladores de firmware otorgar acceso irrestricto a datos confidenciales en paquetes en los que saben que pueden confiar (que podrían ser objeto de abuso, pero esa es otra cuestión). – JAB

Cuestiones relacionadas