回答:
同様の不満のために、まさにこの目的のためにいくつかのツールを作成しました:https : //github.com/dlenski/tetherback
これらのツールはPythonで記述されており、adb
nandroidスタイルのバックアップ(からの生のパーティションイメージdd if=/dev/block/mmcblk0pXX
)またはTWRPスタイルのバックアップ(生のパーティションイメージとext4
パーティションのtarballの混合)の作成に使用します。
正しいパーティションレイアウトをプローブし、バックアップの進行状況を表示しようとします。
$ ./twrp_backup.py
Device reports TWRP kernel (3.4.0-bricked-hammerhead-twrp-g7b77eb4).
Reading partition map for mmcblk0 (29 partitions)...
partition map: 100% Time: 0:00:03
Saving TWRP backup images in twrp-backup-2016-03-17--18-53-12/ ...
Saving partition boot (mmcblk0p19), 22 MiB uncompressed...
boot.emmc.win: 100% Time: 0:00:05 3.10 MB/s
Saving tarball of mmcblk0p25 (mounted at /system), 1024 MiB uncompressed...
system.ext4.win: 2% ETA: 0:06:29 2.69 MB/s
これは進行中の作業です。フィードバックは大歓迎です!
要件:
progressbar
パッケージが必要です(pip install progressbar
実行する必要があります)adb
(Android Debug Bridge)コマンドラインツール編集:https://github.com/dlenski/tetherbackへのトラフィックのほとんどはこのスレッドから来ているようです。以下のコメントで説明されているデータ破損に関する初期の問題はすべて解決されました。テザーバックには、破損に対する非常に強力なチェックが含まれるようになりました。
gzip
を変更することで無効にすることができますが、実際にはこれが問題だとは思いません。LinuxまたはWindowsを実行していますか?残念ながら、Windowsでは、adbはCRLF文字をマングルします。つまり、使用している手法を使用してバイナリイメージを送信することはできません。必要に応じて、この回避策を作成できます。
XDA開発者向けのスレッドでは、SDカードを使用せずにnandroidバックアップをコンピューターに直接作成する方法について説明しています。もちろん、ルート化されたデバイスでのみ機能します。その他の要件には、Linux / MacOSなどのPosix OS(WindowsユーザーはCygwinでこれをエミュレートできます)、およびADB(SDK全体、または少なくとも最小インストールのいずれか)が含まれます。さらに、busybox
デバイスで使用可能であり、USBデバッグがアクティブになっている必要があります。
この記事では、Nandroidバックアップの作成に必要なコマンドをステップごとに説明します。基本的に、名前付きパイプを介してddを使用して、デバイスのパーティションのブロックレベルのコピーを作成します。これは、基本的にnandroid バックアップです。
(すでにADBが構成されていて、電話がルート化されており、Linuxシステムなどで作業している場合)単一のワンライナーでパーティションの内容をダンプできることに気付きました:
adb pull /dev/block/mmcblk0
これは、フラッシュメモリのビットごとのコンテンツを取得するためのXDAスレッドで説明されているものと同じです。ただし、netcatとパイプ(状況によって必要な場合とそうでない場合があります)を使用しない場合を除きます。データをコピーしている間、フラッシュメモリにパーティションをマウントしないことは明らかです(つまりadb mount
、マウントされたパーティションをリストせずにリカバリから実行する)。そうしないと、Androidがデータを書き込むことにした場所で一貫性のないバックアップのリスクバックアップの時間。
単純な復元の場合:
pv mmcblk0 | adb shell dd of=/dev/block/mmcblk0
adb shell
配管をサポートしていないため、機能しません。しかしdd of=/dev/block/mmcblk0
、デバイス自体で何らかの方法でできる場合は、バックアップを復元する必要があります。しかし、これについて私を信用しないでください、それはあなたの電話をレンガにするかもしれません。まだテストしていません。これまでのところ、単一のパーティションをリカバリするだけdd
で十分でした。
Settings > Developer> tap build 7 times
)Settings > Developer > USB Debugging
)OSルートの制限を回避するためにリカバリを使用します
./adb reboot recovery
引っ張る
./adb pull /dev/block/mmcblk0 mmcblk0.img