¿Hay alguna forma de respaldar / restaurar mensajes SMS y MMS usando ADB, cuando el dispositivo no está rooteado?
adb pull
no funcionará aquí, ya que/data/data/com.android.providers.telephony/databases/mmssms.db
ADB no puede leer la base de datos correspondiente ( ) si no se está ejecutando en modo inseguro (root)adb shell "cat /data/data/com.android.providers.telephony/databases/mmssms.db > /sdcard/mmssms.db
tampoco funciona sin acceso rootadb backup
por alguna razón no cubre esta base de datos en el dispositivo con el que he verificado (copia de seguridad vacía, solo los 41 bytes del encabezado de la copia de seguridad en el archivo resultante)
Especialmente me pregunto por qué adb backup
no cubre esto. Si es por "razones de privacidad", lo mismo debería aplicarse a la base de datos de contactos, que claramente está respaldada.
Referencias
- ¿Se puede utilizar adb para recuperar mensajes SMS mientras está en "Modo seguro" permanente? cubre el mismo tema, pero aparte de eso, no estoy restringido al modo seguro
- la copia de seguridad completa de los contenidos sms / mms a través de adb (en nuestro sitio hermano de desarrolladores) es para una "solución rooteada" (y, aparte de eso, un poco de edad: las preguntas y respuestas tienen más de 3 años)
Entonces: ¿Alguna solución en un dispositivo no rooteado? Tenga en cuenta que NO estoy pidiendo una solución basada en la aplicación. Soy plenamente consciente de que hay varias aplicaciones disponibles para esto . Específicamente, quiero que se use una "solución basada en shell" a través de ADB.
adb backup
: algunas excepciones, la mayoría de ellas ignorables, pero al usuario le gusta mucho guardar SMS que tampoco estaban cubiertos.Respuestas:
No es que
adb backup
no quiera cubrir la aplicacióncom.android.providers.telephony
. Esta aplicación no es muy diferente de cualquier otra aplicación de sistema basada en ellaAndroidManifest.xml
. El problema está en la bandera que su desarrollador ha declarado en el manifiesto que, por alguna razón,adb backup
es un mecanismo que debe respetar.Esta bandera no es otra que
android:allowBackup="false"
. Se excluye la aplicación de la copia de seguridad y restauración de ADB. Google aquí tiene que decir:(El énfasis es mío)
Partida de los
AndroidManifest.xml
de esta aplicación para la versión Lollipop aquí , o ver esta evidencia para mi Android 4.2.1:Hay más en esta aplicación. Ni siquiera puede Borrar datos de Configuración → Aplicaciones → Todas las aplicaciones →
<THIS_APP>
ya que tambiénandroid:allowClearUserData="false"
se declara, algo que no encontramos de vez en cuando.¡Es extraño, no es que puedas hacerlo, sino cómo es que tu sistema incluso te permite hacerlo solo con
adb backup
!El almacenamiento de contactos se maneja con la aplicación "ContactsProvider" que se denomina pkg_name =
com.android.providers.contacts
. La banderaandroid:allowBackup="false"
se menciona claramente en suAndroidManifest.xml
Jelly Bean (haga clic aquí para ver las otras versiones).¿Estás usando ICS o algún predecesor de JB?
Descubrí que esta aplicación no tiene ninguna declaración de esa bandera para ICS aquí . En realidad, puede borrar este misterio, ya que no puedo hacer una copia de seguridad de esta aplicación en mi JB 4.2.1 según la definición de la bandera, y siempre obtiene ese archivo de copia de seguridad de 41 bytes.
En cuanto a cualquier otro método para realizar una copia de seguridad / restauración de SMS / MMS usando ADB sin acceso a la raíz, todo aquí arriba.
fuente