Eu tenho um smartphone Samsung Galaxy S2 GT-I9100 com LineageOS e TWRP. Toda semana eu faço um backup com o seguinte comando:
adb backup -f twrp-20170322.ab --twrp boot data system
Opcionalmente --compress
, também posso usar a opção.
Existe uma maneira de extrair o twrp-20170322.ab
arquivo de backup com as ferramentas padrão de linha de comando GNU / Linux? Também considerarei a instalação de software extra, se necessário, mas ele deve ser gratuito (como em liberdade).
Ligações:
--compress
ao criar o backup, cria backups não compactados? No último caso, tente deixar de fora ozlib
parâmetro (ou faça o contrário e especifique--compress
ao criar o backup;).openssl
). Mas quando tento listar o conteúdo do arquivo tar com tar -tf twrp-20170320.tar, recebo: tar: Isso não se parece com um arquivo tar; tar: pulando para o próximo cabeçalho; tar: Saindo com o status de falha devido a erros anteriores--compress
opçãoadb
: comprime com menos eficiência do quexz
. Prefiro economizar o máximo de espaço possível. Mas isso não está relacionado ao meu problema inicial.--compress
). Pela sua declaração (adb backup …
), assumi o mesmo formato. Se você estiver apenas usando uma compactação diferente, considere isso.openssl
é necessário para descriptografar o backup - portanto, sem isso, você não recebe um válido.tar
. Dos seus últimos comentários, eu suponho que você deve substituirzlib
a parte correspondente porxz
. Além disso, estou sem ideias, desculpe.Descobri que os
.ab
arquivos gerados pelo TWRP são diferentes dosadb backup
arquivos normais , portanto o deslocamento é diferente dos.ab
arquivos normais . Consegui inspecionar e extrair arquivos usando (por exemplo, para inspecionar) o seguinte comando:Aparentemente, o cabeçalho pode ser mais longo, mas deve estar alinhado com os limites de 512 bytes; portanto, basta aumentar o
skip=
parâmetro se ele não conseguir encontrá-lo primeiro.Observe que o formato do arquivo é definido em twadbstream.h , se você precisar aprofundar isso.
fonte
O problema com a abordagem ingênua baseada em dd é que há metadados de vez em quando no arquivo. Isso resulta em corrupção para arquivos de qualquer tamanho significativo.
Eu escrevi uma ferramenta de extração utilizando twadbstream.h (obrigado @anarcat) que usei para recuperar com êxito backups grandes (~ 10GB) de TWRP ADB de vários arquivos do sistema. twrpabx
fonte