ニュース

Nexus端末のroot化と暗号化解除(Nexus 6P/Nexus 5Xなど)

Nexus 6P/Nexus 5Xなど、最近のNexus端末のroot化・暗号化解除の方法についてです。

最近のNexus端末(Nexus 6PやNexus 5X、Nexus 6、Nexus 9など)などは工場出荷時からストレージが暗号化されており、従来のNexus端末とは扱いが多少異なります。
また、Android 6.0のroot化は従来よりも難しくなっており、手順が異なります。

具体的なroot化・暗号化解除の方法など一通り説明します。

root化と暗号化されたストレージ

※初めに、「Android端末(Nexus)のroot化・カスタムROMの導入と更新」を参照することをおすすめします。

最近のNexus端末(Nexus 6PやNexus 5X、Nexus 6、Nexus 9など)は、セキュリティの観点から出荷時点でストレージの暗号化が強制されており、解除することができません。
暗号化により、画面ロックを設定している場合は第3者がデータに一切アクセスできなくなるため、安全性が確保されます。

その一方、カスタムリカバリからもストレージ(/data)にアクセスすることができなくなったり(TWRP 2.8.7.1以降はアクセス可能)、端末の動作速度が低下するといった問題が発生します。
この暗号化は、カーネルにより強制されているため、カーネルを変更しないかぎり解除することはできません

※暗号化による速度低下はユーザーが体感できるほどではない(ベンチマークテストで若干変わる?)という指摘もあります。
デフォルトで暗号化されており解除できない
また、Android 6.0ではroot化も難しくなっており、今のところは従来のようにカスタムリカバリからroot化ファイルを導入するだけでroot化できず、カーネルの変更が必要になっています

root化と暗号化解除の手順

前述の通り、標準ROMのroot化と暗号化解除を行うためにはカーネルの書き換えが必要です。

また、暗号化についてはカーネルの書き換えだけではなく、ストレージのフォーマットが必要になることに注意が必要です。

これは、カーネルを書き換えて暗号化の強制を解除しても、既に暗号化されたファイルがあるからです。暗号化されたファイルを全て消去するためにフォーマットを行います。

具体的な流れは以下の通りです。
  1. 暗号化解除&root化対応カーネルを導入
  2. root化ファイル(SuperSUのzip)を導入してroot化
  3. 暗号化を解除
なお、本来は1のカーネル導入後、2のroot化ファイル導入が必要ですが、現在はそれらを同時に行うファイル(自動でカーネルを書き換え&root化)があります。今回はそちらを利用します。

また、3の「暗号化を解除」は必須ではありません。セキュリティが気になるという方は、暗号化状態のままroot化を行うことが可能です。

暗号化したままでもroot化やカスタムROMの導入を行うことができるため、必要でなければ暗号化解除は行わなくても問題ありません。

端末を購入し、初めてroot化・暗号化解除を行う場合

今回は、端末を購入してきてから初めてroot化・暗号化解除を行う場合を一通り説明します。
既に、BootloaderをUnlockしている場合などは必要な作業のみ(下の2や4、5)を行って下さい。
  1. BootloaderのUnlock
  2. 必要なファイルの転送
  3. カスタムリカバリ(TWRP)の起動と現在のROMのバックアップ
  4. カスタムリカバリ(TWRP)でroot化&強制暗号化解除ファイルを導入
  5. 暗号化の解除
なお、以下の例では「Nexus 6P(Android 6.0.1 MMB29M)」、カスタムリカバリはTWRPを使用しています。

※今回紹介する方法では、まだ開発段階のベータ版ファイルを使用しています。今後のアップデートによって手順が変更される場合があります。ダウンロード先の注意等をよく確認して実行して下さい。

BootloaderのUnlock

※この作業によって、端末のデータが全て消去されます。あらかじめ、必要なデータのバックアップを取っておいて下さい。

