Android 5.0搭載の端末をroot化する方法



試したのは、`Nexus7(2013)`ですが、他の端末にも対応したスクリプトがありますので、適時読み替えてください。私の場合、一度、Android 5.0 にダウングレードしてから、`CF-Auto-Root`を試してみたという経緯があります。ダウングレードの方法もアップデートと同じ感じです。その後、Android 5.0.2にアップデート後も`CF-Auto-Root`が入りましたので、問題無いと思われます。5.0.2出できない場合は、一度、ダウングレードしてみてください。

なお、Androidのルート化は、ブートローダーアンロックした時点で保証対象外となります。また、起動しなくなるなどの危険が伴いますので、注意して自己責任で行ってください。

##Android 5.0.2 (LRX22G)へのアップデート

[Factory Images for Nexus Devices](https://developers.google.com/android/nexus/images)

~~~bash:
adb reboot-bootloader
fastboot flash boot boot.img
fastboot erase system
fastboot flash system system.img
fastboot reboot
~~~

ちなみに、解凍ファイルは以下のようになっています。この場合、中にある`image-razor-lrx21p.zip`も解凍することになり、当該ディレクトリの最下層で上のコマンドを実行することになります。

~~~bash:
.
├── bootloader-flo-flo-04.04.img
├── flash-all.bat
├── flash-all.sh
├── flash-base.sh
├── image-razor-lrx21p
│   ├── android-info.txt
│   ├── boot.img
│   ├── cache.img
│   ├── recovery.img
│   ├── system.img
│   └── userdata.img
└── image-razor-lrx21p.zip
1 directory, 11 files
~~~


##CF-Auto-Rootの実行

root化のためのスクリプトです。ただし、スクリプトの中身がブートローダーアンロックするであろうものがありますので注意してください。ブートローダーアンロックは、既に済の場合は必要なしであると思われます。初期化されるかもしれませんので注意です。

[CF-Auto-Root](http://autoroot.chainfire.eu/)

私は、Nexus7(2013-Wifi)を使っていますので、以下になります。

[CF-Auto-Root-flo-razor-nexus7.zip](http://download.chainfire.eu/347/CF-Root/CF-Auto-Root/CF-Auto-Root-flo-razor-nexus7.zip)

~~~bash:
adb reboot-bootloader
chmod +x root-mac.sh 
./root-mac.sh 
~~~


windowsの方は、`root-windows.bat`を、Linuxの方は、`root-linux.sh`を実行します。



##TWRPのインストール

カスタムリカバリです。

[TWRP2.8](http://teamw.in/project/twrp2)

~~~bash:
adb reboot-bootloader
fastboot flash recovery twrp.img
fastboot boot twrp.img
~~~

##clockworkの場合はこちら

カスタムリカバリです。

[http://www.clockworkmod.com/rommanager](http://www.clockworkmod.com/rommanager)

~~~bash:
adb reboot-bootloader
fastboot flash recovery clockwork.img
fastboot boot clockwork.img
~~~

##実行環境

私の場合は、一度、Android 5.0 にダウングレードしてから、`CF-Auto-Root`を試してみたという経緯があります。ダウングレードの方法もアップデートと同じ感じです。

[Factory Images for Nexus Devices](https://developers.google.com/android/nexus/images)

~~~bash:
adb reboot-bootloader
fastboot flash boot boot.img
fastboot erase system
fastboot flash system system.img
fastboot reboot
fastboot flash recovery twrp.img
~~~

ダウングレードして、root化を確認。

その後、5.0.2でも`CF-Auto-Root`によるroot化を確認しました。

##その他の情報

###リカバリの書き換え

Android5.0系を積んだNexus7は、カスタムリカバリを入れても、デフォルトのイメージに書き換えられるみたいで、SuperSUもインストール出来ません。

書き換えられる直前にTWRPを使い、SuperSUをインストールしようとするも、インストールできず。ちなみに、リカバリ領域の書き換えは、Android起動後に行われる模様。管理者権限を要求されるので、当然ながらroot化しないと削除できない。

~~~bash:
abd shell ls /system/recovery-from-boot.bak
adb shell
mount
#mount -o rw,remount /dev/block/mtdblock0 /system
mount -o rw,remount /system
~~~

###アップデート、ダウングレードの仕組み

Androidの仕組みは、Linuxユーザーにとっては非常に簡単で、理解しやすいものとなっています。

その一つに、アップデート、ダウングレードの仕組みがあります。

具体的には、以下のファイルからデバイスごとに、バージョンファイルをダウンロード、解凍し、以下のコマンドを実行するだけでした。Nexus7系しか確認しておらず。この場合、ユーザーデータも削除されますので、注意してください!!!

[https://developers.google.com/android/nexus/images](https://developers.google.com/android/nexus/images)

```bash:
# Android端末が接続できる状態かを確認する
$ adb device

# PCとつないで、端末でブートローダーを起動する
$ adb reboot-bootloader

# ブートローダーアンロック(既に済の場合は必要なし),初期化されるので注意!!
$ fastboot oem unlock

# 解凍したフォルダに移動
$ cd razor-lrx21p

# スクリプトの実行
$ ./flash-all.sh
```

なお、個別に実行する場合は、以下のような感じになります。

```bash:
# リカバリモード
$ fastboot flash recovery recovery.img 

# ブートローダー
$ fastboot flash boot boot.img

# システム
$ fastboot erase system
```

###supersuの実行

通常は、`twrp`を導入し、`supersu.zip`を`/sdcard`にコピー。twrpでインストールすれば、導入可能かと思われます。

ブートローダー、リカバリモードと進み、[twrp](http://techerrata.com/browse/twrp2/flo)をインストール。(Nexus7-2013の場合)

```bash:
$ adb reboot-bootloader

# リカバリモードにtwrpを採用
$ fastboot flash recovery openrecovery-twrp-2.8.5.0-flo.img

# リカバリモードに移行
$ fastboot boot openrecovery-twrp-2.8.5.0-flo.img
```

メニューでリカバリモードを選択。

```bash:
# Installから実行する場合
$ adb push UPDATE-SuperSU-v2.46.zip /sdcard/
```

###復旧

復旧方法を書いておきます。

出荷時のAndroidバージョンに戻すには、端末を起動し、ブートローダー、リカバリーモードを選択。「apple update from ADB」を選択。PCで以下のコマンドを実行。

```bash:
$ cd razor-lrx21p

$ ./flash-all.sh
```

動きが止まると思うので、`電源ボタン+ボリュームダウン」を長押して終了する。そして、再起動すると、fastbootモードに入ってから、アップデートが実行され、再起動する。

###便利コマンド


~~~bash:
# リカバリモードへ
$ adb reboot recovery

# Androidを起動
$ adb reboot

# Androidを起動
$ fastboot reboot

# リカバリモードへ
$ fastboot boot twrp.img
~~~

###合わせて読みたい記事

[Nexus7のAndroid5.0.2アップデートとroot化](http://qiita.com/syui/items/f6c34f05560cb8f715ee)

[Linux on Android](http://qiita.com/syui/items/538e091d4060c0e3952d)

[Nexus7 App まとめ](http://syui.github.io/blog/2014/06/03/android/)