Meu telefone não tem espaço suficiente para armazenar arquivos de backup, por isso, pergunto-me se existe uma maneira de fazer backup e restauração do Nandroid com arquivos armazenados no PC.
Meu telefone não tem espaço suficiente para armazenar arquivos de backup, por isso, pergunto-me se existe uma maneira de fazer backup e restauração do Nandroid com arquivos armazenados no PC.
Respostas:
Escrevi algumas ferramentas exatamente para esse fim, devido a frustrações semelhantes: https://github.com/dlenski/tetherback
Essas ferramentas são escritas em Python e usadas adb
para criar backups no estilo nandroid (imagens de partições brutas de dd if=/dev/block/mmcblk0pXX
) ou backups no estilo TWRP (mistura de imagens de partições brutas e tarballs para ext4
partições).
Eles tentam analisar o layout de partição correto e mostram o progresso do 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
Este é um trabalho em andamento - o feedback é muito bem-vindo!
Requisitos:
progressbar
pacote é necessário ( pip install progressbar
deve fazê-lo)adb
Ferramentas de linha de comando (Android Debug Bridge)EDIT: parece que a maior parte do tráfego para https://github.com/dlenski/tetherback vem deste segmento. Os primeiros problemas com corrupção de dados descritos nos comentários abaixo foram todos resolvidos; O tetherback agora inclui verificações muito fortes contra a corrupção.
gzip
modificando L46 , mas duvido que este seja realmente o problema. Você está executando Linux ou Windows? Infelizmente, no Windows, o adb manipula caracteres CRLF , o que significa que é impossível transmitir uma imagem binária através dela usando a técnica que estou usando. Posso escrever uma solução alternativa para isso, se necessário.
Um tópico sobre os desenvolvedores do XDA descreve como fazer um backup nandroid diretamente no seu computador sem usar o sdcard . Claro que só funciona em dispositivos enraizados. Outros requisitos incluem um sistema operacional Posix como Linux / MacOS (os usuários do Windows podem emular isso com o Cygwin) e o ADB (portanto, todo o SDK ou pelo menos uma instalação mínima ). Além disso, busybox
deve estar disponível no dispositivo e a depuração USB ativada.
O artigo descreve passo a passo os comandos necessários para criar um backup Nandroid. Basicamente, ele está usando o dd por meio de um pipe nomeado para criar uma cópia em nível de bloco das partições do seu dispositivo - o que é basicamente um backup nandroid .
Notei que (se você já possui o ADB configurado, seu telefone está enraizado e você está trabalhando em um sistema Linux ou similar), é possível despejar o conteúdo da partição por uma única linha:
adb pull /dev/block/mmcblk0
É o mesmo que é descrito no thread XDA para obter o conteúdo bit a bit da memória flash, exceto sem a dança com netcat e pipes (o que pode ser necessário ou não, dependendo das circunstâncias, eu acho). Obviamente, nenhuma partição na memória flash deve ser montada durante a cópia dos dados (por exemplo, fazê-lo a partir de uma recuperação e adb mount
não listar nenhuma partição montada); caso contrário, você arriscará um backup inconsistente em locais onde o Android decidiu gravar dados no hora do backup.
Observe que, para restaurar um simples:
pv mmcblk0 | adb shell dd of=/dev/block/mmcblk0
não funcionará, pois adb shell
não suporta tubulação. Mas se você, de alguma forma, pode fazer um dd of=/dev/block/mmcblk0
no próprio dispositivo, suponho que ele deva restaurar seu backup. Não confie em mim, porém, isso também pode bloquear o seu telefone. Ainda não testei; até agora eu só precisava recuperar uma única partição e dd
estava bem para isso.
Settings > Developer> tap build 7 times
)Settings > Developer > USB Debugging
)use a recuperação para evitar limitações de raiz do SO
./adb reboot recovery
puxe
./adb pull /dev/block/mmcblk0 mmcblk0.img