Copia de seguridad / restauración de SMS / MMS a través de ADB en un dispositivo no rooteado?

10

¿Hay alguna forma de respaldar / restaurar mensajes SMS y MMS usando ADB, cuando el dispositivo no está rooteado?

  • adb pullno funcionará aquí, ya que /data/data/com.android.providers.telephony/databases/mmssms.dbADB 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 root
  • adb 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 backupno 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

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.

Izzy
fuente
" NO estoy pidiendo una solución basada en la aplicación " - ¿Forense nuevamente?
Señor del fuego
1
Preferiblemente sí (para otros lectores: las soluciones preferidas no requieren nada modificado en el dispositivo). Considere que el dispositivo en cuestión ya informa "memoria insuficiente", por lo que no es posible instalar algo. Como el dispositivo también se comporta de manera extraña en otro contexto, se debe realizar un restablecimiento de fábrica, por lo que sería bueno "guardar" la mayor cantidad de datos posible. Pude hacer una copia de seguridad de la mayoría de las cosas a través de adb backup: algunas excepciones, la mayoría de ellas ignorables, pero al usuario le gusta mucho guardar SMS que tampoco estaban cubiertos.
Izzy
¡Hola! Perdón por molestarte, ¿alguna vez has encontrado una solución para esto sin root? Por cierto, excelente lista de aplicaciones, ¡gracias por ese enlace!
Gruber
1
@Gruber No, todavía no encontré nada. // ¡Me alegra que te gusten mis listados de aplicaciones!
Izzy

Respuestas:

6

Especialmente me pregunto por qué adb backup no cubre esto.

No es que adb backupno quiera cubrir la aplicación com.android.providers.telephony. Esta aplicación no es muy diferente de cualquier otra aplicación de sistema basada en ella AndroidManifest.xml. El problema está en la bandera que su desarrollador ha declarado en el manifiesto que, por alguna razón, adb backupes 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:

android:allowBackup

Ya sea para permitir que la aplicación participe en la infraestructura de respaldo 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 del sistema completo que de lo contrario haría que todos los datos de la aplicación se guarden a través de adb. El valor predeterminado de este atributo es verdadero.

(El énfasis es mío)

Partida de los AndroidManifest.xmlde esta aplicación para la versión Lollipop aquí , o ver esta evidencia para mi Android 4.2.1:

IMG: sin bandera de respaldo

Hay más en esta aplicación. Ni siquiera puede Borrar datos de Configuración → Aplicaciones → Todas las aplicaciones →<THIS_APP> ya que también android:allowClearUserData="false"se declara, algo que no encontramos de vez en cuando.

Si es por "razones de privacidad", lo mismo debería aplicarse a la base de datos de contactos, que claramente está respaldada.

¡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 bandera android:allowBackup="false"se menciona claramente en su AndroidManifest.xmlJelly 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.

Señor del fuego
fuente
Soy consciente de que es esa bandera. Pero ambos, esa aplicación y ADB son parte del sistema: no estamos hablando de un proveedor externo aquí. Para aclarar: el dispositivo al que me refiero aquí ejecuta JellyBean (4.1.2). Gracias a su sugerencia, intentaré nuevamente con mis otros dispositivos (4.2 y 4.3). Con respecto a la privacidad: también podría haber una pista para que el usuario proporcione una contraseña. Además, SharedStorage también puede contener "datos privados"; además, Google asume que quiero sincronizar mis contactos / calendarios de forma predeterminada cuando habilito una cuenta de Google, en lugar de preguntarme (así que no hay forma de cancelar la suscripción si ya la agregas con ellos allí) )
Izzy
En peligro de que se convierta en una queja: si es demasiado privado para hacer una copia de seguridad, ¿por qué entonces también está protegido contra "datos claros"? "Nunca atribuya a la malicia lo que se puede explicar por pura estupidez" ... // Entonces, no es posible sin root: eso solo deja el módulo Xposed apropiado ("Copia de seguridad de todas las aplicaciones"). Lo que nuevamente debe instalarse en el dispositivo, lo que quería evitar ... Simplemente extraer la base de datos (con root) sería una solución alternativa, pero eso no permite la restauración entre dispositivos (lo intenté una vez, no fue un buena idea ya que dejó inutilizable el SMS, así que tuve que reiniciarlo)
Izzy
1
Sé @Izzy que eres consciente de una bandera tan simple, (no te convertiste en Pro de la nada, sino por investigación y experiencia :) pero otros que buscan respuestas para una pregunta tan simple probablemente no lo sepan, y todo de esta información no era adecuada para el comentario. De hecho, tenía en mente escribir este comentario, pero lo olvidé al final al escribir esta respuesta, ¡lo siento!
Señor del fuego
1
// En cuanto a la contraseña, aunque ADB proporciona una copia de seguridad protegida con contraseña, Google (IMO) puede pensar que evitar el acceso a contenido confidencial es mejor que permitir el acceso que, en caso de pérdida del dispositivo, puede provocar el volcado de datos por parte de personas no autorizadas. persona si la depuración de USB se habilitó por casualidad, seguido de un ataque de fuerza bruta.
Señor del fuego
1
- oh, bueno, lo tenían resuelto desde que comenzaron a restringir la libertad en nombre del negocio, puede ser otra cosa. Informaré algo bueno (no despotricar, por supuesto) si me encuentro de alguna manera.
Señor del fuego