Nota : OP ya sabe la respuesta, pero la siguiente información es para aquellas almas que puedan tener problemas con el mismo problema.
¡Decepción!
CM11 en OnePlus One (ya sea la actualización 44S o 05Q) no tiene ninguna disposición para obtener los contactos y registros de llamadas obtener una copia de seguridad y restaurar utilizando ADB.
Así que, lamentablemente, la respuesta es sencilla: tus contactos y registros de llamadas no fueron respaldados por ADB porque el/los desarrollador/es de CM11 no lo permitieron, y por lo tanto, debes buscar otras formas de restaurarlos ( pista : Sincronización de contactos de Google ).
También, si importa:
/data/data/com.android.providers.telephony/databases
es donde se encuentra la base de datos de SMS/MMS
/data/data/com.android.providers.contacts/databases/
es donde verás los contactos y los registros de llamadas
Ahora puedes dejar de leer si estás saciado con la respuesta, y te recomiendo que te pongas manos a la obra en la búsqueda de algunos métodos de recuperación para recuperar el acceso a los contactos y registros de llamadas.
Sin embargo, algunas almas quieren una razón para un evento sea cual sea, así que aquí vamos con una de esas razones.
¿Por qué se hizo una copia de seguridad de los SMS/MMS y no de los contactos?
¿Por qué se hace una copia de seguridad del contenido privado, como los SMS/MMS, pero no de los contactos?
Hay que tener en cuenta que desde el lanzamiento de Jelly Bean este no ha sido un comportamiento común exhibido en Android Open Source Code (AOSP) y tampoco por la mayoría de las ROMs de stock para permitir el respaldo de dicho contenido privado por ADB, es decir, tanto Proveedor de telefonía (tiene una base de datos de SMS/MMS) y Contactos Proveedor (tiene Contactos y Registros de llamadas) suelen ser desarrollados para no participar en la infraestructura de backup y restauración del sistema Android. Sin embargo, CM11 tiene algunos cambios que permiten hacer una copia de seguridad de los SMS/MMS, pero dejan los contactos y los registros de llamadas en el suelo.
¿Cuáles son esos cambios?
Mi hallazgo es que en CM11, una bandera llamada android:allowBackup="false"
fue finalmente retirado de Proveedor de telefonía pero permaneció intacta en Contactos Proveedor . Esta bandera se introduce siempre bajo la aplicación AndroidManifest.xml
.
Google aquí tiene que decir esto con respecto a esa bandera:
android:allowBackup
Si se permite que la aplicación participe en la infraestructura de copia de seguridad y restauración. Si este atributo se establece como falso, nunca se realizará una copia de seguridad o restauración de la aplicación, incluso mediante una copia de seguridad de todo el sistema que, de otro modo, haría que todos los datos de la aplicación se guardaran a través de adb . El valor por defecto de este atributo es true.
(El énfasis es mío)
Sin embargo, por alguna razón, CM12 revirtió esta decisión y ahora, ambas aplicaciones no permiten el respaldo desde ADB en absoluto.
Si quieres ver la fuente de dichos paquetes, echa un vistazo a AndroidManifest.xml
de Proveedores de telefonía para:
- CM11 -- no hay tal bandera bajo
<application ..
- CM12 -- tiene esa bandera bajo
<application ..
Pero para Contactos Proveedor ambos CM11 y CM12 tiene la bandera intacta.
Puede verificar esta información en el AndroidManifest.xml
de los dos paquetes que tienes en tu CM11. Usted encontrará que la bandera está presente en una aplicación y no en el otro.
Nota que el comportamiento por defecto como se menciona en código fuente original de Android es no permitir la copia de seguridad en ambas aplicaciones para la versión de Kitkat.
En cuanto a la razón por la que los desarrolladores de CM11 hicieron esos cambios, aconsejaría preguntarles directamente.
Por ahora, ya está hecho.
Puede consultar mi respuesta similar mencionada aquí para la pregunta: ¿Hacer una copia de seguridad/restaurar SMS/MMS a través de ADB en un dispositivo no rooteado? .
0 votos
/data/data/com.android.providers.contacts/databases/contacts2.db
(en la tablacalls
) Lo he confirmado en mi Oneplus One con CM12. Pero No creo que ADB haya podido respaldar esa ubicación . Por favor, confirme si ADB tomó una copia de seguridad ya que tendría que revisar mi respuesta vinculada. // Ah, y parece que tienes acceso a Root, así que ¿por qué no usaste alguna buena herramienta de respaldo como Titanium Backup, o algo así? Sólo preguntaba :)0 votos
@Firelord: CM12 no ayuda aquí (ya tengo el 05Q fresco que es CM11, es bastante fácil para mí para comprobar que yo mismo). El problema es que los nombres de las carpetas parecen haber cambiado después de la actualización original a 05Q; de hecho, en mi copia de seguridad, la subcarpeta ni siquiera se llama
databases/
sino quedb/
. Por eso hago la pregunta aquí. En este caso particular, veocom.android.contacts
-- que sí intenté restaurar (pero que no tiene subcarpeta de base de datos) -- pero nocom.android.providers.contacts
. Perocom.android.providers.telephony
fue respaldado, y hizo parece restaurar los SMS.0 votos
@Firelord: En cuanto a por qué no usé Titanium Backup: pues porque fui un estúpido y pensé que las herramientas de Google harían lo correcto. Nunca se me ocurrió que lo que quería era tan descabellado que ni siquiera las tropecientas banderas que pasé a
adb
sería insuficiente.0 votos
No es que los nombres de las carpetas hayan cambiado de
databases
adb
pero ADB utiliza esas formas cortas como convenciones en cualquier copia de seguridad. No está relacionado con CM11 o CM12 en absoluto.0 votos
@Firelord: Oh... ya veo. Bueno, sí, no veo esa carpeta. Pero, ¿por qué iba a hacer una copia de seguridad de los SMS pero no de los registros de llamadas? Eso no tiene sentido...
0 votos
Por qué no se cubrieron los contactos, esta es la razón pero no puedo decir nada sobre los SMS ya que no tengo ninguna imagen de CM11 a mi disposición para comprobarlo.
0 votos
@Firelord: Cierto, he visto ese enlace, pero eso es sobre la base de datos de contactos... Yo busco la base de datos de registro de llamadas. ¿Son los dos la misma cosa?
0 votos
Vamos a continuar esta discusión en el chat .