¿Hay alguna manera de hacer una copia de seguridad de Nandroid directamente en la PC y luego restaurarla directamente desde la PC también?
22
Mi teléfono no tiene suficiente espacio para almacenar archivos de copia de seguridad, así que me pregunto si hay una manera de hacer copias de seguridad y restaurar Nandroid con archivos almacenados en la PC.
Dudo que haya alguna forma de hacer esto. Debe intentar hacer una copia de seguridad en una tarjeta SD externa y luego transferirla a la computadora. O simplemente mueva suficientes archivos a su computadora para que pueda crear y restaurar la copia de seguridad en su teléfono y luego mover los archivos cuando haya terminado.
Estas herramientas están escritas en Python y se utilizan adbpara crear copias de seguridad de estilo nandroid (imágenes de partición sin dd if=/dev/block/mmcblk0pXXformato de ) o copias de seguridad de estilo TWRP (mezcla de imágenes de partición sin formato y tarballs para ext4particiones).
Intentan sondear el diseño de partición correcto y muestran el progreso de la copia de seguridad:
El requisito de un dispositivo rooteado y una recuperación personalizada nunca desaparecerá : si no tiene acceso a la raíz, entonces no tiene medios para copiar todo el contenido de la memoria de su dispositivo, así de simple.
EDITAR: Parece que la mayor parte del tráfico a https://github.com/dlenski/tetherback proviene de este hilo. Los primeros problemas con la corrupción de datos descritos en los comentarios a continuación se han resuelto; tetherback ahora incluye controles muy fuertes contra la corrupción.
En primer lugar, gracias por hacer el programa. Parece estar funcionando bien, excepto cuando uso nandroid.py, los archivos más grandes, como system.img.gz y userdata.img.gz, fallan al descomprimir el gzip. El "crc falla" y produce un archivo img aproximadamente 1/5 del tamaño del archivo img.gz. Sin embargo, el bootloader.img.gz se descomprime bien. ¿De todos modos, podría deshabilitar el gzipping o conoce otra forma de reparar el archivo dañado?
I'm_With_Stupid
1
@ I'm_With_Stupid, puede desactivar la gzipmodificación de L46 , pero dudo que este sea realmente el problema. ¿Estás ejecutando Linux o Windows? Desafortunadamente, bajo Windows, adb manipula los caracteres CRLF , lo que significa que es imposible transmitir una imagen binaria a través de ella usando la técnica que estoy usando. Puedo escribir una solución para esto si es necesario.
Dan
Además, si puede proporcionar más detalles, agréguelo como un nuevo número en el repositorio de Github porque hace que sea más fácil realizar un seguimiento.
Dan
1
Agregué mis problemas como problemas nuevos, por lo que probablemente deberíamos continuar nuestra conversación allí .
I'm_With_Stupid
8
Un hilo sobre los desarrolladores de XDA describe cómo hacer una copia de seguridad de nandroid directamente en su computadora sin usar sdcard . Por supuesto, solo funciona en dispositivos rooteados. Los requisitos adicionales incluyen un sistema operativo Posix como Linux / MacOS (los usuarios de Windows pueden emular esto con Cygwin) y ADB (o bien todo el SDK, o al menos una instalación mínima ). Además, busyboxdebe estar disponible en el dispositivo y la depuración USB activada.
El artículo describe paso a paso los comandos necesarios para crear una copia de seguridad de Nandroid. Básicamente, está usando dd a través de una tubería con nombre para crear una copia a nivel de bloque de las particiones de su dispositivo, lo que básicamente es una copia de seguridad nandroid .
Gracias por el puntero, @Hudayfah! Pero si bien las publicaciones de solo enlace pueden responder teóricamente a la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace como referencia. De lo contrario, la respuesta se vuelve inútil en caso de que el enlace muera. Actualicé su publicación en consecuencia para mostrar cómo se puede ver eso, para ayudarlo con respecto a publicaciones futuras (que con suerte hará :) :) ¡Una cálida bienvenida a nuestra comunidad incluida!
Izzy
Además, ¿cómo haría para restaurar esta copia de seguridad, suponiendo que solo tenga acceso a fastboot o tal vez a adb en la recuperación?
jiggunjer
¿Por qué debe ser enraizado?
user4951
2
Me di cuenta de que (si ya tiene ADB configurado, su teléfono está rooteado y está trabajando en un sistema Linux o similar) es posible volcar el contenido de la partición por una sola línea:
adb pull /dev/block/mmcblk0
Esto es lo mismo que se describe en el hilo XDA para obtener el contenido bit por bit de la memoria flash, excepto sin el baile con netcat y tuberías (que podría ser necesario o no dependiendo de las circunstancias, supongo). Obviamente, no se debe montar ninguna partición en la memoria flash mientras se copian los datos (es decir, hacerlo desde una recuperación mientras adb mountno se enumeran las particiones montadas), de lo contrario, correrá el riesgo de una copia de seguridad inconsistente en lugares en los que Android decidió escribir datos en el tiempo de respaldo.
Tenga en cuenta que para restaurar un simple:
pv mmcblk0 | adb shell dd of=/dev/block/mmcblk0
no funcionará, ya adb shellque no admite tuberías. Pero si de alguna manera puede hacer un dd of=/dev/block/mmcblk0en el dispositivo en sí, supongo que debería restaurar su copia de seguridad. Sin embargo, no confíes en mí en esto, también podría bloquear tu teléfono. No lo he probado todavía; Hasta ahora solo necesitaba recuperar una sola partición y ddestaba bien para eso.
Respuestas:
He escrito algunas herramientas exactamente para este propósito, debido a frustraciones similares: https://github.com/dlenski/tetherback
Estas herramientas están escritas en Python y se utilizan
adb
para crear copias de seguridad de estilo nandroid (imágenes de partición sindd if=/dev/block/mmcblk0pXX
formato de ) o copias de seguridad de estilo TWRP (mezcla de imágenes de partición sin formato y tarballs paraext4
particiones).Intentan sondear el diseño de partición correcto y muestran el progreso de la copia de seguridad:
Este es un trabajo en progreso: ¡los comentarios son muy bienvenidos!
Requisitos:
progressbar
Se necesita el paquete (pip install progressbar
debería hacerlo)adb
(Android Debug Bridge) herramientas de línea de comandosEDITAR: Parece que la mayor parte del tráfico a https://github.com/dlenski/tetherback proviene de este hilo. Los primeros problemas con la corrupción de datos descritos en los comentarios a continuación se han resuelto; tetherback ahora incluye controles muy fuertes contra la corrupción.
fuente
gzip
modificación de L46 , pero dudo que este sea realmente el problema. ¿Estás ejecutando Linux o Windows? Desafortunadamente, bajo Windows, adb manipula los caracteres CRLF , lo que significa que es imposible transmitir una imagen binaria a través de ella usando la técnica que estoy usando. Puedo escribir una solución para esto si es necesario.Un hilo sobre los desarrolladores de XDA describe cómo hacer una copia de seguridad de nandroid directamente en su computadora sin usar sdcard . Por supuesto, solo funciona en dispositivos rooteados. Los requisitos adicionales incluyen un sistema operativo Posix como Linux / MacOS (los usuarios de Windows pueden emular esto con Cygwin) y ADB (o bien todo el SDK, o al menos una instalación mínima ). Además,
busybox
debe estar disponible en el dispositivo y la depuración USB activada.El artículo describe paso a paso los comandos necesarios para crear una copia de seguridad de Nandroid. Básicamente, está usando dd a través de una tubería con nombre para crear una copia a nivel de bloque de las particiones de su dispositivo, lo que básicamente es una copia de seguridad nandroid .
fuente
Me di cuenta de que (si ya tiene ADB configurado, su teléfono está rooteado y está trabajando en un sistema Linux o similar) es posible volcar el contenido de la partición por una sola línea:
Esto es lo mismo que se describe en el hilo XDA para obtener el contenido bit por bit de la memoria flash, excepto sin el baile con netcat y tuberías (que podría ser necesario o no dependiendo de las circunstancias, supongo). Obviamente, no se debe montar ninguna partición en la memoria flash mientras se copian los datos (es decir, hacerlo desde una recuperación mientras
adb mount
no se enumeran las particiones montadas), de lo contrario, correrá el riesgo de una copia de seguridad inconsistente en lugares en los que Android decidió escribir datos en el tiempo de respaldo.Tenga en cuenta que para restaurar un simple:
no funcionará, ya
adb shell
que no admite tuberías. Pero si de alguna manera puede hacer undd of=/dev/block/mmcblk0
en el dispositivo en sí, supongo que debería restaurar su copia de seguridad. Sin embargo, no confíes en mí en esto, también podría bloquear tu teléfono. No lo he probado todavía; Hasta ahora solo necesitaba recuperar una sola partición ydd
estaba bien para eso.fuente
Settings > Developer> tap build 7 times
)Settings > Developer > USB Debugging
)usar la recuperación para evitar las limitaciones de la raíz del sistema operativo
./adb reboot recovery
hacer el tirón
./adb pull /dev/block/mmcblk0 mmcblk0.img
fuente