
Android ADB 백업(ICS+)을 추출하고 재패키징합니다. 암호화된 아카이브, tar 변환 및 표준 I/O를 지원하여 법의학 분석 또는 데이터 복구에 사용할 수 있습니다.
adb backup (ICS+)로 생성된 안드로이드 백업을 추출하고 다시 패키징하는 유틸리티입니다. AOSP의 BackupManagerService.java를 기반으로 합니다.
Java 11이 필요합니다. 암호화된 백업을 처리하려면 JCE 무제한 강도 관할 정책이 필요합니다 (최신 Java 9 릴리스를 사용하는 경우 필요하지 않음).
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
빌드하려면 아래 나열된 도구 중 하나를 사용하거나 사전 빌드된 바이너리(실행 가능한 jar 파일)는 릴리스를 참조하세요.
최신 버전의 Bouncy Castle Provider jar(bcprov-jdk15on-*.jar)를 여기에서 다운로드하세요:
최신 Bouncy Castle jar를 lib/에 넣고 Eclipse에서 가져온 후 필요에 따라 빌드 경로를 조정하세요. abe 스크립트를 사용하여 유틸리티를 시작합니다.
자체 실행 가능한 올인원 jar를 생성하려면:
mvn clean package 그런 다음:
java -jar target/abe.jar pack|unpack|pack-kk ...
번들된 Ant 스크립트를 사용하여 올인원 jar를 생성하고 다음으로 실행하세요: (여전히 Bouncy Castle jar를 lib/에 넣어야 합니다. 그에 따라 bcprov.jar 속성을 수정하세요)
java -jar abe.jar pack|unpack|pack-kk ...
(build.xml 파일을 기여해준 Jan Peter Stotz에게 감사드립니다)
Gradle을 사용하여 올인원 jar를 생성하세요:
./gradlew 그런 다음:
java -jar build/libs/abe-all.jar pack|unpack|pack-kk ...
abe unpack <backup.ab> <backup.tar> [password]abe pack <backup.tar> <backup.ab> [password]abe pack-kk <backup.tar> <backup.ab> [password]
(Android 4.4.3과 호환되는 버전 2 백업을 생성합니다)파일 이름이 -인 경우, 데이터는 표준 입력에서 읽거나 표준 출력에 기록됩니다.
명령줄에서 비밀번호를 지정하지 않으면 환경 변수 ABE_PASSWD가 시도됩니다. 비밀번호를 지정하지 않으면 백업 아카이브는 암호화되지 않고 압축만 됩니다.
allowBackup 플래그가 false로 설정된 앱은 백업도 복원도 되지 않습니다.
adb push 및 adb shell을 통해 수동으로 복원을 시도할 수 있습니다)BackupManagerService를 확인하세요.tar 아카이브를 패킹하는 가장 안전한 방법은 원본 backup.tar 파일에서 파일 목록을 가져오는 것입니다:
tar tf backup.tar | grep -F "com.package.name" > package.list
그런 다음 해당 목록을 사용하여 tar 파일을 빌드합니다. 추출된 백업 디렉토리에서:
tar cf restore.tar -T package.list
이제 restore.tar를 패킹하고 adb restore restore.ab를 시도할 수 있습니다.
릴리스는 master 브랜치에서 Travis CI로 빌드되며 실행 가능한 fat jar를 포함합니다.
바이너리는 본인의 책임 하에 사용하세요. 어떠한 보증이나 지원도 제공되지 않습니다.
백업 추출기 자체의 버그만 보고해 주세요. 백업 또는 tar 파일의 압축 풀기/재패킹에 관한 질문에는 답변할 수 없습니다. (간단한 사용법 안내는 사용법을 참조하세요.)
백업 형식 및 도구 구현에 대한 자세한 내용은 관련 블로그 게시물에서 확인할 수 있습니다.