ツイート Share on Tumblr
  編集 最終更新のRSS

Top > ZakkiCho > MotoxDumping
Table of Contents

Moto X リテール(T-Mobile)版の「ファクトリイメージ」をダンプした時の手順を書いておく。 要件を満たせれば他機種にも応用できるだろう。

ちなみに、ブートローダモードからの

fastboot boot <カスタムリカバリイメージファイル名>

が使える端末ではこんな面倒なことをする必要はない。

参照ページ

  1. [Moto X]exploitによるrooting
  2. Moto Xのカスタムリカバリ: [RECOVERY] Unofficial CWM Recovery for Moto X -- Unlocked Bootloader Only!
  3. Moto XのCWM(unofficial): Unofficial CWM Recovery with f2fs support - for unlocked Bootloader

要件

  1. 端末のブートローダアンロックができること
  2. 端末をブートローダアンロックによらずにrootingする方法が存在していること。
  3. 端末のカスタムリカバリイメージ(リカバリ起動中にadbが使えること。これ必須)が入手できること。
  4. 対象端末と母艦PCに対応したUSBドライバ(adb/fastboot用)

ダウンロード

  1. Moto Xのカスタムリカバリイメージ(unofficial CWM)

情報集め

  1. 端末で開発者メニューを有効にする(Settings > About > Build Number を連続(7回だったか)タップ)。
  2. 端末の開発者メニューからUSBデバッグを有効にする。
  3. 端末で
    ls -l /dev/block/platform/*/by-name/recovery
    を実行する(*の部分は端末により異なる)。
  4. このrecoveryファイルはブロックデバイスへのシンボリックリンクになっているので、そのリンク先をメモしておく。 Moto Xの場合は次のようになる。
    /dev/block/mmcblk0p34
  5. 端末で
    ls -l /dev/block/platform/*/by-name/
    を実行する(*の部分は端末により異なる)。
  6. 表示されるリストをどこかに保存しておく。

Stockリカバリイメージの取得

後の手順でカスタムリカバリで上書きされる前にstock(標準)のリカバリイメージを取得する。

  1. まずブートローダアンロックによらずにrootingをおこなう。Moto Xでは参照ページ1の方法で。
  2. 端末でスーパーユーザになるために、端末で次のコマンドを実行する(初回は端末の画面で確認を求められるので承認する)。
    su
  3. リカバリイメージをダンプするために、端末で次のコマンドを実行
    dd if=/dev/block/mmcblk0p34 of=/sdcard/recovery.img bs=1048576
    if=のあとには上記でメモしたrecoveryファイルのリンク先のブロックデバイス名を指定。bsはあまり小さくすると時間がかかる。
  4. ダンプしたリカバリイメージを母艦PCに退避するため、母艦PCとUSB接続し、母艦PCから次のコマンドを実行。
    adb pull /sdcard/recovery.img .

端末のファクトリリセット

  1. 端末の電源を落とし、ブートローダモードを起動。Moto Xでは voldown + power の長押し後、先にpowerを離す。
  2. リカバリを起動。Moto Xでは、ブートローダモードメニューでvoldownを何回か押してrecoveryを選択状態にしたあと、 volupを押すと起動する。
  3. リカバリメニューを表示。Moto Xではドロイド君腹パカ画像が表示されるので、volup + power を短押しで表示される。
  4. リカバリメニューから wipe data/factory resetを選択実行(volup/voldownで選択、powerで実行)。
  5. 確認を求められるので、yesを選択実行。
  6. ファクトリリセットが始まる。私のMoto Xでは数十秒で終わった。

カスタムリカバリの導入

初期状態のイメージをダンプするために、端末を起動しないでカスタムリカバリを導入する。

  1. ブートローダモードを起動。 Moto Xでは、前節に引き続き、リカバリメニューの reboot system now が選択された状態で voldown + power を押す。
  2. 母艦PCとUSB接続し、母艦PCで次のコマンドを実行。
    fastboot flash recovery <カスタムリカバリイメージファイル名>
  3. リカバリイメージが書き込まれたら、ブートローダモードメニューの Recovery を選択実行。
  4. カスタムリカバリが起動する。

