Nexus7のroot化

スポンサーリンク

昨日まででNexus7のホームとかアプリの導入までをひと通りやったわけですが、root化もいっちょやってやるかと思い立ちやってみました。以下作業メモです。

お約束

本メモの内容は無保証です。ブートローダのアンロック及びroot取得はメーカーのサポート外の作業となります。くれぐれもroot取得作業は自己責任で。

そもそもAndroidのroot化とは何か。

ざっくりと以下のサイトに簡単な説明があります。
Linuxをはじめよう!:Androidのroot化の仕組み/Root kitの製作方法 part1

というわけでAndroid端末のroot取得とは次の3ステップです。(上記サイトより引用)

  • exploitとかを突いて一時的にrootを取得
  • /systemをrwでリマウント
  • rootを恒久化するsuとSuperuser.apkを導入

要は、suするためのコマンド、アプリを普段書き込むことができない/systemに配置するわけですね。ただし、メーカーによってはsuがあったら消すとかの対策モジュールが組み込まれてるので端末によってはroot取得が無理とかが発生するわけです。

Nexus7の場合、root取得の作業をほぼ自動で行えるツールが配布されているので今回はそれを利用します。

ツールキットの選択

Nexus7のツールキットは現在以下の2種類があります。

  1. Nexus Root Toolkit
  2. Google Nexus 7 Toolkit

(1)はGUIベース、(2)はCUIベースのツールのようです。できることはほぼ一緒のようで好きな方を使えばいいやんとなりますが、今回はボタンをホイホイ押すだけでできるGUIベースの(1)を使います。

ちなみに、問題はないのか見てみると、サイトの下の方にこんな記述がありました。

Important notice – For users having problems rooting 4.1.2:

  • Most users reported no difficulties rooting their 4.1.2 builds with the toolkit (just by selecting the correct android build/version in the pull down menu and pressing the root button) ? however if you are having problems try this solution: http://forum.xda-developers.com/showpost.php?p=32789382&postcount=1199
  • I am not sure why it works for some users without doing this and for others this is needed. Hopefully I will figure it out soon so I can roll out a fix in v1.5.5.
  • It seems that the issue may be related to USB 3.0 ports ? consider trying a USB 2.0 port instead.

とりあえずUSB3.0を使わなければ大丈夫、でしょう。多分。

root取得でやる作業

ツールを使って次の2つの作業を行います。とは言っても基本的にツールの指示に従うだけです。

  1. ブートローダのアンロック
  2. root取得

実施環境

以下の環境で実施しました。

PC
Windows7 x64
Nexus7
Android 4.1.2(ビルド番号JZO54K)
ツールキット
Nexus Root Toolkit v1.5.4

ツールキットのインストール

ツールキットをダウンロードし、インストールします。途中でどの端末を使うんだと聞いてくるので該当の端末を選択し適用します。


インストールが終わればツールキットが起動します。

Nexus7の設定の確認

Nexus7の設定より次の設定を行います。

  1. USBデバッグをオン
  2. PCとの接続モードをPTPにする
USBデバッグをオン

設定 -> 開発者向けオプション
を開き、全体を有効にしたあとUSBデバッグをオンにします。

PTPモード

設定 -> ストレージ -> 右上のメニュー -> USBでパソコンに接続

を開き、PTPモードにスイッチします。

ちなみに、MTPとPTPとありますが、MTPとPTPとはここによると、MTPはMedia Transfer Protocolの略でいわゆるマスストレージ、PTPはPicture Transfer Protocolの略でカメラとして認識させるモードとのことです。なんでAndroid2.0から微妙に言い方を変えてるんや…

ドライバのインストール

toolkitのInitial Setupよりドライバをインストールします。このドライバはAndroidの開発を行うときに入れるドライバそのものですね。基本的に画面の指示にしたがってやるだけですが、ドライバのインストールを確実にやるために既存のドライバは予め全部消しといてねと言われます。

デバイスドライバの起動やUSBデバイスの一覧&ドライバのアンインストールをツールキットから行えるのでやっておくとよいでしょう。ドライバのインストールが終わるとNexus7はAndroid ADB Interfaceという名前でデバイスドライバからは見えるようになります。

ちなみに、コマンドadb devicesやDDMSからも端末が見えるようになってるはずです。まぁ当たり前といえば当たり前なんですけど…

アプリのバックアップをとる

次の作業であるブートローダのアンロックを行うとNexus7は工場出荷状態まで戻されます。したがって後の環境構築を楽にするためにバックアップをとっておきます。これもtoolkitのbackupからできます。

ただ、僕の場合、全てのアプリのバックアップをとったつもりだったんですけどroot取得後にリストアしたら結構な数のアプリがバックアップが取れていませんでした。なんでだろ…

ブートローダのアンロック

ツールキットのUnlockから実施します。前述の通りNexus7が工場出荷前に状態が戻りますので注意です。基本的にボタンを押して待っているだけですが、途中でNexus7側の操作が必要になります。


こんな画面が出てきてUnlockしてもいいですか?と聞いてきます。もう戻れません!もちろんUnlockなのでカーソルをYesにして電源ボタンを押します。

暫く待つとNexus7が初期化され開封時の設定を行うように指示されます。これでアンロックは完了です。次のroot取得のためにひとまずホーム画面を出すところまで設定します。

ルート取得

続いてroot取得を実施します。ここもRootボタンを押してしばらく待つだけです。なお、カスタムのリカバリーツールを導入する場合はCustom Recoveryのチェックをオンにします。このバージョンのツールキットではTWRP(TeamWIN Recovery Project)が入るようです。

ちなみに僕はこのチェックボックスのオンを入れずにやってリカバリツールを入れずにルート化してしまったんですが、再度オンにしてリカバリツールを導入しています。

無事にroot取得が終わると、ドロワーにいくつかアプリが追加されています。重要なのは次の2つです。

SuperSU
suアクセスの管理ツール。起動して有効化します。
BusyBox Free
いわゆるcoreutilsです。起動して各種コマンドを導入しておきます。

これででroot取得作業は完了です。

アプリのリストア

ここまで作業が行えたらあとはアプリをリストアするだけです。Restoreボタンを押してさっきとったバックアップから戻してあげましょう。これで全ての作業は終了です。

で、どうする

これでカスタムROMの導入やrootが必要なアプリを導入することができます。また、すぐに戻せるように現在利用しているイメージをまるごとバックアップしておくとよいでしょう。その際、Nexus7は内蔵メモリしかないのでバックアップイメージはPCに残しておくと良いかもしれません。一つのイメージが大体1G程度いくようですし…