モノズキット

「やってみたい」を応援するスターターキット

Android 8.0 Oreo のRoot化方法【Pixel編】

Android8.0 (Oreo) のRoot化方法を紹介します。日本語での記事が少なかったので、とりあえず成功例の一つとして参考にしてください。Androidの挙動確認やアプリ解析では、なんだかんだRoot端末は役立ちますよね。

0. 前置き

Android OSのRoot化、特にGoogleスマートフォンに関しては“Nexus Root Toolkit”を使うのがぶっちゃけ一番手軽で確実だと思います(それくらい優秀です)。 

www.wugfresh.com

ですが、まだOS8.0が未対応であることと、サポート端末にPixcelがなかったので、仕方なく手動でのRoot化をすることにしました。NRTkが8.0やPixcelを対応するまでの繋ぎ程度に考えておいてください。

1. 注意事項(というか責任回避)

  • Root化の作業、その後の運用は自己責任です。メーカーの保障も効かなくなります。端末内のデータ破損等もありえますので、心配ならデータのバックアップをしておいてください。
    ※最近はRoot環境の端末で動作を抑制する機能を組み込んだアプリが増えています。Root化したことで、アプリを起動できなくなることもありますのでご注意。
  • 少なくともgoogleアカウントの同期をしておくことをオススメします。失敗して、Factory Imageの焼き直しをすることになっても、アカウントの同期でだいたい元の状態に戻すこともできます。
  • 今回の作業では、外国の記事をだいぶ参考にしました。必要なツールも、そこでリンクを貼られていた場所からの取得です。リンクが切れてしまった場合、ツール名で探してください(あくまでNRTkの繋ぎと考えているので。すみません。。。)。
  • adbコマンドやfastbootコマンドが使える状態。つまり、AndroidSDK(のPlatform-Tools)は事前に入手して使えるようにしておいてください。もし、「adbコマンドってなんぞや」の場合は、まずは、adbコマンドとfastbootコマンドをWindowsコマンドプロンプトから実行できるようにしておいてください。「adb AndroidSDK」や「adbコマンド パス」とかで調べると分かりやすい記事が見つかると思います。

2.作業環境 

作業環境は以下です。

  • Windows10
  • AndroidSDK Platform-Tools:version 25.0.6
  • Google Pixel
    ・AndroidOS:8.0.0
    ・セキュリティパッチ:2017年9月5日
    ・ビルド番号:OPR3.170623.007

3. 作業手順

基本的には以下の手順です。ごく一般的な方法ですが。

  1. 必要なツールを入手
  2. 端末のブートローダーのロックを外す(bootloader unlock)。
  3. 端末内ストレージにSuperSU.zipを保存しておく。
  4. リカバリツールTWRPを導入
  5. TWRPでSuperSUをインストール
  6. SuperSUの起動を確認する
1. まずは必要なツールを入手しましょう。
Downloads

SuperSU Download

SuperSU Config Download

Google Pixel TWRP

Google Nexus5X TWRP

Google Nexus6P TWRP

リンクがあったので、Nexus5XとNexus6PのTWRPも貼っておきます。

今回はSuperSUとそのConfig、Pixcel用のTWRPを用意します。

わかりやすく、“oreo”と名付けたディレクトリにまとめました。

以下ではコマンドプロンプトでの操作を行いますが、基本的にはカレントディレクトリはこの“oreo”だと思っていてください。

f:id:hisato-t05241123:20170921193118j:plain

 2.端末のブートローダーをアンロックしましょう

既にunlock状態の人は読み飛ばしてください。

端末でadbコマンドを受け付けられるように、端末の「USBデバッグ」を有効にします。方法はAndroidディベロッパーサイトに記載されています。

Android Debug Bridge | Android Studio

USB を介して接続されている端末で adb を使用するには、[Developer options] に下にある端末のシステム設定で [USB debugging] を有効にする必要があります。

Android 4.2 以降のバージョンでは、デフォルトで [Developer options] 画面は表示されません。使用できるようにするには、[Settings] > [About phone]で [Build number] を 7 回タップします。設定画面に戻ると、下に [Developer options] が表示されます。

