¿Cómo restaurar manualmente el registro de llamadas desde la copia de seguridad de adb en OnePlus One? (SMS ya restaurado)

Corrí adb backupcon todas las banderas de respaldo en mi OnePlus One (que había actualizado gradualmente de 44S a 05Q). Luego lo borré, volví a crear una imagen nueva de 05Q e intenté restaurar mis SMS y registros de llamadas.

Logré restaurar el historial de SMS copiando la /data/data/com.android.providers.telephony/databasescarpeta en mi nuevo teléfono y configurando los permisos de manera adecuada. Pero por mi vida, no puedo averiguar cómo restaurar mis registros de llamadas; no puedo averiguar desde qué carpeta restaurar y no puedo averiguar dónde restaurarlo . Me parece que los dos pueden ser diferentes porque originalmente actualicé el teléfono desde una versión un poco más antigua de Cyanogenmod, mientras que la copia nueva es completamente nueva, pero de cualquier manera no sé cómo hacerlo. Tengo la molesta sensación de que es posible que ni siquiera se haya hecho una copia de seguridad del registro de llamadas, pero eso sería extraño porque el registro de SMS estaba...

¿Algunas ideas?

/data/data/com.android.providers.contacts/databases/contacts2.db(en la tabla calls) Lo confirmé en mi Oneplus One con CM12. Pero no creo que ADB haya podido hacer una copia de seguridad de esa ubicación . Confirme si ADB realizó una copia de seguridad, ya que tendría que revisar mi respuesta vinculada. // Oh, y parece que tienes acceso de root, así que ¿por qué no usaste alguna buena herramienta de copia de seguridad como Titanium Backup o algo así? Solo preguntaba. :)
@Firelord: CM12 no ayuda aquí (ya tengo el 05Q nuevo que es CM11, es bastante fácil para mí verificarlo 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 db/. Es por eso que estoy haciendo la pregunta aquí. En este caso particular, veo com.android.contacts, que intenté restaurar (pero que no tiene una subcarpeta de base de datos), pero no com.android.providers.contacts. Pero com.android.providers.telephonyse realizó una copia de seguridad y pareció restaurar los SMS.
@Firelord: En cuanto a por qué no usé Titanium Backup: bueno, es porque fui estúpido y pensé que las herramientas de Google harían lo correcto. Nunca se me ocurrió que lo que quería era tan irrazonable que incluso las miles de banderas a las que pasé adbserían insuficientes.
No es que los nombres de las carpetas hayan cambiado de databasesa db, pero ADB usa esas formas abreviadas como convenciones en cualquier copia de seguridad. No está relacionado con CM11 o CM12 en absoluto.
@Firelord: Ah... Ya veo. Bueno, sí, no veo esa carpeta. Sin embargo, ¿por qué haría una copia de seguridad de los SMS pero no de los registros de llamadas? Eso no tiene sentido...
Por qué los contactos no estaban cubiertos, esta es la razón , pero no puedo decir nada sobre los SMS ya que no tengo ninguna imagen CM11 a mi disposición para verificar.
@Firelord: Correcto, vi ese enlace, pero se trata de la base de datos de contactos... Estoy buscando la base de datos del registro de llamadas. ¿Son los dos lo mismo?

Respuestas (1)

Nota : OP ya conoce 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 hacer una copia de seguridad y restaurar los contactos y los registros de llamadas usando ADB.

Desafortunadamente, la respuesta es simple: ADB no realizó una copia de seguridad de sus contactos y registros de llamadas porque los desarrolladores de CM11 no lo permitieron, por lo que debe buscar otras formas de restaurarlos ( pista : Contactos de Google ) sincronizar ).

Además, si importa:

  • /data/data/com.android.providers.telephony/databaseses donde encontrará la base de datos para SMS/MMS
  • /data/data/com.android.providers.contacts/databases/es donde verá los contactos y los registros de llamadas

Ahora puede dejar de leer si está satisfecho con la respuesta, y le recomiendo que se ocupe de encontrar algunos métodos de recuperación para recuperar el acceso a los contactos y los registros de llamadas.

Sin embargo, algunas almas quieren una razón para un evento sin importar qué, ¡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 hizo una copia de seguridad del contenido privado, como SMS/MMS, pero no de los contactos?

Debe tener en cuenta que desde que se lanzó 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 ROM de stock para permitir la copia de seguridad de dicho contenido privado por parte de ADB, es decir, ambos proveedores de telefonía ( tiene una base de datos de SMS/MMS) y el proveedor de contactos (tiene contactos y registros de llamadas) generalmente se desarrollan para no participar en la infraestructura de copia de seguridad y restauración del sistema Android. Sin embargo, CM11 tiene algunos cambios que permiten realizar copias de seguridad de SMS/MMS, pero dejan los contactos y los registros de llamadas en la suciedad.

¿Cuáles son esos cambios?

Mi hallazgo indica que en CM11, una marca llamada android:allowBackup="false"finalmente se eliminó del Proveedor de telefonía , pero permaneció intacta en el Proveedor de contactos . Esta bandera siempre se introduce debajo de la aplicación AndroidManifest.xml.

Google aquí tiene que decir esto con respecto a esa bandera:

android:allowBackup

Si permitir que la aplicación participe en la infraestructura de copia de seguridad y restauración. Si este atributo se establece en 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 lo contrario, haría que todos los datos de la aplicación se guardaran a través de adb . El valor predeterminado de este atributo es verdadero.

(Énfasis mío)

Sin embargo, por alguna razón, CM12 revirtió esta decisión y ahora, ambas aplicaciones no permiten realizar copias de seguridad desde ADB.

Si tiene la intención de ver el origen de dichos paquetes, eche un vistazo a los proveedores AndroidManifest.xmlde telefonía para:

  • CM11 -- no hay tal bandera bajo<application ..
  • CM12 -- tiene esa bandera debajo<application ..

Pero para el proveedor de contactos , tanto CM11 como CM12 tienen la bandera intacta.

Puede verificar aún más esta información desde los AndroidManifest.xmldos paquetes que tiene en su CM11. Encontrará que la bandera está presente en una aplicación y no en la otra.

Tenga en cuenta que el comportamiento predeterminado, como se menciona en el código fuente original de Android , es no permitir la copia de seguridad en ambas aplicaciones para el lanzamiento de Kitkat.

En cuanto a por qué los desarrolladores de CM11 hicieron tales cambios, recomendaría preguntarles directamente.

Listo por ahora!


Puede consultar mi respuesta similar mencionada aquí para la pregunta: ¿ Copia de seguridad/restauración de SMS/MMS a través de ADB en un dispositivo no rooteado? .