Nexus Sのroot取得 その3 (suとSuperUser.apkのインストール)

clockworkMod Recoveryの導入によりインストールされるはずだったsuとSuperUser.apkだが、何故か上手くいかない。少し調べてみたが、私だけではないようだ。

I did fastboot oem unlock jsut fine, wiped my phone. flashed clockworkmod just fine. boot up phone, turned off, went back to recovery, flashed su-2.3.6.1-ef-signed (is this the right one?) that flashed fine.
boot phone back up, i see no superuser app/icon?
Now what?
I tried downloading superuser app from market, doesn't work.
[GUIDE] Root and Recovery for the Nexus S - Page 6 - xda-developers

スマートフォンの通販で有名なビザビさんのBlog「京都室町通信」でも同様の顛末が書かれている。(@adakodaさん情報ありがとうございます)
【Nexus S】rootをとった途端にアップデータがきたでござるの巻 - 京都室町通信

どうやらOTA後のBuild GRH78は最初に紹介された方法では上手くいかないようだ。しかし解決方法はそれほど面倒ではなく、総合するとupdateイメージで更新できないならsuとSuperUser.apkを個別にインストールしてしまえばいいじゃない、ということらしい。

やり方は複数があるが、私はclockworkMod Recoveryを使うことにした。
clockworkMod Recoveryだが「mounts and storage」という機能があり、これは同リカバリ実行中に任意のディレクトリをマウントできる。マウントされた/systemは書込可能なので、ここにsuとSuperUser.apkをプッシュしてやれば良いのだ。※1


以下その手順だが、準備として前回使ったsu-2.3.6.1-ef-signed.zipを解凍してsuとSuperUser.apkを個々のファイルにしておく。

※お約束だがこれらの作業を実施してNexus Sが文鎮になったとしても(特に/system下の扱い如何によっては簡単に起動しなくなる)私は一切感知しないし、質問も受け付けない。※

  • clockworkMod Recoveryで/systemをマウントする

前回のエントリより、clockworkMod Recoveryを起動して※2PCとNexus Sを接続したままで
clockworkMod Recovery menuから「mounts and storage」を選択

Mounts and Storage Menu から「mount /system」を選択

この状態でPC側からシェルを起動して/systemがマウントされているかを確認しておく。(/sdcardは最初からマウントされている)

clockworkMod Recovery起動時のシェルはこのように先頭にチルダが表示されるので区別できる。

※1 つまりはclockworkMod Recoveryを起動した時点でrootだということだ。
※2 せっかく便利なrecoveryを使用しているのだからこの段階でROMイメージバックアップしておく。(/sdcard/clockworkMod/backupに日付毎に全てのROMイメージが保存される)

  • suとSuperUser.apkをコピーする

あとは簡単。準備しておいたsuとSuperUser.apkを、それぞれ /system/binと/system/appにプッシュしてやるだけだ。

 > adb push su /system/bin/
 > adb push SuperUser.apk /system/app/
 > adb shell 
  ~ # cd /system/bin
  ~ # chmod 6775 su

フォントを入れ替えたい場合(私がそうだ)はこの作業手順の中にフォントのプッシュも追加すると楽できる。

さあ、あとはリブートするだけだ。(mountされている/systemのunmountは忘れずに)

ブート後は何でも良いのでルート権限が必要なアプリケーションを起動して、以下のようにSuperUser.apkによるsuブロードキャストインテント(リクエスト)を捕捉する画面が表示されれば成功だ。

これにてやっとNexus Sに完全移行となったのでTitaniumbackupで全てのアプリケーションをローカルにバックアップしてDropBoxと同期した。
Android端末はPCと違いバックアップさえあれば比較的簡単に短時間に元の状態に戻せるのが良いところだ。