まずはadbコマンドがデバイスを認識しているか確認します。以下のコマンドをコマンドプロンプト上から入力してください。

> C: [oreoまでのディレクトリパス]\oreo >adb devices
List of devices attached
FA6A60316100 device

シリアルナンバーとdeviceが表示されれば問題ありません。

次に、以下のコマンドでブートローダーを起動します。

> C: [oreoまでのディレクトリパス]\oreo >adb reboot bootloader

※もしくは、一度電源を落とし、“電源ボタン”と“音量ボタンの下側(ボリュームダウン)”を同時に長押しでブートローダーが起動します。

この状態で、以下のコマンドでfastbootコマンドがデバイスを認識しているか確認します。

> C: [oreoまでのディレクトリパス]\oreo >fastboot devices
FA6A60316100 fastboot

認識されていましたので、unlockコマンドを実行します。以下を実行してください。

> C: [oreoまでのディレクトリパス]\oreo >fastboot flashing unlock

私の場合、既にunlock状態でしたので、以下のような文言が表示されます。

> C: [oreoまでのディレクトリパス]\oreo >fastboot flashing unlock
...
(bootloader) Device already : unlocked!
OKAY [ 0.090s]
finished. total time: 0.096s

ブートローダーを起動したとき、下の写真のように、“Device is UNLOCKED”となっていればOKです。

f:id:hisato-t05241123:20170921012303j:plain

3. 端末内ストレージにSuperSU.zipを保存する

一旦通常起動します。起動したら、先程の“SuperSU”と“SuperSU Config”を端末内ストレージに保存します。保存先は読み書きできる場所であればどこでも良いはずですが、こういう手法の際にはsdcardに保存することが多いです。

※sdcardとありますが、お店で売っているSDcardではありません。Androidの端末には、予め“sdcard”と名付けられた読み書き自由な内部ストレージが用意されています。

以下のコマンドで先の2つをコピーしてください。

> C: [oreoまでのディレクトリパス]\oreo >adb push SR3-SuperSU-v2.82-SR3-20170813133244.zip /sdcard/
SR3-SuperSU-v2.82-SR3-20170813133244.zip: ...ushed. 10.6 MB/s (6918737 bytes in 0.624s)

> C: [oreoまでのディレクトリパス]\oreo >adb push AROMA-SuperSUConfig-v1.00.zip /sdcard/
AROMA-SuperSUConfig-v1.00.zip: 1 file pushed. 11.3 MB/s (987121 bytes in 0.083s)

この2つが所定の場所にコピーされたか確認しましょう。以下のコマンドでsdcard内のリストを確認できます。

>C: [oreoまでのディレクトリパス]\oreo>adb shell ls -l /sdcard/

total 7828
-rw-rw---- 1 root sdcard_rw 987121 2017-09-20 15:43 AROMA-SuperSUConfig-v1.00.zip
drwxrwx--x 2 root sdcard_rw 4096 2009-01-01 17:00 Alarms
drwxrwx--x 3 root sdcard_rw 4096 2009-01-01 17:00 Android
drwxrwx--x 3 root sdcard_rw 4096 2017-09-01 09:57 AnkuLua
drwxrwx--x 2 root sdcard_rw 4096 2009-01-01 17:00 DCIM
drwxrwx--x 2 root sdcard_rw 4096 2017-09-01 10:06 Download
drwxrwx--x 2 root sdcard_rw 4096 2009-01-01 17:00 Movies
drwxrwx--x 2 root sdcard_rw 4096 2009-01-01 17:00 Music
drwxrwx--x 2 root sdcard_rw 4096 2009-01-01 17:00 Notifications
drwxrwx--x 2 root sdcard_rw 4096 2009-01-01 17:00 Pictures
drwxrwx--x 2 root sdcard_rw 4096 2009-01-01 17:00 Podcasts
drwxrwx--x 2 root sdcard_rw 4096 2009-01-01 17:00 Ringtones
-rw-rw---- 1 root sdcard_rw 6918737 2017-09-20 15:42 SR3-SuperSU-v2.82-SR3-20170813133244.zip

