25 votes

Existe-t-il un moyen de faire une sauvegarde de Nandroid directement sur le PC et de la restaurer directement depuis le PC ?

Mon téléphone n'a pas assez d'espace pour stocker les fichiers de sauvegarde. Je me demande donc s'il existe un moyen de faire une sauvegarde et une restauration de Nandroid avec les fichiers stockés sur le PC.

15voto

Dan Points 440

J'ai écrit quelques outils pour exactement cette fin, en raison de frustrations similaires : https://github.com/dlenski/tetherback

Ces outils sont écrits en Python et utilisent adb pour créer des sauvegardes de style nandroid (images de partition brutes à partir de dd if=/dev/block/mmcblk0pXX ) ou des sauvegardes de style TWRP (mélange d'images de partitions brutes et de tarballs pour les ext4 partitions).

Ils tentent de sonder la disposition correcte des partitions, et montrent la progression de la sauvegarde :

$ ./twrp_backup.py
Device reports TWRP kernel (3.4.0-bricked-hammerhead-twrp-g7b77eb4).
Reading partition map for mmcblk0 (29 partitions)...
  partition map: 100% Time: 0:00:03                                                                                                                                                                                
Saving TWRP backup images in twrp-backup-2016-03-17--18-53-12/ ...
Saving partition boot (mmcblk0p19), 22 MiB uncompressed...
  boot.emmc.win: 100% Time: 0:00:05   3.10 MB/s                                                                                                                                                                    
Saving tarball of mmcblk0p25 (mounted at /system), 1024 MiB uncompressed...
  system.ext4.win:   2% ETA:  0:06:29   2.69 MB/s  

Il s'agit d'un travail en cours - les commentaires sont les bienvenus !

Exigences :

  • Python 3.3+ sous Linux/OSX/Windows.
    • progressbar est nécessaire ( pip install progressbar devrait le faire)
  • adb (Android Debug Bridge) outils de ligne de commande
  • Appareil Android enraciné avec Récupération TWRP installé.
    • Les conditions requises pour un appareil enraciné et une restauration personnalisée sont les suivantes ne disparaîtra jamais : si vous n'avez pas l'accès Root, vous n'avez aucun moyen de copier l'intégralité du contenu de la mémoire de votre appareil, c'est aussi simple que cela.

EDITAR: On dirait que la plupart du trafic vers https://github.com/dlenski/tetherback vient de ce fil. Les premiers problèmes de corruption de données décrits dans les commentaires ci-dessous ont tous été résolus ; tetherback inclut maintenant des contrôles très forts contre la corruption.

9voto

Hudayfah Points 1

Un fil de discussion sur les développeurs XDA décrit Comment faire une sauvegarde de nandroid directement sur votre ordinateur sans utiliser de carte SD ? . Bien sûr, cela ne fonctionne que sur les appareils enracinés. Les autres conditions requises sont un système d'exploitation Posix comme Linux/MacOS (les utilisateurs de Windows peuvent l'émuler avec Cygwin), et ADB (donc soit le SDK complet, soit au moins une version de installation minimale ). De plus, busybox doit être disponible sur l'appareil, et Débogage USB activé.

L'article décrit étape par étape les commandes nécessaires pour créer une sauvegarde Nandroid. En gros, il s'agit d'utiliser dd via un tuyau nommé pour créer une copie au niveau du bloc des partitions de votre appareil. nandroid sauvegarde en gros, c'est.

4voto

jmanning2k Points 3354

J'ai remarqué que (si vous avez déjà configuré ADB, que votre téléphone est enraciné et que vous travaillez sur un système Linux ou similaire) il est possible de vider le contenu de la partition en une seule ligne :

adb pull /dev/block/mmcblk0

C'est la même chose que ce qui est décrit dans le fil de discussion XDA pour obtenir le contenu bit à bit de la mémoire flash, mais sans la danse avec netcat et les tuyaux (qui peuvent être nécessaires ou non selon les circonstances, je suppose). Il est évident qu'aucune partition de la mémoire flash ne doit être montée pendant la copie des données (c'est-à-dire que vous devez le faire à partir d'une récupération pendant que vous êtes en train d'utiliser votre ordinateur). adb mount ne liste pas les partitions montées), sinon vous risquez une sauvegarde incohérente aux endroits où Android a décidé d'écrire des données au moment de la sauvegarde.

Notez que pour restaurer un simple :

pv mmcblk0 | adb shell dd of=/dev/block/mmcblk0

ne fonctionnera pas, car adb shell ne prend pas en charge la tuyauterie. Mais si vous parvenez à faire un dd of=/dev/block/mmcblk0 sur l'appareil lui-même, je suppose qu'il devrait restaurer votre sauvegarde. Mais ne me faites pas confiance, cela pourrait aussi bien briquer votre téléphone. Je ne l'ai pas encore testé ; jusqu'à présent, je n'ai eu besoin de restaurer qu'une seule partition et je n'ai pas eu besoin de l'utiliser. dd était bien pour ça.

2voto

user1133275 Points 396
  1. Afficher les options du développeur ( Settings > Developer> tap build 7 times )

  2. Activer le débogage USB ( Settings > Developer > USB Debugging )

  3. utiliser la récupération pour éviter les limitations de l'OS Root

    ./adb reboot recovery

  4. faire la traction

    ./adb pull /dev/block/mmcblk0 mmcblk0.img

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