2012-11-21

Galaxy Nexus SC-04DにAndroid 4.2を入れる

追記:
2013年5月9日、ドコモ純正4.2の配信が始まりました
ベースバンド(radio)は SC04DOMLE3 のままのようなので、他のROMを使っている場合は、特に頑張ってドコモROMに戻すメリットはなさそうです。
Android 4.2が必要になったのだけれど、今のところ正規に4.2が載るのはNexus 7だけ。しかたない買ってくるか……と思った矢先、そういえばウチにはGalaxy Nexus(ドコモSC-04D)がいることを思い出しました。
ちょうどGoogleからGalaxy Nexus用に4.2のファクトリーイメージ(純正ROMイメージ)がリリースされたので、導入してみます。

SC-04DはNEXUSブランドを冠するGoogleリファレンス機ですので、セキュリティホールを突いたりしなくても標準で色々できる仕様になっています。

Bootloader Unlock

ブートローダーをアンロックすることで、自由にOSを入れ替えられるようになります。
(代わりにドコモの保証を失います。覚悟の上で)

PCにドライバーを導入
  1. PC Android SDKを導入しておく(まだSC-04Dはつながない)
  2. SC-04D ブートローダー起動(電源オフ状態から、音量の上下ボタンを同時押ししつつ電源ボタンも押す)
  3. PC SC-04D USB接続
  4. PC デバイス マネージャーの「ほかのデバイス」→「Android 1.0」が黄色の[!]になってるので、右クリック→「ドライバーソフトウェアの更新」(「不明なデバイス」の場合は「ハードウェア変更のスキャン」を押したりPCや端末を再起動してみたり)
  5. PC インストールするドライバーとして android-sdk-windows\extras\google\usb_driver\android_winusb.inf を指定(※下記註も参照)
  6. PC デバイス マネージャー上で「Android Device」-「Android ADB Interface」が表示されればOK
(※註)認識されないときは android_winusb.inf の [Google.NTx86] に次のように追記するといいかも。
; Galaxy Nexus SC-04D
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E30
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4E30 
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E30&REV_0100
VIDとかPIDの値は、デバイス マネージャーの「詳細」タブ→プロパティ(P)→「ハードウェアID」で表示されるものを入力します。
ブートローダーをアンロック
  1. PC コマンドプロンプトから fastboot oem unlock
  2. SC-04D 「Unlock bootloader?」と警告が表示されるので「Yes」を選ぶ(音量上下ボタンで移動、電源ボタンで決定)
  3. PC SC-04D コマンドプロンプトに「finished.」と表示され、端末上も「LOCK STATE - UNLOCKED」と赤字で表示されたら成功
  4. SC-04D いったん通常起動(そうしないと後でフラッシュメモリのマウントに失敗するらしい)
fastboot.exe は android-sdk-windows\platform-tools か tools にあるみたいですが、Android SDKのバージョンによっては同梱されてないという話も。

バックアップ(ClockworkMod Recovery)

OSの入れ替えは危険な作業です。万が一の場合に元に戻せるよう、バックアップを取っておきます。
バックアップにはClockworkMod(CWM) Recoveryというソフトを使うとお手軽。
CWM Recoveryでバックアップ
  1. PC ClockworkMod公式サイトから「Google Galaxy Nexus (GSM)」用のイメージをダウンロード(2種類あって「touch」のほうがタップで操作できてラクですがお好きなほうを)
  2. SC-04D ブートローダー起動
  3. PC fastboot boot recovery-clockwork-touch-6.0.1.5-maguro.img
  4. SC-04D (念のため)wipe data/factory reset
  5. SC-04D backup and restore→backup
  6. SC-04D Backup complete!と表示されたら完了
fastboot bootはブートイメージをフラッシュメモリに焼かずに起動するので気軽に作業できます。
バックアップファイルをPCにコピー
  1. PC adb pull /sdcard/clockworkmod/backup .
  2. PC md5sum -c nandroid.md5(チェックサムを照合)

バックアップ(ベースバンド等)

CWM Recoveryではバックアップできない領域を手動でバックアップします。
ベースバンド(radio)とIMEI等(efs)の領域をバックアップ
  1. SC-04D CWM Recovery起動
  2. PC
    > adb shell (※suしなくても最初からrootになってます)
    # cd /dev/block/platform/omap/omap_hsmmc.0/by-name
    # dd if=radio of=/sdcard/radio.img bs=4096
    # dd if=efs of=/sdcard/efs.img bs=4096
  3. PC これらのファイルをPCにコピー
SC-04Dには物理SDカードは挿さらず、/sdcard の実体もフラッシュメモリ上にあります。あとで4.2を入れる際にこの仮想SDカードの内容は初期化されて消えてなくなるため、バックアップファイルは必ずPCにコピーしておきます。

ドコモ純正の最新版にアップデート

ベースバンドを更新したいので、まずは純正のアップデートを行ないます。
ドコモ純正の最新版にアップデート
  1. SC-04D 通常起動して、Wi-Fi通信を可能に
  2. SC-04D アップデートデータを自動取得したというメッセージが表示される
  3. PC SC-04D アップデートファイルは /cache/*.update_yakjusc_*_to_*.zip なのでコレクションしたい人は保存しておく
  4. PC SC-04D アップデートが済んだら適宜バックアップ
※いまの最新版は4.1.1(Jelly Bean)ですが、ベースバンドは1つ前の4.0.4のときから変わっていません(バージョンSC04DOMLE3)。

Google版4.2を導入

いよいよ4.2を導入です。
4.2のファクトリーイメージを導入
  1. PC GoogleのFactory Images for Nexus Devicesから「Factory Images "yakju" for Galaxy Nexus "maguro" (GSM/HSPA+)」の4.2をダウンロード(247MBありました)
  2. SC-04D ブートローダー起動
  3. PC ダウンロードしたファイル内の flash-all.bat を実行
バックアップに延々時間をかけてきましたが、アップデートはコマンド一発なのでした。
ただし、上の方法だと端末は完全に置き換わります。すなわち、
  • ユーザーデータ領域・SDカード(擬似)が初期化されます(PCにコピーしてなかったClockworkModのバックアップデータ等も消えるのでご注意を)
  • ブートローダーが PRIMELC03 になります(ドコモ版4.1.1とは同じバージョンです)
  • ベースバンドが国際版になります
それでは困るという場合は、flash-all.bat の中身を見て適宜処理を省いたりバックアップから書き戻したりしてください。

4.2の開発者向けオプションはどこに?

4.2に上げて真っ先に戸惑うのは、[設定]から[開発者向けオプション]が消えていること。[端末情報]に入って、[ビルド番号]を7回タップすると出現します。

0 件のコメント:

コメントを投稿