Compõe e canaliza um arquivo tar gzipulado de uma só vez

4

Estou tentando criar uma maneira eficaz de criar um arquivo compactado com gzip de várias partições do sistema no Android, canalizando tudo para o stdout, de modo a poder criptografá-lo à medida que ele 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 de 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 essa coisa toda com uma execução de shell adb para que tudo seja transferido via USB, para a memória e rapidamente criptografado e gravado no disco, ou seja, não deixando nenhum rastreio não criptografado.

O problema que estou tendo é que não tenho certeza de como fabricar os componentes internos do script em um arquivo tar.gz composto de vários arquivos / fontes. Basicamente, eu estou olhando para a saída de um arquivo tar.gz de stdout deste script que inclui os seguintes arquivos dentro:

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

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

    
por Naftuli Kay 18.06.2014 / 02:36

2 respostas

1

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

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

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

Portanto, só é possível fazer isso se você puder prever com precisão o tamanho do objeto de arquivo gerado. Se você puder fazer isso, você deve ser capaz de construir um arquivo tar usando, por exemplo, a biblioteca python padrão tarfile módulo.

    
por 18.06.2014 / 04:42
0

Um tópico que você pode querer conferir em Hak5 fóruns mostrará o caminho para um projeto em desenvolvimento que faz uso de mkfifo & outras magias de Bash ... Descobri que, uma vez configurado, ele facilita a criptografia de praticamente qualquer coisa e há ferramentas para descriptografia em massa.

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

Sugestão para tar especificamente, verifique os registos de compilação dos últimos dias e verá que pode ser uma experiência puxar o cabelo se se esquecer de colocar o - à direita ou mexa com v para testes.

    
por 21.11.2016 / 04:13