0 votos

¿Cómo extraes un archivo .ab a .tar?

Durante 2 días, he estado tratando desesperadamente de recuperar una conversación de texto muy importante, borrada accidentalmente de Message+. Permítanme decir, ¡no sé NADA sobre tecnología! Después de intentar con softwares dudosos que no podían ayudar sin hacer root (y sentía dudas de que serían útiles incluso si había hecho root), parecía que la mejor opción era intentar encontrar los archivos borrados descargando ADB y haciendo una copia de seguridad. Después de mucha frustración, finalmente tuve éxito en crear un archivo backup.ab. El teléfono requirió encriptarlo. Pero el problema que me ha plagado hoy es desempaquetar eso a un archivo .tar. Después de mucha más investigación, he instalado Android Backup Extractor y java. Aunque encontré a algunas personas haciendo preguntas similares en la web, mi mensaje de error parece ser diferente. Estaba rezando por algo de ayuda para traducirlo y averiguar qué hacer a continuación. Esto es lo que escribí junto con el mensaje de error. A propósito, mi teléfono es un Galaxy S10+ con Android Versión 12. Y el archivo de respaldo tiene más de 40,000 kb.

C:\Program Files\Java\jdk-21\bin>java -jar abe.jar unpack backup.ab [password]

This backup is encrypted, please provide the password
Password:

Calculated MK checksum (use UTF-8: true): 37BDEBD1C840E3B9C82E9EE3D221758E8358AC92DF1C2FD274BBDC525066311D
Exception in thread "main" java.lang.RuntimeException: java.io.FileNotFoundException: [password] (Access is denied)
        at org.nick.abe.AndroidBackup.extractAsTar(AndroidBackup.java:233)
        at org.nick.abe.Main.main(Main.java:40)
Caused by: java.io.FileNotFoundException: [password] (Access is denied)
        at java.base/java.io.FileOutputStream.open0(Native Method)
        at java.base/java.io.FileOutputStream.open(FileOutputStream.java:289)
        at java.base/java.io.FileOutputStream.(FileOutputStream.java:230)
        at java.base/java.io.FileOutputStream.(FileOutputStream.java:118)
        at org.nick.abe.AndroidBackup.getOutputStream(AndroidBackup.java:314)
        at org.nick.abe.AndroidBackup.extractAsTar(AndroidBackup.java:199)
        ... 1 more

Actualización 1

Después de corregir el problema de falta de argumento del archivo .tar, el mensaje de error cambió:

C:\Program Files\Java\jdk-21\bin>java -jar abe.jar unpack backup.ab backup.tar [belle]

Exception in thread "main" java.lang.RuntimeException: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
        at org.nick.abe.AndroidBackup.extractAsTar(AndroidBackup.java:233)
        at org.nick.abe.Main.main(Main.java:40)
Caused by: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
        at java.base/com.sun.crypto.provider.CipherCore.unpad(CipherCore.java:861)
        at java.base/com.sun.crypto.provider.CipherCore.fillOutputBuffer(CipherCore.java:941)
        at java.base/com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:734)
        at java.base/com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:446)
        at java.base/javax.crypto.Cipher.doFinal(Cipher.java:2244)
        at org.nick.abe.AndroidBackup.extractAsTar(AndroidBackup.java:131)
        ... 1 more

¡Muchas gracias por cualquier ayuda!

Actualización 2

También acabo de intentar usando android tools processor en su lugar.

C:\Program Files\Java\jdk-21\bin>java -jar abp.jar unpack backup.ab backup.tar
Backup encrypted, enter password (will NOT be displayed):
Password:

No se produjo ningún mensaje de error, así que pensé que podría haber funcionado. ¡Pero no hay ningún archivo .tar a la vista!

2voto

pr0nin Puntos 353

Tienes un pequeño error en tu comando, falta el nombre del archivo tar de salida.

Si observas la sintaxis de desempaquetado en el README.md de abe encontrarás esto:

abe unpack    [password]

Como no has proporcionado un nombre de archivo backup.tar, abe utiliza la contraseña que proporcionaste y desea escribir el archivo tar de salida hasta ese archivo. Parece que tu contraseña es de alta calidad con caracteres especiales que el sistema de archivos de Windows no admite o un efecto similar que conduce al error de acceso denegado.

Un segundo problema es que estás ejecutando todo en C:\Program Files\Java\jdk-21\bin. Los directorios por debajo de C:\Program Files suelen ser solo escribibles para usuarios con permisos de Administrador. Por lo tanto, te recomendaría encarecidamente no colocar archivos de datos de usuario como el archivo de copia de seguridad de Android .ab allí.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X