0 votes

Comment extrayez-vous un fichier .ab en .tar?

Pendant 2 jours, j'ai désespérément essayé de récupérer une conversation texte très importante, supprimée par accident de Message+. Permettez-moi de dire que je ne sais ABSOLUMENT rien en technologie ! Après avoir essayé des logiciels douteux qui ne pouvaient pas aider sans rooter (et j'avais des doutes qu'ils soient utiles même si j'avais rooté), il semblait que la meilleure option était d'essayer de trouver les fichiers supprimés en téléchargeant ADB et en faisant une sauvegarde. Après beaucoup de frustration, j'ai finalement réussi à créer un fichier backup.ab. Le téléphone m'a demandé de l'encrypter. Mais le problème qui me hante aujourd'hui est de décompresser cela dans un fichier .tar. Après de nombreuses recherches supplémentaires, j'ai installé Android Backup Extractor et Java. Bien que j'aie trouvé quelques personnes posant des questions similaires sur le web, mon message d'erreur semble être différent. J'espérais un peu d'aide pour le traduire et comprendre quoi faire ensuite. Voici ce que j'ai tapé avec le message d'erreur. Au fait, mon téléphone est un Galaxy S10+ fonctionnant sous Android Version 12. Et le fichier de sauvegarde fait plus de 40 000 ko.

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

Cette sauvegarde est encryptée, veuillez fournir le mot de passe
Mot de passe :

Checksum MK calculé (utilise UTF-8 : vrai) : 37BDEBD1C840E3B9C82E9EE3D221758E8358AC92DF1C2FD274BBDC525066311D
Exception dans le thread "main" java.lang.RuntimeException: java.io.FileNotFoundException : [motdepasse] (Accès refusé)
        at org.nick.abe.AndroidBackup.extractAsTar(AndroidBackup.java:233)
        at org.nick.abe.Main.main(Main.java:40)
Caused by: java.io.FileNotFoundException : [motdepasse] (Accès refusé)
        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

Mise à jour 1

Après avoir résolu le problème de l'argument manquant du fichier tar, le message d'erreur a changé :

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

Exception dans le thread "main" java.lang.RuntimeException: javax.crypto.BadPaddingException : Bloc final donné incorrectement rembourré. De tels problèmes peuvent survenir si une mauvaise clé est utilisée pendant le déchiffrement.
        at org.nick.abe.AndroidBackup.extractAsTar(AndroidBackup.java:233)
        at org.nick.abe.Main.main(Main.java:40)
Caused by: javax.crypto.BadPaddingException : Bloc final donné incorrectement rembourré. De tels problèmes peuvent survenir si une mauvaise clé est utilisée pendant le déchiffrement.
        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

Merci beaucoup pour toute aide !

Mise à jour 2

J'ai également essayé d'utiliser l'outil de traitement android à la place.

C:\Program Files\Java\jdk-21\bin>java -jar abp.jar unpack backup.ab backup.tar
Sauvegarde encryptée, entrez le mot de passe (NE sera PAS affiché) :
Mot de passe :

Aucun message d'erreur n'a été produit, donc j'ai pensé que cela avait peut-être fonctionné. Pourtant, aucun fichier .tar en vue !

2voto

pr0nin Points 353

Vous avez une petite erreur dans votre commande, le nom du fichier tar de sortie est manquant.

Si vous regardez la syntaxe de désarchivage dans le fichier README.md d'abe, vous trouverez ceci :

abe unpack    [mot de passe]

Comme vous n'avez pas fourni de nom de fichier backup.tar, abe utilise le mot de passe que vous avez fourni et veut écrire le fichier tar de sortie jusqu'à ce fichier. Il semble que votre mot de passe contienne des caractères spéciaux que le système de fichiers Windows ne supporte pas ou un effet similaire qui conduit à l'erreur d'accès refusé.

Un deuxième problème est que vous exécutez tout dans C:\Program Files\Java\jdk-21\bin. Les répertoires en dessous de C:\Program Files sont généralement seulement accessibles en écriture pour les utilisateurs disposant des permissions d'Administrateur. Par conséquent, je vous recommande vivement de ne pas placer les fichiers de données utilisateur comme les fichiers de sauvegarde Android .ab là-bas.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X