Corrí adb backup
con 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/databases
carpeta 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?
Nota : OP ya conoce la respuesta, pero la siguiente información es para aquellas almas que puedan tener problemas con el mismo problema.
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/databases
es 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 llamadasAhora 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 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.
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.xml
de telefonía para:
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.xml
dos 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? .
Señor del Fuego
/data/data/com.android.providers.contacts/databases/contacts2.db
(en la tablacalls
) 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. :)usuario541686
databases/
, sinodb/
. Es por eso que estoy haciendo la pregunta aquí. En este caso particular, veocom.android.contacts
, que intenté restaurar (pero que no tiene una subcarpeta de base de datos), pero nocom.android.providers.contacts
. Perocom.android.providers.telephony
se realizó una copia de seguridad y pareció restaurar los SMS.usuario541686
adb
serían insuficientes.Señor del Fuego
databases
adb
, pero ADB usa esas formas abreviadas como convenciones en cualquier copia de seguridad. No está relacionado con CM11 o CM12 en absoluto.usuario541686
Señor del Fuego
usuario541686
Señor del Fuego