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?
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?
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