Il mio telefono non ha abbastanza spazio per archiviare i file di backup, quindi mi chiedo se esiste un modo per eseguire il backup e il ripristino di Nandroid con i file memorizzati sul PC.
Il mio telefono non ha abbastanza spazio per archiviare i file di backup, quindi mi chiedo se esiste un modo per eseguire il backup e il ripristino di Nandroid con i file memorizzati sul PC.
Risposte:
Ho scritto alcuni strumenti esattamente per questo scopo, a causa di frustrazioni simili: https://github.com/dlenski/tetherback
Questi strumenti sono scritti in Python e utilizzati adb
per creare backup in stile nandroid (immagini di partizioni non elaborate da dd if=/dev/block/mmcblk0pXX
) o backup in stile TWRP (combinazione di immagini di partizioni non elaborate e tarball per le ext4
partizioni).
Tentano di sondare il layout di partizione corretto e mostrano l'avanzamento del backup:
$ ./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
Questo è un work in progress: il feedback è molto gradito!
Requisiti:
progressbar
è necessario il pacchetto ( pip install progressbar
dovrebbe farlo)adb
(Android Debug Bridge) strumenti da riga di comandoEDIT: sembra che la maggior parte del traffico verso https://github.com/dlenski/tetherback provenga da questa discussione. I primi problemi con corruzione dei dati descritti nei commenti seguenti sono stati tutti risolti; tetherback ora include controlli molto forti contro la corruzione.
gzip
modificando L46 , ma dubito che questo sia effettivamente il problema. Stai usando Linux o Windows? Sfortunatamente, sotto Windows adb mangia i caratteri CRLF , il che significa che è impossibile trasmettere un'immagine binaria attraverso di essa usando la tecnica che sto usando. Posso scrivere una soluzione alternativa per questo, se necessario.
Un thread sugli sviluppatori XDA descrive come eseguire un backup nandroid direttamente sul tuo computer senza usare sdcard . Ovviamente funziona solo su dispositivi rooted. Ulteriori requisiti includono un sistema operativo Posix come Linux / MacOS (gli utenti Windows possono emularlo con Cygwin) e ADB (quindi l'intero SDK o almeno un'installazione minima ). Inoltre, busybox
deve essere disponibile sul dispositivo e il debug USB attivato.
L'articolo descrive passo dopo passo i comandi necessari per creare un backup Nandroid. Fondamentalmente, sta usando dd tramite una pipe denominata per creare una copia a livello di blocco delle partizioni del dispositivo - che cos'è sostanzialmente un backup nandroid .
Ho notato che (se hai già configurato ADB, il tuo telefono è rootato e stai lavorando su un sistema Linux o simile) è possibile scaricare il contenuto della partizione da un singolo one-liner:
adb pull /dev/block/mmcblk0
Questo è lo stesso di quello descritto nel thread XDA per ottenere i contenuti bit per bit della memoria flash, tranne senza il ballo con netcat e pipe (che potrebbe essere necessario o meno a seconda delle circostanze, immagino). Ovviamente nessuna partizione sulla memoria flash deve essere montata durante la copia dei dati (ad es. Farlo da un ripristino mentre adb mount
non elenca alcuna partizione montata), altrimenti rischierai un backup incoerente in luoghi in cui Android ha deciso di scrivere dati sul tempo di backup.
Si noti che per ripristinare un semplice:
pv mmcblk0 | adb shell dd of=/dev/block/mmcblk0
non funzionerà, in quanto adb shell
non supporta le tubazioni. Ma se in qualche modo riesci a fare un dd of=/dev/block/mmcblk0
dispositivo sul dispositivo stesso, suppongo che dovrebbe ripristinare il backup. Non fidarti di me, però, potrebbe anche danneggiare il tuo telefono. Non l'ho ancora provato; finora avevo solo bisogno di recuperare una singola partizione e per me dd
andava bene.
Settings > Developer> tap build 7 times
)Settings > Developer > USB Debugging
)utilizzare il recupero per evitare le limitazioni della radice del sistema operativo
./adb reboot recovery
fai il tiro
./adb pull /dev/block/mmcblk0 mmcblk0.img