adb로 만든 TWRP 백업 추출


10

LineageOS와 TWRP가 장착 된 Samsung Galaxy S2 GT-I9100 스마트 폰이 있습니다. 매주 나는 다음 명령으로 백업을 만듭니다.

adb backup -f twrp-20170322.ab --twrp boot data system

옵션으로 옵션을 사용할 수도 --compress있습니다.

twrp-20170322.abstardard GNU / Linux 명령 줄 도구로 백업 파일 을 추출하는 방법이 있습니까? 필요한 경우 추가 소프트웨어를 설치하는 것도 고려할 것이지만 자유로 워야합니다.

연결:

답변:


1

비밀번호로 보호하지 않은 경우 :

dd if=$1 bs=24 skip=1 | openssl zlib -d >${1%%.ab}.tar
  • dd"Disk Duplicator"(매개 변수 if와 혼동 될 경우 "disk destroyer"라고도 함 of) 및 ;
  • bs=23 24 바이트의 블록 크기를 사용하도록 권장합니다.
  • skip=1 24 바이트의 1 개 블록 건너 뛰기 ( "백업 헤더")
  • 출력 openssl을 처리하고 압축을 풀기 위해 파이프됩니다.
  • 그리고 그 출력은 Tarball로 리디렉션됩니다

거기에서 당신은 당신의 길을 알아야합니다 : 당신이 원하는 것을 단순히 "비추기"(추출)하십시오.

왜 사용 $1합니까? 글쎄, 나는이 줄을 복사했다.이 ab2tar도구 당신이 관심을 가질만한 작은 도구 Adebar에 포함되어 있다 .Bash 만 사용하여 ADB를 통해 멋진 장치 문서, 백업 스크립트 등을 생성한다. 작은 쉘 스크립트를 호출하십시오.

ab2tar twrp-20170322.ab

그런 다음 twrp-20170322.tar결과를 찾으십시오 . 물론 opensslLinux 시스템에 설치해야합니다.


다음과 같은 오류 메시지가 나타납니다. 140376894071512 : 오류 : 29065064 : lib (41) : BIO_ZLIB_READ : zlib 팽창 오류 : c_zlib.c : 548 : zlib 오류 : 데이터 오류
Francesco Turco

본 적이 없습니다. TWRP가 표준 ADB와 다른 압축 방법을 사용하고있을 수 있습니까 (자세한 내용을 찾을 수 없음)? 또는 --compress백업을 만들 때 지정하지 않은 경우 압축되지 않은 백업을 생성합니까? 후자의 경우, zlib매개 변수 를 생략하십시오 (또는 다른 방법으로 --compress백업을 작성할 때 지정 하십시오).
Izzy

나는 dd if = twrp-20170320.ab bs = 24 skip = 1> twrp-20170320.tar (삽입하지 않고 openssl) 로 시도했다 . 그러나 tar -tf twrp-20170320.tar로 tar 아카이브의 내용을 나열하려고하면 다음과 같이 나타납니다. tar : tar 아카이브처럼 보이지 않습니다. tar : 다음 헤더로 건너 뛰기; tar : 이전 오류로 인해 실패 상태로 종료
Francesco Turco

--compress옵션을 사용하지 않는 이유는 다음 과 adb같습니다 xz. 가능한 많은 공간을 절약하고 싶습니다. 그러나 그것은 내 초기 문제와 관련이 없습니다.
Francesco Turco

위에서 설명한 내용은 "정상적인"ADB 백업에서 잘 작동합니다 (저는이를 자주 사용하며 --compress거기서도 사용하지 않습니다 ). 귀하의 진술 ( adb backup …)에서 나는 동일한 형식을 가정했습니다. 다른 압축을 사용하는 경우이를 고려해야합니다. openssl백업을 해독하는 데 필요합니다 .tar. 그렇지 않으면 유효한을 얻을 수 없습니다 . 마지막 의견에서 zlib에 대한 해당 부분으로 교체해야한다고 가정합니다 xz. 그 외에는 아이디어가 없습니다. 죄송합니다.
Izzy

1

TWRP 생성 .ab파일이 일반 adb backup파일과 다르므로 오프셋이 일반 .ab파일 과 다릅니다 . 다음 명령을 사용하여 파일을 검사하고 추출 할 수있었습니다 (예 : 검사).

dd if=backup.ab bs=512 skip=1 | tar ft -

분명히 헤더는 더 길 수 있지만 512 바이트 경계와 정렬되어야하므로 skip=처음에 매개 변수를 찾을 수 없으면 매개 변수를 범프하십시오 .

파일 형식은 twadbstream.h에 정의되어 있습니다.


0

순진한 dd 기반 접근 방식의 문제점은 파일에 종종 메타 데이터가 있다는 것입니다. 이는 상당한 길이의 파일을 손상시킵니다.

twadbstream.h (@anarcat 덕분에)를 사용하여 큰 (~ 10GB) 다중 파일 시스템 TWRP ADB 백업을 성공적으로 복구하는 데 사용하는 추출 도구를 작성했습니다. twrpabx

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.