基本的にはこちらの記事に従って進めていきます。
あらかじめ、Android SDKAndroid Bootloader Interfaceドライバのインストールが必要です。
  1. OS起動中に設定アプリを開いて「端末情報」を開き、「ビルド番号」を7回連続タップして「開発者オプション」を表示させる。
  2. 設定アプリの「開発者オプション」を開き、「OEMロック解除」にチェックを入れる。
  3. 端末の電源を完全に切る。
  4. 「音量-」ボタンと「電源」ボタンを同時に押して、Bootloaderを起動する。
  5. PCでコマンドプロンプトを開き「fastboot flashing unlock」と入力し、「Enter」キーを押して実行する。
    ※Nexus 5Xやその他のNexus端末では「fastboot oem unlock」と入力
  6. 端末の画面に「Unlock Bootloader?」と表示されるので、「音量+/-」ボタンを使って「Yes」を選択し、「電源」ボタンを押す。
  7. Unlock処理が実行され、画面の下部に「Device is UNLOCKED.」を表示されていることを確認する。
  8. そのまま「電源」ボタンを押し、端末を起動させる。

必要なファイルの転送

端末が初期化されて起動するので、初期設定を進めます。(Googleアカウントの入力やロックの設定はしないで下さい)
初期設定が終了し、完全に起動したらPCと接続して必要なファイルを端末のストレージに移動します。

今回使用するのは以下のファイルです。
  • root化&強制暗号化解除用カーネル自動書き換えファイル
    こちらの3番目の投稿の「Downloads」から最新のものをダウンロードしてください。
    こちらのページに移動されました。
    ※今回は、「BETA-SuperSU-v2.65-20151226141550.zip」を使用

カスタムリカバリ(TWRP)の起動と現在のROMのバックアップ

カスタムリカバリ(TWRP)を起動し、現在のROMのバックアップを行います。
リカバリを起動してから一旦ワイプし、まっさらな状態のバックアップを取ります。

初めに、こちらから使用している端末向けのカスタムリカバリをダウンロードしておいて下さい。
※Nexus 6Pはこちら。今回は「twrp-2.8.7.2-angler.img」を使用。

TWRPの基本的な使い方はこちらの記事を参照して下さい。
  1. 端末の電源を完全に切る。
  2. 「音量-」ボタンと「電源」ボタンを同時に押して、Bootloaderを起動する。
  3. 端末とPCをUSB接続し、コマンドプロンプトに「fastboot boot 」と入力する。
    ※最後の半角スペースを忘れないで下さい。
  4. ダウンロードしたリカバリファイルをコマンドプロンプト上にドラッグアンドドロップする。
  5. 「fastboot boot (リカバリファイルのパス名)」となっていることを確認し、「Enter」キーを押して実行する。
  6. 端末でカスタムリカバリが起動し、このような画面が表示されるので「Read Only」をタップする。
    ※表示されない場合はそのまま進めて問題ありません。
  7. TWRPのメニューが表示されるので、「Wipe」をタップする。
  8. 下のバーを左から右にスワイプする。
  9. Wipeが完了したことを確認し、下のホームボタンをタップする。
  10. TWRPのメニューに戻るので、「Backup」をタップする。
  11. 「Boot」「System」「Vendor」「Data」「Cache」「Recovery」「EFS」にチェックを入れ、下のバーを左から右にスワイプする。
  12. バックアップが完了したことを確認し、下のホームボタンをタップする。
  13. TWRPのメニューが表示される

カスタムリカバリ(TWRP)でroot化&強制暗号化解除ファイルを導入

続いて、root化&強制暗号化解除ファイルを導入を導入します。
  1. TWRPのメニューの「Install」をタップする。
  2. あらかじめ端末に転送しておいたroot化&強制暗号化解除用カーネル自動書き換えファイルをタップする。
    ※今回は「BETA-SuperSU-v2.65-20151226141550.zip」
  3. 下のバーを左から右にスワイプする。
  4. インストールが完了したことを確認して、「Reboot System」をタップする。
    ※タップ後に、Super SUをインストールするか問われた場合は必ず「Do Not Install」を選択して下さい。端末が起動しなくなる場合があります。
  5. 端末が初期化されて起動するので、初期設定画面を進める。
  6. 完全に起動したらアプリドロワーを開き、「SuperSU」アプリを起動し、root化出来ていることを確認する。
