Mon téléphone n'a pas assez d'espace pour stocker des fichiers de sauvegarde, je me demande donc s'il existe un moyen de faire une sauvegarde et une restauration Nandroid avec des fichiers stockés sur PC.
Mon téléphone n'a pas assez d'espace pour stocker des fichiers de sauvegarde, je me demande donc s'il existe un moyen de faire une sauvegarde et une restauration Nandroid avec des fichiers stockés sur PC.
Réponses:
J'ai écrit quelques outils exactement à cette fin, en raison de frustrations similaires: https://github.com/dlenski/tetherback
Ces outils sont écrits en Python et adb
permettent de créer des sauvegardes de style nandroid (images de partitions brutes 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 de la partition 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:
progressbar
le paquet est nécessaire ( pip install progressbar
devrait le faire)adb
(Android Debug Bridge) outils de ligne de commandeEDIT: On dirait que la plupart du trafic vers https://github.com/dlenski/tetherback provient 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 comprend désormais des contrôles très solides contre la corruption.
gzip
en modifiant L46 , mais je doute que ce soit réellement le problème. Utilisez-vous Linux ou Windows? Malheureusement, sous Windows adb modifie les caractères CRLF , ce qui signifie qu'il est impossible de transmettre une image binaire à travers elle en utilisant la technique que j'utilise. Je peux écrire une solution de contournement pour cela si besoin est.
Un fil sur les développeurs XDA décrit comment effectuer une sauvegarde nandroid directement sur votre ordinateur sans utiliser de carte SD . Bien sûr, cela ne fonctionne que sur les appareils rootés. Les autres exigences incluent soit un OS Posix comme Linux / MacOS (les utilisateurs Windows peuvent émuler cela avec Cygwin), et ADB (donc soit le SDK entier, soit au moins une installation minimale ). De plus, busybox
doit être disponible sur l'appareil et le débogage USB doit être activé.
L'article décrit étape par étape les commandes nécessaires pour créer une sauvegarde Nandroid. Fondamentalement, il utilise dd via un canal nommé pour créer une copie de niveau bloc des partitions de votre appareil - ce qu'est essentiellement une sauvegarde nandroid .
J'ai remarqué que (si vous avez déjà configuré ADB, 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 par une seule ligne:
adb pull /dev/block/mmcblk0
C'est la même chose que ce qui est décrit dans le thread XDA pour obtenir le contenu bit à bit de la mémoire flash, sauf sans la danse avec netcat et les tuyaux (qui pourraient être nécessaires ou non selon les circonstances, je suppose). De toute évidence, aucune partition sur la mémoire flash ne doit être montée lors de la copie des données (c'est-à-dire le faire à partir d'une récupération adb mount
sans répertorier les partitions montées), sinon vous risquez une sauvegarde incohérente dans les endroits où Android a décidé d'écrire des données sur le 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 pouvez en quelque sorte faire 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 à ce sujet, cela pourrait aussi bien clouer votre téléphone. Je ne l'ai pas encore testé; Jusqu'à présent, je n'avais besoin que de récupérer une seule partition et cela me convenait dd
.
Settings > Developer> tap build 7 times
)Settings > Developer > USB Debugging
)utiliser la récupération pour éviter les limitations de la racine du système d'exploitation
./adb reboot recovery
faire le pull
./adb pull /dev/block/mmcblk0 mmcblk0.img