Componha e canalize um arquivo tar compactado de uma só vez

Componha e canalize um arquivo tar compactado de uma só vez

Estou tentando encontrar uma maneira eficaz de criar um arquivo compactado de várias partições do sistema no Android, canalizando tudo para stdout para poder criptografá-lo conforme aparece via gpg.

O fluxo de trabalho é assim:

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

O script shell precisa basicamente fazer isso:

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

No entanto, como visto, eu gostaria de fazer tudo isso em uma execução de shell adb para que tudo seja transferido via USB, para a memória, e rapidamente seja criptografado e depois gravado no disco, ou seja, sem deixar rastros não criptografados.

O problema que estou tendo é que não tenho certeza de como fabricar a parte interna do script em um arquivo tar.gz composto de vários arquivos/fontes. Basicamente, estou procurando gerar um arquivo tar.gz do stdout deste script que inclui os seguintes arquivos:

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

Existe alguma maneira de fazer isso? Não encontrei um problema como esse em minhas viagens até agora.

Responder1

Supondo que você queira usar tar para criar um arquivo e enviá-lo para saída padrão, é o que acontece por padrão se você não usar a fopção de enviar a saída para um arquivo:

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

Se o problema for arquivar "arquivos" que na verdade não existem no sistema de arquivos, isso é um pouco mais complicado por causa do formato dos arquivos tar: cada arquivo éprecedidopor um cabeçalho que inclui o tamanho do arquivo. O tamanho do arquivo no cabeçalho deve estar correto porque é a única maneira de tarsaber onde começa a próxima entrada do cabeçalho.

Portanto, só é viável fazer isso se você puder prever com precisão o tamanho do objeto de arquivo gerado. Se você puder fazer isso, poderá construir um arquivo tar usando, por exemplo, a biblioteca python padrãoarquivo tarifáriomódulo.

Responder2

Um tópico que você pode querer verificarHak5os fóruns mostrarão o caminho para um projeto em andamento que faz uso de mkfifooutras mágicas do Bash ... Descobri que, uma vez configurado, ele facilita a criptografia de quase tudo e há ferramentas para descriptografia em massa.

Prof está no pudim entãoTravis-CIé usado atualmente para mostrar todos os recursos de trabalho, incluindo a recuperação de strings de teste, arquivos e diretórios. Isso foi testado no Android com Busybox e chroot Linux, mas você pode precisar apenas do busybox (se a rotação de saída para email estiver desabilitada) porque a maior parte do código-fonte é projetada em torno de sistemas limitados.

Dica tarespecífica: verifique os logs de compilação dos últimos dias e você descobrirá que pode ser umpuxões de cabeloexperimente se você esquecer de colocar o rastro -ou mexer vpara testar.

informação relacionada