12 votes

Extraire des données d'une sauvegarde TWRP

Comment puis-je extraire des fichiers individuels à partir d'une sauvegarde créée avec TWRP? Je suis tombé sur cette réponse, qui concerne l'extraction d'un APK à partir de la partition système. Cependant, je souhaite extraire des fichiers de /data, qui sont répartis dans plusieurs fichiers dans la sauvegarde.

0 votes

Peut-être que la version tar personnalisée de TWRP requise pour l'extraction peut être compilée pour des PC x64 normaux. Le code source semble être ici : github.com/TeamWin/android_bootable_recovery/tree/android-14‌​/…

21voto

Johnathon Havens Points 301

cat data.ext4.win??? | tar xvfi -

Ce que cela fait est de concaténer chaque fichier correspondant au motif data.ext4.win??? puis de transmettre les fichiers concaténés à tar pour l'extraction. Le - en tant que nom de fichier indique à tar d'extraire à partir de stdin. L'option i ignore les blocs zéro qui se trouveront entre chaque fichier d'archive concaténé.

Dans cet exemple, j'ai utilisé la partition de données formatée en ext4. Remplacez data.ext4 par le nom de la partition que vous êtes en train d'extraire.

Clause de non-responsabilité : Ceci n'a pas été testé dans un environnement Windows.


Pour une solution moins bidouillée trouvée ici,

for f in data.ext4.win???; do tar xvf "$f"; done

C'est un peu plus simple sans dépendre de l'option ignore zeros de tar pour fonctionner correctement.

0 votes

Les commentaires ne sont pas destinés à des discussions prolongées; cette conversation a été déplacée dans le chat.

11voto

user149408 Points 337

Les fichiers créés par TWRP avec une extension *.win ou *.win??? sont des archives tar. Si une partition est répartie sur plusieurs fichiers, chacun est une archive tar à part entière.

Il y a une légère différence, en fonction de la version de TWRP utilisée pour créer la sauvegarde. Le tournant semble être la version 3.2.* ou avant.

Si la sauvegarde a été créée avec une ancienne version :

Les fichiers sont au format TAR standard que tout système d'exploitation de type Unix devrait comprendre. Il suffit de renommer chaque fichier en lui donnant une extension .tar, et de l'ouvrir dans votre outil d'archivage préféré (Engrampa sur Ubuntu MATE a bien fonctionné pour cela).

Si la sauvegarde a été créée avec une version récente :

Le format de fichier utilise des extensions TAR personnalisées, que les outils tar standard ne peuvent pas traiter, voir https://github.com/TeamWin/Team-Win-Recovery-Project/issues/1472. Vous devez extraire le fichier avec la propre version de tar de TWRP :

  • Si la sauvegarde n'est plus sur le dispositif, copiez le fichier requis en arrière. (Devrait fonctionner sur n'importe quel dispositif avec TWRP, peu importe où la sauvegarde a été créée.)
  • Démarrer TWRP.
  • adb shell dans le dispositif.
  • cd vers un dossier où vous souhaitez stocker vos fichiers extraits (je vous recommande d'en créer un temporaire, d'y extraire les fichiers, puis de les copier vers leur destination prévue – cela vous donne une certaine sécurité contre l'écrasement accidentel de parties de votre système de fichiers).
  • Extraire ces fichiers avec la version tar personnalisée de TWRP :
    • tar -tvf data.ext4.win000 listera tous les fichiers dans cette archive de sauvegarde particulière (utilisez grep pour rechercher quelque chose en particulier).
    • tar -xvf data.ext4.win000 chemin/vers/fichier extraira le fichier spécifié. Dans mon cas, TAR a supprimé le / initial des noms de fichier et a placé le fichier extrait dans le dossier actuel, avec le chemin ajouté.

Une autre option serait de construire l'outil tar personnalisé de TWRP sur un système de votre choix, puis de faire l'extraction sur ce système.

2 votes

Sur Ubuntu, en les ouvrant en double-cliquant, des erreurs se produisent : le format n'est pas pris en charge mais je peux les extraire avec tar -xvf. Et sur Windows, je ne peux malheureusement pas les extraire avec 7-Zip.

0 votes

Tar: Ignorance du mot-clé d'en-tête étendu inconnu 'TWRP.security.e4crypt' le client de ligne de commande réussit à extraire les fichiers, mais envoie en masse l'avertissement ci-dessus.

0 votes

Je ne sais pas ce qui a changé au cours des dernières années, mais extraire un fichier spécifié vers un chemin relatif ne fonctionne pas pour moi en utilisant le tar personnalisé qui se trouve dans twrp-3.6.2_9-0-hima.img à partir d'une coquille adb. Sans le slash initial sur le chemin du fichier spécifié, j'obtiens une erreur indiquant que le fichier spécifié n'est "pas dans l'archive". Avec le slash initial, il extrait le fichier vers le chemin absolu. L'utilisation de l'argument -C ne fait aucune différence non plus. J'ai fourni des exemples plus complets ici: github.com/TeamWin/Team-Win-Recovery-Project/issues/…

1voto

Scott Points 3238

Essayez BinWalk, c'est un outil rapide et facile à utiliser pour analyser, rétroconcevoir et extraire des images de firmware. et pour plus d'informations, consultez ce Guide de démarrage rapide.

-1voto

user267067 Points 228

Il suffit d'extraire le fichier avec WinRAR dans un dossier sur le bureau et c'est tout.

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