各パーティションのイメージの取得

  1. 母艦PCから次のコマンドを実行(40はMoto Xの場合で、一般には端末の種類によって異なる)。
    • DOS窓の場合
      for /L %i in (1,1,40) do adb shell cat /dev/block/mmcblk0p%i >p%i.img
    • Cygwinの場合
      for i in `seq 1 40`; do adb shell cat /dev/block/mmcblk0p%i >p%i.img; done

なお、ダンプした「ファクトリイメージ」を公開することは一般には著作権の侵害等につながると思われるので注意。

(2014-01-04)

おまけ

端末の /dev/block/plathome/*/by-name/ からパーティション名を取得してそこにあるパーティションを全部(デフォルトではuserdataとcacheは除外してあります)母艦PCにダンプするBourneシェルスクリプトです。ダンプ結果は、カレントディレクトリの<パーティション名>.imgというファイルに格納されます。adbdの動くカスタムリカバリを起動した端末、あるいはUSBデバッグ有効にしたrootedな端末を、母艦PCにUSB接続した状態で実行してください。母艦PCがWindowsの場合はCygwinが必要です。このスクリプトはパブリックドメインに置くことにします。

#!/bin/sh

adbx() {
  adb "$@" | sed 's/\r\r*$//'
}

if [ `adbx shell id -u` -eq 0 ]; then
  sucmd=''
elif [ `adbx shell which su` = '' ]; then
  echo "$0: Unable to dump: There are neither rooted adbx nor su command.">&2
else
  sucmd='su -c'
fi

partdir='/dev/block/platform/*/by-name'
partls=`adbx shell ls -d "$partdir"`
if [ `echo "$partls" | wc -l` -eq 1 ]; then
  for partition in `adbx shell ls "$partdir"`; do
    if [ "$partition" = userdata ]; then continue; fi
    if [ "$partition" = cache ]; then continue; fi
    echo $partition:
    adb shell $sucmd "cat $partls/$partition" >"$partition".img
  done
else
  echo "$0: The partition-name directory is anbiguous as following. Please work manually. ">&2
  adbx shell ls -ld "$partdir"
fi

(2014-01-05)

Tag: Motorola Moto X XT1053 ghost T-Mobile Google Android JerryBeans rooting ブートローダアンロック パーティション ダンプ バックアップ ファクトリイメージ




 

4G 6909HFJ 7 Pro Amazon Android Apple Apple ID Basic認証 C6833 CID Crespo Docomo Dream Droid 3 Droid 4 Droid Bionic Elini Eng hboot Engineering hboot Evo 3D Exynos Flashtool G Flex G1 Galaxy Galaxy Nexus Galaxy Note Galaxy Note 3 Galaxy S Galaxy S II Wimax Galaxy S2 Galaxy S3 Galaxy S4 Galaxy Tab GingerBread Gold Google HT03A HTC HTC J HTC J Butterfly HTC J butterfly HTC J one HTL21 HTL22 HTL23 Herring ICS ISW11M ISW11SC ISW12HT ISW13HT IceCreamSandwich IdeaPad J Butterfly JerryBean JerryBeans Jolla KB2387149 KB2813347 KB947821 KDDI Kindle Fire KitKat LG LGE LGL23 LTE Lenovo Lollipop MID MZ604 Magic Maguro Mahimahi Mango Microsoft ModelID MotoFail Motorola N1 Nexus One Nexus S Nodo Nokia OTA Optimus Chat PHP Passion Photon PukiWiki ROM RSD RUU Razr Razr Maxx SC01C SC03E SC05D SCL22 SIMロック解除 SO01F SO02F SO03C SOFF SOL23 Sailfish Samsung Sapphire Shooter_K Soju Sony Sony Mobile SonyEricsson Sunfire SuperCID Superuser.apk System Updates TMobile TWRP Tango Trout Tuna U150 Verizon WP7.0 WP7.8 Windows Windows Phone 7 Windows Server 2008 R2 Windows Update XT862 XT894 Xperia Xperia Z Ultra Xperia Z1 Xperia Z1f Xperia ray Yakju about adb au blaze bootloader fastboot forzando ftf iOS iTunes iTunes Store installrecovery.sh logwrapper m7_wlj nandroid odin qwerty recovery recovery.bin rooting xoom xrea アップデート エラー キーアサイン グレーアウト スクリーンショット フラッシュ ブート ブートローダアンロック プロフィール リカバリ 不具合 内部ストレージ 分解 見えない