답변:
나는 몇 가지 도구를 작성했습니다 정확히 인해 비슷한 좌절감에,이 목적 : https://github.com/dlenski/tetherback
이 도구는 Python으로 작성되었으며 adb
nandroid 스타일 백업 (에서 원시 파티션 이미지 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
이 작업은 진행 중입니다. 피드백은 매우 환영합니다!
요구 사항 :
progressbar
패키지가 필요합니다 ( pip install progressbar
해야합니다)adb
(Android Debug Bridge) 명령 줄 도구편집 : https://github.com/dlenski/tetherback 에 대한 대부분의 트래픽 이이 스레드에서 비롯된 것 같습니다. 아래 주석에 설명 된 데이터 손상과 관련된 초기 문제가 모두 해결되었습니다. 테 더백에는 이제 손상에 대한 매우 강력한 검사가 포함됩니다.
gzip
을 수정하여를 비활성화 할 수는 있지만 이것이 실제로 문제인지 의심합니다. Linux 또는 Windows를 실행 중입니까? 불행히도 Windows에서는 adb가 CRLF 문자를 맹 글링 하므로 사용중인 기술을 사용하여 이진 이미지를 전송할 수 없습니다. 필요한 경우 이에 대한 해결 방법을 작성할 수 있습니다.
XDA 개발자의 스레드는 sdcard를 사용하지 않고 컴퓨터에 직접 nandroid 백업을 만드는 방법을 설명 합니다 . 물론 루팅 된 기기에서만 작동합니다. 추가 요구 사항에는 Linux / MacOS와 같은 Posix OS (Windows 사용자는 Cygwin을 사용하여이를 에뮬레이트 할 수 있음) 및 ADB (따라서 전체 SDK 또는 최소한의 설치 )가 포함됩니다. 또한 busybox
장치에서 사용할 수 있어야하고 USB 디버깅이 활성화되어 있어야합니다 .
이 기사에서는 Nandroid 백업을 만드는 데 필요한 명령을 단계별로 설명합니다. 기본적으로 명명 된 파이프 를 통해 dd 를 사용 하여 장치 파티션의 블록 수준 복사본을 만듭니다 . 기본적으로 nandroid 백업 입니다.
(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
괜찮습니다.
Settings > Developer> tap build 7 times
)Settings > Developer > USB Debugging
)OS 루트 제한을 피하기 위해 복구 사용
./adb reboot recovery
당겨
./adb pull /dev/block/mmcblk0 mmcblk0.img