一度に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試してみてください。

関連情報