これで端末のroot化が完了しました。
暗号化解除せずにroot化だけを行いたい場合はこれで終了です。

端末が起動したら、必ずバックアップしたファイルをPCに移すなどして保管しておいて下さい。バックアップファイルは、内部ストレージの「TWRP」というフォルダに保存されています。

暗号化の解除

続いて、暗号化を解除したい場合はこの作業を行います。

なお、この作業によって端末のデータが全て消去されるので、バックアップしたファイルなどはPCに移すなどして保管しておいて下さい。
  1. 端末の電源を完全に切る。
  2. 「音量-」ボタンと「電源」ボタンを同時に押して、Bootloaderを起動する。
  3. 端末とPCをUSB接続し、コマンドプロンプトに「fastboot format userdata」と入力し、「Enterキー」を押してフォーマットを実行する。
  4. フォーマットが完了したことを確認し、「fastboot reboot」と入力し、「Enterキー」を押して端末を再起動させる。
  5. 端末が初期化されて起動するので、初期設定画面を進める。
  6. 完全に起動したら、「設定」アプリを開き「セキュリティ」をタップする。
  7. 「スマートフォンの暗号化」の項目をタップし、暗号化が可能なことを確認する
    暗号化が可能=暗号化解除されている状態

カスタムROMにおけるroot化・暗号化解除

カスタムROMはほとんどが最初からroot化されているため特別な作業は不要です。

また、多くのカスタムROM(に使われているカーネル)は暗号化解除に対応しているため、カスタムROMを導入後、「暗号化の解除」の作業を実行することでも暗号化解除が可能です。

バックアップ前に画面ロックの解除が必要

本記事と関連した内容として、Nexus 6PとNexus 5Xでカスタムリカバリ(TWRP)を使用する際の注意を記しておきます。

これらの端末でバックアップを取るときは、必ず端末の画面ロック(パターンやPIN、指紋認証など)を全て解除しておいて下さい。
仮に、ロックを設定したままバックアップを行い、復元(リストア)してしまうと、正しいロック解除コードを入力しても解除できなくなる場合があります。

~2016/3/11追記~
データをリストアしてアクセスできなくなってしまった場合でも復旧することができます。詳しくは「画面ロック設定後にTWRPでバックアップ→リストア(復元)してロック解除できなくなった時の対処法」を参照してください。

Nexus Imprintが原因?

ここからは推測なのですが、Nexus 6PやNexus 5Xの「Nexus Imprint」という指紋認証が影響している可能性が高いです。

この指紋認証は、指紋データをハードウェアやメモリ上の特別な領域に保存し、簡単にはアクセス出来ない(root権限でも不可能)ようになっています。

この領域がROMの書き換え(Factory Imageを焼くなど)によって初期化され、その状態でロック設定済みのROMデータを書き戻してしまうと解除認証が行えなくなってしまうのではないかと考えられます。

まとめ

  • 最近のNexus端末は出荷時点で暗号化、解除不可能
  • 暗号化の解除にはカーネルの変更(書き換え)が必要
  • Android 6.0でのroot化にはカーネルの変更(書き換え)が必要
  • root化&強制暗号化解除用カーネル自動書き換えファイルを導入し、root化可能
  • 加えて、暗号化解除はストレージのフォーマットが必要
  • カスタムリカバリでバックアップする前に画面ロック解除を忘れずに
※上記は執筆時点での情報を元にしています。ファイルの更新などによって変わる可能性があります。
※本記事に沿って実行したにもかかわらずroot化できない・暗号化解除できない場合は、コメント欄よりお知らせ下さい。

関連記事

Powered by Blogger.