Nandroid를 PC로 직접 백업 한 다음 PC에서 직접 복원하는 방법이 있습니까?


22

휴대 전화에 백업 파일을 저장할 공간이 충분하지 않으므로 Nandroid 백업을 수행하고 PC에 저장된 파일로 복원하는 방법이 있는지 궁금합니다.


1
나는 이것을 할 수있는 방법이 있는지 의심합니다. 외부 SD 카드로 백업 한 다음 컴퓨터로 전송 해보십시오. 또는 충분한 파일을 컴퓨터로 이동하여 전화기에서 백업을 작성 및 복원 한 다음 완료되면 파일을 다시 이동할 수 있습니다.
VarnerBeast14

답변:


14

나는 몇 가지 도구를 작성했습니다 정확히 인해 비슷한 좌절감에,이 목적 : https://github.com/dlenski/tetherback

이 도구는 Python으로 작성되었으며 adbnandroid 스타일 백업 (에서 원시 파티션 이미지 dd if=/dev/block/mmcblk0pXX) 또는 TWRP 스타일 백업 (원시 파티션 이미지와 ext4파티션 용 tarball의 혼합) 을 만드는 데 사용 됩니다 .

올바른 파티션 레이아웃을 검사하고 백업 진행률을 표시합니다.

$ ./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  

이 작업은 진행 중입니다. 피드백은 매우 환영합니다!

요구 사항 :

  • Linux / OSX / Windows에서 Python 3.3 이상
    • progressbar패키지가 필요합니다 ( pip install progressbar해야합니다)
  • adb (Android Debug Bridge) 명령 줄 도구
  • TWRP 복구가 설치된 루팅 된 Android 장치
    • 루팅 된 장치 및 사용자 지정 복구 요구 사항은 사라 지지 않습니다. 루트 액세스 권한이 없으면 장치 메모리의 전체 내용을 간단하게 복사 할 수있는 방법이 없습니다.

편집 : https://github.com/dlenski/tetherback 에 대한 대부분의 트래픽 이이 스레드에서 비롯된 것 같습니다. 아래 주석에 설명 된 데이터 손상과 관련된 초기 문제가 모두 해결되었습니다. 테 더백에는 이제 손상에 대한 매우 강력한 검사가 포함됩니다.


프로그램을 제작 해 주셔서 감사합니다. nandroid.py를 사용할 때마다 system.img.gz 및 userdata.img.gz와 같은 더 큰 파일이 gzip을 압축 해제 할 때 실패하는 것을 제외하고는 잘 작동하는 것 같습니다. "crc failure"는 img.gz 파일 크기의 약 1/5 크기의 img 파일을 생성합니다. 그러나 bootloader.img.gz는 압축이 풀립니다. 어쨌든 gzipping을 비활성화 할 수 있습니까, 아니면 손상된 파일을 수정하는 다른 방법을 알고 있습니까?
I'm_With_Stupid

1
@ I'm_With_Stupid, L46gzip 을 수정하여를 비활성화 할 수는 있지만 이것이 실제로 문제인지 의심합니다. Linux 또는 Windows를 실행 중입니까? 불행히도 Windows에서는 adb가 CRLF 문자를 맹 글링 하므로 사용중인 기술을 사용하여 이진 이미지를 전송할 수 없습니다. 필요한 경우 이에 대한 해결 방법을 작성할 수 있습니다.
Dan

또한 더 자세한 정보를 제공 할 수 있다면 추적하기가 더 쉽기 때문에 Github 저장소에 새로운 이슈로 추가하십시오!
Dan

1
나는 우리가 아마 우리의 대화를 계속해야하므로 새로운 문제로 내 문제를 추가 있습니다 .
I'm_With_Stupid

8

XDA 개발자의 스레드는 sdcard를 사용하지 않고 컴퓨터에 직접 nandroid 백업을 만드는 방법을 설명 합니다 . 물론 루팅 된 기기에서만 작동합니다. 추가 요구 사항에는 Linux / MacOS와 같은 Posix OS (Windows 사용자는 Cygwin을 사용하여이를 에뮬레이트 할 수 있음) 및 ADB (따라서 전체 SDK 또는 최소한의 설치 )가 포함됩니다. 또한 busybox장치에서 사용할 수 있어야하고 USB 디버깅이 활성화되어 있어야합니다 .

이 기사에서는 Nandroid 백업을 만드는 데 필요한 명령을 단계별로 설명합니다. 기본적으로 명명 된 파이프 를 통해 dd 를 사용 하여 장치 파티션의 블록 수준 복사본을 만듭니다 . 기본적으로 입니다.


2
포인터 @Hudayfah에 감사드립니다! 그러나 링크 전용 게시물은 이론적으로 질문에 답변 할 수 있지만 여기에 답변의 필수 부분을 포함하고 참조 용 링크를 제공하는 것이 좋습니다. 그렇지 않으면 링크가 끊어 질 경우 응답이 쓸모 없게됩니다. 이에 따라 게시물이 어떻게 표시 될 수 있는지 보여주기 위해 게시물을 업데이트했습니다. 향후 게시물에 대해 귀하를 도울 것입니다.
Izzy

또한 복구시 fastboot 또는 adb에만 액세스 할 수 있다고 가정하면이 백업을 복원하는 방법은 무엇입니까?
jiggunjer

왜 뿌리를 내립니까?
user4951

2

(ADB가 이미 구성되어 있고 전화가 루팅되어 있고 Linux 시스템 또는 이와 유사한 작업을하고있는 경우) 단일 one-liner로 파티션 내용을 덤프 할 수 있음을 알았습니다.

adb pull /dev/block/mmcblk0

이것은 netcat과 파이프를 사용하지 않고 (환경에 따라 필요할 수도 있고 그렇지 않을 수도 있음) 플래시 메모리의 비트 단위 비트 내용을 얻기 위해 XDA 스레드에서 설명한 것과 같습니다. 분명히 데이터를 복사하는 동안 플래시 메모리의 adb mount파티션을 마운트하지 않아야합니다 (즉 , 마운트 된 파티션을 나열하지 않는 동안 복구에서 수행 ). 그렇지 않으면 Android가 백업 시간.

간단하게 복원하려면 다음을 참고하십시오.

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

adb shell배관을 지원하지 않으므로 작동 하지 않습니다. 그러나 어떻게 든 dd of=/dev/block/mmcblk0장치 자체에서 작업을 수행 할 수 있다면 백업을 복원해야한다고 생각합니다. 그래도 나를 믿지 마십시오. 전화가 깨질 수도 있습니다. 아직 테스트하지 않았습니다. 지금까지 단일 파티션 만 복구하면되었으므로 dd괜찮습니다.


2
  1. 개발자 옵션 표시 ( Settings > Developer> tap build 7 times)
  2. USB 디버깅 사용 ( Settings > Developer > USB Debugging)
  3. OS 루트 제한을 피하기 위해 복구 사용

    ./adb reboot recovery

  4. 당겨

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


이러한 백업을 어떻게 복원합니까?
Suma

ADB 푸시와 @Suma (또는 IMG를 탑재하고 관심의 밖으로의 파일 복사)
user1133275

Android를 통해 내부 스토리지 전체에 쉽게 액세스 할 수 있습니까?
Melab
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.