コピーされていることが確認できましたので、次に進みます。

4.TWRPを導入

端末にTWRPを書き込みます。その前に、一度TWRPのファイル名(twrp-3.1.1.0-angler.img)を以下のようにリネームしてください。

twrp-oreo.img

再び端末をリカバリモードにします。要領は先程と同様です。

> C: [oreoまでのディレクトリパス]\oreo >adb reboot bootloader

fastbootコマンドをデバイスが認識していることも確認できたら、以下のコマンドを実行してください。

>C: [oreoまでのディレクトリパス]\oreo>fastboot boot recovery twrp-oreo.img

注意

このコマンドで以下のようなエラーとなる場合があるようです。

>C: [oreoまでのディレクトリパス]\oreo>fastboot boot recovery twrp-oreo.img
cannot load 'recovery': No such file or directory

ネットで調べてみましたが、同様のエラーが出ている人がいました。以下のコマンドで試したところ、上手くいきました。

> C: [oreoまでのディレクトリパス]\oreo>fastboot boot twrp-oreo.img
downloading 'boot.img'...
OKAY [ 0.626s]
booting...
OKAY [ 0.784s]
finished. total time: 1.426s

Linuxに詳しくないので多くを語れませんが、おそらくカレントディレクトリやTWRPイメージを置いている場所が悪いのかなと(見当違いなら誤情報すみません)。

5. TWRPでSuperSUをインストール

上記が成功すれば、TWRPが起動しているかと思います。ここからはTWRP上での操作になります。

TWRPの“Install”ボタンを押します。どれをインストールするか聞かれますので、先程sdcardに保存した、SuperSUConfig.zipを選択します。

f:id:hisato-t05241123:20170921012254j:plain

次に、“Add more Zips”ボタンを押下し、SuperSU.zipをインストールするものに追加します。

f:id:hisato-t05241123:20170921012309j:plain

Reboot after installation is complete」にチェックを入れ、画面下部の[▶▶▶]を右にスワイプして実行させます。

f:id:hisato-t05241123:20170921012346j:plain

SuperSU Conifgが起動すると、下の写真のような選択リストが表示されます。Systemless SBINを選択して、次に進みます。

f:id:hisato-t05241123:20170921012404j:plain

その他に幾つか選択肢が表示されますが、全部Auto-detectで問題ありません。最後まで進みましょう。

f:id:hisato-t05241123:20170921012411j:plain

全て選択し終えると、インストールが始まりますので完了を待ちます。

終わったら、右下のfinishを押します。すると、再起動がかかります。

f:id:hisato-t05241123:20170921012418j:plain

端末の起動が終わりましたら、アプリ一覧を確認しましょう。

無事SuperSUがインストールされていました。

f:id:hisato-t05241123:20170921012423j:plain

6. SuperSUの起動を確認します

root権限で動かせるかどうかは、実際に色々操作すればわかりますが、私が普段Root化できたかを確認する際には、SuperSUのバージョンを取得できるかを確認します。以下のコマンドを実行してみてください。SuperSUのバージョンを取得できれば成功しています。

※この時、スマートフォンの画面に、SuperSUが権限の許可を求める旨のウィンドウが表示されていますので、「許可」を押してください(意外と見落としがちです)。

>adb shell su -v
2.82:SUPERSU

v2.82と表示されましたね。無事にRoot化できたようです。お疲れ様でした。

4. まとめ

Android 8.0をRoot化できました。一つ補足です。今回SuperSU Configを使って細かく設定してからSuperSUをインストールしましたが、たぶんあれ、いらないと思います。

参考にした外国のサイトでも、「念のためSuperSU Configを使います」と書いてありましたので。というか、今までTWRPでSuperSUをそのままインストールできましたし……

 2017/10/17:いりませんでした。TWRPでSuperSUをインストールするだけで同等です。

 

Android 8.0がリリースされてから約1ヶ月。仕事ではまだまだgoogleさんの仕様変更に振り回されている毎日なので、これで調査が進むとうれしいです。

 

ではでは。