한 번에 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
...

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

내가 겪고 있는 문제는 스크립트의 내부를 여러 파일/소스로 구성된 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 파일을 생성할 수 있어야 합니다.tar 파일기준 치수.

답변2

결제하고 싶은 스레드학5포럼에서는 기타 Bash 마법을 사용하는 작업 중인 프로젝트에 대한 방법을 보여줄 것입니다 mkfifo... 일단 설정하면 거의 모든 것을 쉽게 암호화할 수 있고 대량 암호 해독을 위한 도구가 있다는 것을 발견했습니다.

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

힌트tar , 지난 며칠 동안의 빌드 로그를 확인해보세요.머리카락을 당기는테스트를 위해 후행 -또는 혼란을 넣는 것을 잊어버린 경우 경험해 보십시오 v.

관련 정보