Galaxy Nexus Root Toolkit 8(Boot,Flash)

2012-03-24

Android IT Nexus

Galaxy Nexus Root Toolkit 7(Driverインストール2)の続き。

Galaxy Nexus Root ToolkitでのBootやFlashの使い方。

関連記事
  1. Galaxy Nexus Root Toolkit 5(ドコモROMバックアップ)
  2. Galaxy Nexus Root Toolkit 6(Root化)
参考情報
  1. Galaxy Nexus(SC-04D)をCWM(ClockWorkMod) Recoveryで起動してROM全体をバックアップする方法。
  2. Galaxy Nexus(SC-04D)で直接CWM(ClockWorkMod)recoveryを起動する方法(fastboot flash recovery recovery-clockwork-5.5.0.2-maguro.img)。
  3. Galaxy Nexus(SC-04D)に導入(flash)したCWM(ClockWorkMod)Recoveryをドコモ純正のリカバリに戻す方法。
root化の過程で、bootは端末のROM(flash)には焼かずにPCのデータ(img)を端末で起動すること、flashは端末のROM(flash)にPCのデータ(img)を焼いて起動することぐらいの理解で進めた。
その後、バックアップをリストアしたりしていた時に起こったことと、それから気付いたことをまとめる。

自己責任でお願いします。

適当にやったこと。
  1. 端末でbootloaderを起動(ボリューム上下ボタン+電源長押し)し、ドコモROMにリストア。
  2. root化後のバックアップにリストアしようと思って、(1と同様に)端末でbootloaderを起動後、Recovery modeを選択。
  3. 再起動後、Recoveryが立ち上がるかと思いきや、おなかに!マークがついて横たわるドロイド君がいた。(後で調べたのだが、ドコモ純正リカバリらしい。参考情報3参照)
    初期状態に戻したのだから当然か。電池リセットで起動。
  4. Galaxy Nexus Root Toolkitから"recovery-clockwork-5.5.0.2-maguro.img"を起動して、root化後のバックアップにリストア。
  5. 端末でbootloaderを起動後、Recovery modeを選択。Root化後の状態だから、Recoveryが立ち上がると思っていたのだが、3と同じ。
  6. よくわからないが、"recovery-clockwork-5.5.0.2-maguro.img"をflashすればいいのだろうと思って、Toolkitで、flashを選択後、Bootボタンをクリック、recovery~maguro.imgを選んで実行した。Bootボタンをクリックしたのは、bootのときもそうしたから。これが間違いだった。
  7. 起動したが、…ちょっと記憶があいまい。たぶん、Recoveryが立ち上がって、通常の起動はしない。
  8. Recoveryは立ち上がったので、root化後のバックアップをリカバリ。通常の起動はするようになったが、5を試すと同じ。
確認した事。

2度ほど同じようなことを繰り返して、まじめに考えた。
  • bootとかflashとかは、fastbootコマンドの引数。
  • bootでバックアップのときのコマンドは(参考情報1より)、
    fastboot boot recovery-clockwork-5.5.0.2-maguro.img
  • flashで焼くときのコマンドは(参考情報2より)、
    fastboot flash recovery recovery-clockwork-5.5.0.2-maguro.img
bootとflashが違うだけと思っていたが、よく見るとflashの方には"recovery"という引数が入っている。 fastbootのhelpがでないかと思って、コマンドプロンプトを開いて確認。

  \Wugs_GnexRootToolkit\data>fastboot /?
usage: fastboot [ <option> ] <command>

commands:
  update <filename>                        reflash device from update.zip
  flashall                                 flash boot + recovery + system
  flash <partition> [ <filename> ]         write a file to a flash partition
  erase <partition>                        erase a flash partition
  getvar <variable>                        display a bootloader variable
  boot <kernel> [ <ramdisk> ]              download and boot kernel
  flash:raw boot <kernel> [ <ramdisk> ]    create bootimage and flash it
  devices                                  list all connected devices
  reboot                                   reboot device normally
  reboot-bootloader                        reboot device into bootloader

options:
  -w                                       erase userdata and cache
  -s <serial number>                       specify device serial number
  -p <product>                             specify product name
  -c <cmdline>                             override kernel commandline
  -i <vendor id>                           specify a custom USB vendor id
  -b <base_addr>                           specify a custom kernel base address
  -n <page size>                           specify the nand page size. default:
2048

なるほど、bootの引数はkernelで、flashの引数は、partitionか。よくわからん。

Toolkitを確認。
  • Toolkitで端末をつながず、Bootを選んでBootボタンをクリック、"recovery~maguro.img"を選択。
    img_Boot.bat by WugFreshと出ている。img_Boot.batを確認。
    fastboot boot "%imgpick%"を実行している。%imgpick%はimg_pick.batで設定されていそう。
    img_pick.batを見ると、更新日時が"今"になっている。
    中身には、recovery~maguro.imgのフルパスが書いてある。
  • 同様に、Flashを選んでBootボタンをクリック、"recovery~maguro.img"を選択。
    img_Flash.bat by WugFreshと出ている。img_Flash.batを確認。
    fastboot flash %flashtype% "%imgpick%"を実行している。
    img_pick.batが書き換わっており、imgpickは同上、flashtype=bootになっている。
  • 同様に、Flashを選んでRecoveryボタンをクリック、" recovery~maguro.img"を選択。
    同上だが、flashtype=recoveryになっている。
  • Bootloader、Radio/Basband、System、Userdataも同様。(Radio/Basband はradio)
ToolkitのBoot/Flash Imageのところは、fastbootの引数そのままということだ。 ここまでみて、やっとflashというのは焼くところが複数あって(partition)それを選んで焼くということが分かった。bootloaderとRecoveryが混乱していた上に、RecoveryとRestoreも混乱していた。
  • bootloaderは、通常起動かRecoveryを起動するかを選ぶもの。
  • ROMに焼くものも、通常起動用とRecovery用は別のものを別に焼く。
  • bootのときはとにかくそのimgを起動するので、partitionを指定する必要はない。
ということのようだ。この記事の最初のほうの6で実行したことは、"fastboot flash boot recovery-clockwork-5.5.0.2-maguro.img"を実行したということなので、boot partitionにrecoveryを焼いていたということ。通常起動しなくなるわけだ。かなり危険な事をしていたみたい。文鎮化しなかったのはラッキーだった気がする。

Recoveryのflash(上記あたりを解明する前に実施)
Root化したときには、その過程で、Recoveryをflashに焼いていた事を思い出した。
端末をつながずに、Rootボタンを押してみる。root.batを実行している。root.batを確認。最初の方で、
"fastboot flash recovery %cwm%"
を実行している。%cwm%はcwm_type.batの中で定義され、"CDMA/LTEかGSM/HSPA+かのトグルで決まっていそう。GSMの場合は、recovery-clockwork-5.5.0.2-maguro.imgが定義されている。これで焼けそう。
端末をつないで、関連記事2の1-a~eを実施。
端末でbootloaderを起動し、Recoveryを選ぶと、Recoveryが起動できた。
めでたしめでたし。

実施はしてないが、
Flashを選んでRecoveryボタンをクリックする
のが正しいやり方だろう。

Galaxy Nexus Root Toolkit 9(アプリの一括バックアップとリストア)に続く。