NandroidをPCに直接バックアップし、PCから直接復元する方法はありますか?


22

私の電話にはバックアップファイルを保存するのに十分なスペースがないので、PCに保存されたファイルでNandroidのバックアップと復元を行う方法があるのだろうかと思います。


1
これを行う方法はないと思います。外部SDカードにバックアップしてから、コンピューターに転送してみてください。または、十分なファイルをコンピューターに移動して、電話でバックアップを作成および復元し、完了したらファイルを戻すことができます。
-VarnerBeast14

回答:


14

同様の不満のために、まさにこの目的のためいくつかのツールを作成しました:https : //github.com/dlenski/tetherback

これらのツールはPythonで記述されており、adbnandroidスタイルのバックアップ(からの生のパーティションイメージ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  

これは進行中の作業です。フィードバックは大歓迎です!

要件:

  • Linux / OSX / WindowsでのPython 3.3以降。
    • progressbarパッケージが必要です(pip install progressbar実行する必要があります)
  • adb (Android Debug Bridge)コマンドラインツール
  • TWRPリカバリがインストールされたルート化されたAndroidデバイス。
    • ルート化されたデバイスとカスタムリカバリの要件はなくなりません。ルートアクセス権がない場合、デバイスのメモリの内容全体をコピーする手段はありません。

編集:https://github.com/dlenski/tetherbackへのトラフィックのほとんどはこのスレッドから来ているようです。以下のコメントで説明されているデータ破損に関する初期の問題はすべて解決されました。テザーバックには、破損に対する非常に強力なチェックが含まれるようになりました。


最初にプログラムを作成してくれてありがとう。nandroid.pyを使用するときは常に、system.img.gzやuserdata.img.gzなどの大きなファイルがgzipの解凍時に失敗することを除いて、うまく機能しているようです。「crcは失敗」し、img.gzファイルのサイズの約1/5のimgファイルを生成します。ただし、bootloader.img.gzは正常に解凍されます。とにかく、gzipを無効にできるか、破損したファイルを修正する別の方法を知っていますか?
I'm_With_Stupid

1
@ I'm_With_Stupid、L46gzipを変更することで無効にすることができますが、実際にはこれが問題だとは思いません。LinuxまたはWindowsを実行していますか?残念ながら、Windowsでは、adbはCRLF文字をマングルします。つまり、使用している手法を使用してバイナリイメージを送信することはできません。必要に応じて、この回避策を作成できます。
ダン

また、詳細を提供できる場合は、Githubリポジトリに新しい問題として追加してください。追跡しやすくなります。
ダン

1
私は自分の問題を新しい問題として追加したので、おそらくそこで会話を続けるべきです。
I'm_With_Stupid

8

XDA開発者向けのスレッドでは、SDカードを使用せずにnandroidバックアップをコンピューターに直接作成する方法について説明しています。もちろん、ルート化されたデバイスでのみ機能します。その他の要件には、Linux / MacOSなどのPosix OS(WindowsユーザーはCygwinでこれをエミュレートできます)、およびADB(SDK全体、または少なくとも最小インストールのいずれか)が含まれます。さらに、busyboxデバイスで使用可能であり、USBデバッグがアクティブになっている必要があります。

この記事では、Nandroidバックアップの作成に必要なコマンドをステップごとに説明します。基本的に、名前付きパイプを介してddを使用して、デバイスのパーティションのブロックレベルのコピーを作成します。これは、基本的にです。


2
ポインタをありがとう、@ Hudayfah!リンクのみの記事は、理論的に質問に答えることながらしかし、望ましいだろう、ここでの回答の要部を含み、および参照のためのリンクを提供します。そうしないと、リンクが切れた場合に答えが役に立たなくなります。それに応じてあなたの投稿を更新し、将来の投稿に関してあなたを助けるために、それがどのように見えるかを示しました(あなたが願っています:)私たちのコミュニティへの暖かい歓迎が含まれています!
イジー

また、fastbootまたはadbのリカバリのみにアクセスできると仮定して、このバックアップをどのように復元しますか?
ジグガンジャー

なぜそれは根づかなければならないのですか?
user4951

2

(すでに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で十分でした。


2
  1. 開発者向けオプションを表示(Settings > Developer> tap build 7 times
  2. USBデバッグを有効にする(Settings > Developer > USB Debugging
  3. OSルートの制限を回避するためにリカバリを使用します

    ./adb reboot recovery

  4. 引っ張る

    ./adb pull /dev/block/mmcblk0 mmcblk0.img


そのようなバックアップをどのように復元しますか?
須磨

@Sumaとadbプッシュ(またはimgをマウントして目的のファイルをコピー)
-user1133275

Androidを使用すると、内部ストレージ全体に簡単にアクセスできますか?
Melab
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.