Nexus 7をroot化する

前々々回のブログで書いたNexus7をroot化しました。
(最初、htc EVO WiMAXのroot化に使っている z4root を試したのですがうまくいきませんでした。ネットの情報にあったSuperSUをインストールしてうまくいきました。)

以下、その手順です。

1. ブートローダのロックを解除する

リカバリパーティション(recovery)にGoogleオリジナルとは別のプログラムrecovery-clockworkを書き込みできるように、ブートローダのロックを解除します。(Googleオリジナルのrecoveryだと、後の4.のステップでSuperSUをインストールする時にverification fail」とかのエラーとなるはずです。確認忘れ。。)

$ adb reboot-bootloader  ← fastbootモードにする (ボリュームアップボタンを押しながら電源ボタンを押してもできる)
 (fastbootモードは電源投入など、デバイス起動時にbootloaderにより実行されるモードです。fastbootモードでは以下の画面が表示されます。)

  

fastbootモードになったら、以下のコマンドを実行します。

$ fastboot oem unlock ←このコマンドを実行するとNexus7の画面に下記のような注意書きとYes/Noを選択するメニューが表示されます

Unlock bootloader?
-------------------
If you unlock the bootloader, you will be able to install custom operating system software on the phone.
A custom OS is not subject to the same testing as the original OS, and can cause your phone and installed applications to stop working properly.
To prevent unauthorized access to your personal data, unlocking the bootloader will also delete all personal data from your phone(a "factory data reset").

Press the Volume Up/Down buttons to select Yes or No. Then press the Power button to continue.

Yes
Unlock bootloader(may void warranty)

No
Do not unlock bootloader and restart phone

表示されたメニューのYesかNoかをボリュームアップ/ダウンボタンで選択できます。
Yesを選択したら電源ボタンを押して確定します。
fastbootコマンドを実行したホスト側の端末画面に以下のメッセージが表示されます。

...
(bootloader) erasing userdata...
(bootloader) erasing userdata done
(bootloader) erasing cache...
(bootloader) erasing cache done
(bootloader) unlocking...
(bootloader) Bootloader is unlocked now.
OKAY [513.413s]
finished. total time: 513.413s

これで工場出荷時の設定になります。

Nexus7の画面はfastbootモードの画面に戻り、右上に[Start]が表示されます。
電源ボタンを押すとAndroidが起動し、購入後の最初の起動時と同じ「Welcome画面」が表示されます。

2. Nexus 7(grouper)用のRecoveryプログラム(recovery-clockwork)をダウンロードし、recoveryパーティションに書き込む
 (Nexus7のrecoveryパーティションは/dev/block/mmcblk0p1です。パーティションについては 前回のブログ 参照。)

ダウンロードURL: http://clockworkmod.com/rommanager
ファイル: recovery-clockwork-6.0.2.3-grouper.img

(fastboot modeにする)
$ fastboot flash recovery recovery-clockwork-6.0.2.3-grouper.img
sending 'recovery' (6528 KB)...
OKAY [ 0.838s]
writing 'recovery'...
OKAY [ 1.941s]
finished. total time: 2.779s

この後、fastbootモードで右上に[Start]が表示された状態で電源ボタンを押してAndroidを起動する

3. root化のプロラムSuperSUをダウンロードして、/sdcardの下にコピーする

ダウンロードURL: http://download.chainfire.eu/298/SuperSU/CWM-SuperSU-v0.99.zip
ファイル: CWM-SuperSU-v0.99.zip

$ adb push CWM-SuperSU-v0.99.zip /sdcard/
780 KB/s (685157 bytes in 0.857s)
$ adb shell ls -l /sdcard/CWM-SuperSU-v0.99.zip
-rw-rw-r-- root sdcard_rw 685157 2013-01-03 19:16 CWM-SuperSU-v0.99.zip

4. fastbootモードでrecovery-clockworkを起動し、SuperSUをインストールする

ブートローダのfastbootモードで、recoveryメニューを選択して"recovery"パーティションに書き込んだrecovery-clockworkを起動する。
(ボリューム アップ/ダウン ボタンで右上の表示[Start]を[Recovery mode]にして、電源ボタンで確定)
以下の順にrecovery-clockworkのメニューを選択していく。(ボリューム アップ/ダウン ボタンで選択。電源ボタンで確定)

  - install zip from sdcard
     ↓
  - choose zip from sdcard
     ↓
  - 0/
     ↓
  - CWM-SuperSU-v0.99.zip
     ↓
  - Yes - Install CWM-SuperSU-v0.99.zip

この後、以下のメッセージが表示されてインストールが開始される。

ClockworkMod Recovery v6.0.2.3

-- Installing: /sdcard/0/CWM-SuperSU-v0.99.zip
Finding update package...
Opening update package...
Installing update...
*****************************
SuperSU installer ZIP
*****************************
- Mounting /system and rootfs
- Removing old files
- Creating space
- Extracting files
- Restoring files
- Setting permissions
- Unmounting /system
- Done !

Install from sdcard complete.

以下の順でメニューを選択し、再起動する。

  - +++++ Go Back+++++
     ↓
  - reboot system now

立ち上がった後、"adb shell"を実行して確認。

$ adb shell
shell@android:/ $ PATH=/data/local/bin:$PATH
shell@android:/ $ ls -l /system/app/Superuser.apk
-rw-r--r--    1 0        0          1020803 Aug  1  2008 /system/app/Superuser.apk
shell@android:/ $ ls -l /system/xbin/su
-rwsr-sr-x    1 0        0            91992 Aug  1  2008 /system/xbin/su
shell@android:/ $ which su
/system/xbin/su
shell@android:/ $ su
shell@android:/ # id  ← rootになっている
uid=0(root) gid=0(root)

SuperSUについての参考URL:

http://forum.xda-developers.com/showthread.php?t=1538053
http://www.getlocalization.com/supersu/