한 번에 gzip으로 압축된 tar 아카이브 작성 및 전송

한 번에 gzip으로 압축된 tar 아카이브 작성 및 전송

저는 Android의 다양한 시스템 파티션에 대한 gzip 압축 아카이브를 생성하고 gpg.

작업 흐름은 다음과 같습니다.

adb shell "/data/dobackup.sh" | gpg --output suchbackup.tar.gz.gpg --encrypt --sign --recipient [email protected]

쉘 스크립트는 기본적으로 다음을 수행해야 합니다:

cat /dev/block/platform/msm_sdcc.1/by-name/recovery > recovery.img
cat /dev/block/platform/msm_sdcc.1/by-name/system > system.img
...

그러나 보시다시피 adb 쉘 실행을 통해 모든 작업을 수행하여 모든 것이 USB를 통해 메모리로 전송되고 신속하게 암호화된 다음 디스크에 기록되도록(즉, 암호화되지 않은 흔적을 남기지 않고) 싶습니다.

내가 겪고 있는 문제는 스크립트의 내부 구조를 여러 파일/소스로 구성된 tar.gz 파일로 만드는 방법을 잘 모르겠다는 것입니다. 기본적으로 이 스크립트의 stdout에서 다음 파일이 포함된 tar.gz 파일을 출력하려고 합니다.

/recovery.img
/system.img
/userdata.img
/cache.img
/...

내가 할 수 있는 방법이 있나요? 지금까지 여행하면서 그런 문제는 겪어본 적이 없습니다.

답변1

ftar를 사용하여 아카이브를 생성하고 이를 표준 출력으로 보내려고 한다고 가정합니다 . 출력을 파일로 보내는 옵션을 사용하지 않으면 기본적으로 다음과 같은 일이 발생합니다 .

tar cz /{recovery,system,userdata,cache}.img | ...

파일 시스템에 실제로 존재하지 않는 "파일"을 아카이브하는 것이 문제인 경우 tar 파일의 형식으로 인해 이는 약간 더 까다롭습니다. 각 파일은 다음과 같습니다.전에파일 크기 헤더를 포함합니다. 헤더의 파일 크기는 tar다음 헤더 항목이 시작되는 위치를 알아야 하는 유일한 방법이므로 정확해야 합니다.

따라서 이는 결과 파일 객체의 크기를 정확하게 예측할 수 있는 경우에만 가능합니다. 이렇게 할 수 있다면 표준 Python 라이브러리 등을 사용하여 tar 파일을 빌드할 수 있어야 합니다.압축된 패키지 파일기준 치수.

답변2

검토하고 싶은 주제해킹 5포럼에서는 개발 중인 프로젝트가 어떻게 사용되는지 mkfifo와 기타 Bash 마법이 어떻게 사용되는지 보여줄 것입니다. 일단 설정되면 거의 모든 것을 쉽게 암호화할 수 있으며 일괄 해독을 위한 도구가 있다는 것을 알게 되었습니다.

교수님이 푸딩 안에 계시니까트래비스-CI현재 테스트 문자열, 파일 및 디렉터리 복구를 포함한 모든 작업 기능을 표시하는 데 사용됩니다. 이는 Busybox 및 chroot Linux를 사용하여 Android에서 테스트되었지만 대부분의 소스 코드가 제한된 시스템을 중심으로 설계되었으므로 busybox만 필요할 수 있습니다(이메일로의 출력 회전이 비활성화된 경우).

구체적인 팁 tar, 지난 며칠 동안의 빌드 로그를 확인하면 그럴 수 있음을 알 수 있습니다.머리카락 당기기-테스트를 위해 테일게이트를 설치 하거나 엉망으로 만드는 것을 잊어버린 경우 v시도해 보세요.

관련 정보