web-dev-qa-db-ja.com

PCにAndroidパーティションのイメージを作成する方法

バックアップを作成しようとしています(私の携帯電話の内蔵メモリカードのパーティションの直接ddイメージを私のPCに作成しています。Linuxを使用していて、私の携帯電話はNexus 4です。

11
hongo

ここで別のより良い答え:

要件:adbは既にインストールされている必要があります。

  1. 安全でないboot.imgをPCにダウンロード https://www.androidfilehost.com/?fid=9390169635556426389
  2. スマートフォンの電源を切り、音量小ボタンと電源ボタンを押し続けることで、スマートフォンをfastbootモードで再起動します。
  3. Linux PCで、boot.imgが配置されているフォルダーに次のように入力します。

    $ fastboot boot boot.img
    
  4. Mmcblk0パーティションタイプのイメージをコピーするには:

    $ adb pull /dev/block/mmcblk0 mmcblk0.img
    
6
hongo

編集: 本郷の答え は、ステップが少なくなっています。

  1. インストール [〜#〜] twrp [〜#〜]

    TWRPページでデバイスを選択し、そこにあるインストール手順に従います。
  2. 起動して回復

    ブートローダーメニューに反応するために、デバイスに固有のキーの組み合わせを見つける必要がある場合があります。 fastboot(_fastboot flash recovery twrp.img_)を使用してTWRPをフラッシュした場合は、_fastboot reboot-bootloader_を試してから、Recoveryを選択できます。
  3. TWRPにパーティションをマウントする

    これで、TWRPに入るはずです。そこから、「マウント」を選択します。 dataパーティションがマウントされていることを確認してください。 systemパーティションがマウントされていることを確認してください。そこにある実行可能ファイルがいくつか必要になります。
  4. 接続adb

    Install adb まだインストールしていない場合。 USBケーブルで電話をコンピュータに接続します。 _adb devices_と入力します。デバイスがリストされている場合は、接続されています。
  5. ポートを転送する_adb forward tcp:33333 tcp:33333_

    TCP電話へのアクセスを有効にする必要があります。このコマンドは、コンピューターのポート33333(最初の引数)をリッスンし、すべての接続を電話のポート33333に転送します。任意のポートを選択します。PCの1024未満のポートにはルートアクセスが必要です。選択するポートがまだ使用されていないことを確認してください。2つの番号が一致する必要はありません。
  6. バックアップするパーティションを特定します_adb Shell mount_

    バックアップするパーティションを見つけて、デバイス名を取得します。 [[〜#〜] edit [〜#〜]:バックアップする必要があるパーティションが_/dev/block/dm-0_のように見える場合、それは論理ボリューム(LVM)、これはおそらくそれをバックアップする正しい方法ではありません]
  7. スマートフォンからrawパーティションを転送します

    • _adb Shell_
    • _dd if=/dev/block/dm-0 bs=64k | gzip | nc -l -p 33333_ [.____をお試しください。]
      • この_/dev/block/dm-0_は、前にマウントコマンドで見つけたデバイスと一緒です。
      • _33333_を上記で選択した電話ポートに置き換えます
      • コマンドが見つからない場合は、先頭に_/system/bin/toybox_または_/system/bin/busybox_を付加してみてください。
      • このコマンドブロックは、指定されたデバイス(_if=_)からコピーし、64kのブロックサイズを使用して(_bs=64k_-任意を指定するか、この引数を完全に省略できますが、値が小さいとプロセスが遅くなる可能性があります。64kより大きい値は、通常、プロセスを高速化しません)、これをstdoutにダンプします。これは、gzipにパイプされて圧縮され、次に、ポートで(_-l_)をリッスンしているnetcatにパイプされます。 33333(_-p 33333_)。
  8. コンピューター上のデータをダンプする

    • 新しい端末から_nc localhost 33333 | pv -i 0.5 --size 54g > dm-0.raw.gz_ を実行します
      • _33333_を上記で選択したコンピューターポートに置き換えます
      • _dm-0.raw.gz_を任意のファイル名に置き換えます
      • _54g_をパーティションのサイズに置き換えます(以下を参照)
      • このコマンドは、ローカルホスト(コンピューター)のポート_33333_に接続し、stdoutにダンプし、pvにパイプして、転送の進捗状況を0.5秒ごとに更新します(_-i 0.5_)推定サイズが54ギグ(_--size 54g_-この引数は省略できますが、転送の進行状況が正確であることが必要です)、次に_dm-0.raw.gz_という名前のファイルに
5
Codebling
  1. Android-platform-tools またはAndroid-sdkをコンピュータにインストールします。

  2. ダウンロード [〜#〜] twrp [〜#〜]

  3. 音量を下げるボタンと音量を上げるボタンを押したまま携帯電話の電源を入れて、ブートローダー画面を起動します。スマートフォンがパソコンのUSBポートに接続されていることを確認します。

  4. fastboot boot twrp-3.1.0.0.imgを実行してTWRPを起動します。 (この方法でリカバリパーティションをフラッシュする必要はありません。)

  5. TWRPで、[詳細]、[ターミナル]の順に選択して、シェルを開きます。 mountと入力し、[ENTER]を押してパーティションを表示します。 /dataマウントと、場合によっては/sdcardマウントを探しています。

  6. /dataパーティションが/dev/mmcblk0p28にマップされているとしましょう。コンピュータでadb pull /dev/block/mmcblk0p28 data.imgを実行するだけで、パーティションがコピーされます。格納されているファイルの数に関係なく、パーティション全体をコピーしているので、このプロセスにはしばらく時間がかかると考えてください。

5
ngreen

要件:adbは既にインストールされている必要があります。

  1. 安全でないboot.imgをPCにダウンロード https://www.androidfilehost.com/?fid=9390169635556426389
  2. スマートフォンの電源を切り、音量小ボタンと電源ボタンを押し続けることで、スマートフォンをfastbootモードで再起動します。
  3. Linux PCで、boot.imgが配置されているフォルダーに次のように入力します。

    $ fastboot boot boot.img
    
  4. Mmcblk0p23パーティションタイプのイメージを作成するには:

    $ adb Shell 'stty raw && dd if=/dev/block/mmcblk0p23' > ~/userdata.img
    

役立つリンク:

  • 関心のあるパーティションを特定する方法: http://forum.xda-developers.com/showthread.php?t=2450045

  • Stty rawを使用しない場合、LFはCRLFに翻訳されます:Android.stackexchange.com/questions/69434/is-it-possible-to-cat-a-file-to-an -Android-phone-and-dd-to-dev-xxx-on-the-fly-w

  • 電話をルート化して安全でないboot.imgを使用する方法:www.addictivetips.com/Android/root-google-nexus-4-install-clockworkmod-recovery/

  • ADBシェルを介したバイナリデータの転送(stty rawの使用方法):stackoverflow.com/questions/11689511/transferring-binary-data-over-adb-Shell-ie-fast-file-transfer-using-tar

4
hongo