J'utilise un périphérique Android 4.0.3 et je souhaite extraire le fichier de sauvegarde créé par:
adb backup -f ~/data.ab -noapk app.package.name
La ligne ci-dessus fonctionne dans le CMD (Windows) et je peux obtenir le fichier data.ab dans le répertoire '~'.
Ce que je ne peux pas faire, c'est extraire ce fichier avec CMD. J'ai essayé les deux méthodes ci-dessous.
dd if=data.ab bs=1 skip=24 | openssl zlib -d | tar -xvf -
dd if=data.ab bs=1 skip=24 | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" | tar -xvf -
Je reçois l'erreur ci-dessous
J'ai essayé de l'extraire via CYGWIN, mais j'ai aussi échoué.
Où devrais-je faire l'extraction? Dans quel répertoire mon invite de commande devrait-il être? Des idées?
Selon https://Android.stackexchange.com/a/78183/23906 , vous pouvez exécuter une commande d'une ligne sous Linux pour ajouter un en-tête tar approprié pour l'extraire.
( printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" ; tail -c +25 backup.ab ) | tar xfvz -
Remplacez backup.ab par le chemin d'accès à votre fichier.
J'ai également dû décompresser un fichier .ab
- et trouvé ce post tout en cherchant une réponse. Ma solution suggérée est Android Backup Extractor , un outil gratuit Java pour Windows, Linux et Mac OS.
Assurez-vous de jeter un coup d'œil au README , si vous rencontrez un problème. Vous devrez peut-être télécharger d'autres fichiers si votre fichier .ab
- est protégé par mot de passe.
Usage:Java -jar abe.jar [-debug] [-useenv=yourenv] unpack <backup.ab> <backup.tar> [password]
Exemple:
Disons que vous avez un fichier test.ab
, Qui n'est pas protégé par mot de passe, vous utilisez Windows et vous souhaitez que l'archive .tar
Résultante s'appelle test.tar
. Alors votre commande devrait être:
Java.exe -jar abe.jar unpack test.ab test.tar ""