2017年7月17日月曜日

Xperia Z3のroot権限取得+Android6.0化


こんにちは。

私が普段メインで使っているスマホのXperia Z3ですが、なんとau版のみAndroid5.0.2までしかアップデートが降ってきません。グローバル版はもちろん、同じ国内キャリアのdocomo版ですらAndroid6.0.1までアップデートが降ってくるというのに…。

というわけで、無理やりau版のZ3(SOL26)にAndroid6.0.1を焼いてみました。その過程でついでにroot権限も取得しましたので、備忘録代わりに書いておきます。ネット上では、Android4.4にダウングレードしたりする方法が紹介されていたりしますが、そんな面倒くさいことは一切不要で、既存の内部データも消えません。

2017年最新の方法です。2つの端末で成功を確認しました。

なお、この方法は海外版のROMを焼いてAndroidをアップグレードすることが最終目標となりますが、海外版のROMにはテレビ(ワンセグ/フルセグ)機能、赤外線通信機能、NEC、フェリカは実装されていません。つまりこの方法でAndroidをアップグレードした場合、前記の機能は全て使えなくなってしまいます。したがって、スマホをICカードとして使用している方や、(あんまりいないと思うけど)テレビ視聴に使っている方は多少古くともAndroid5.0で甘んじた方が吉かと思います。
ハード的にはテレビアンテナやフェリカは実装されているので、海外版のROMでもソフト面をいじれば使えるようになると思っている方もいるかもしれませんが、単にテレビやNFCのアプリのapkファイルやドライバを移植するだけでは動作しません。ハードとソフトを紐づけるフレームワークが実装されていないので当然といえば当然ですが…もともと、いわゆるガラスマ機能の使用は想定されていないROMですので、変にいじらないで我慢しましょう。(NFCだけは設定画面にトグルが表示されるのでいじればなんとかなる、かも。でもやめといたほうがいい)



いろいろ準備するもの


①adb環境を整える


adbはAndroid端末にPCからコマンドを出すために必要なもので、これがないと話になりません。こちらのサイトなどにadb環境の構築について詳しく書かれていますので、参照してください。



②必要なソフトウェアのダウンロード


1.Flashtool


Xperia専用のROM焼きツールです。
ちらのページからダウンロードして下さい。ちなみに過去のとあるバージョンでは、FlashToolの不具合が原因で文鎮化したという話がありますので、必ず最新版かそれに近いものをインストールすること。



2.PRFcreater


prerootedと呼ばれるzipファイルを作成するソフトウェアです。root権限を取得した端末はsystem領域が改変されているため、通常のOTAアップデートをしようとするとエラーが発生してしまいます。一方で、FlashToolからアップデート後のROMを焼くと、せっかく取得したroot権限や導入したカスタムリカバリが失われてしまいます。

そこで使うのがこのprerootedというzipファイルで、要するにROMとSuperSUとカスタムリカバリをまとめてくっつけた、「既にroot化されているアップデート後のROM」です。これをカスタムリカバリから焼くことで、root権限やカスタムリカバリを維持したままアップデートが可能です。


追記:XDAで出来合いのprerootedファイルを公開されている方がいましたので、自分でprerootedを作らなくても良くなりました。よって、PRFはインストールする必要は無くなりましたが、これからもXperiaを開発する場合は入れておいて損はないソフトウェアです。




③必要なファイルのダウンロード



1.D6603の23.5.A.0.575のftfファイル


ftfファイルとはFlash Tool Fileの頭文字で、いわばXperia専用のファームウェアファイルです。
root化に使うrootkitはキャリア版のROMには対応しておらず、また23.5.A.0.575なビルドにしか対応していないため、こちらのサイトからグローバル版Z3(D6603)の23.5.A.0.575なftfファイルをダウンロードして下さい。

ちなみに、このftfを焼いた時点でAndroid6.0へのアップグレードは完了します。ここから下はroot取得+サムシングのためのファイルです。




2.ワンクリックrootkit


キューブキューブさんがこちらのドライブで公開されています。いつも便利なツールを作成して下さるキューブキューブさんには毎度感謝です。



3.カスタムリカバリ導入ツール



ただroot権限を取得したいだけならここからは行わなくて構わないのですが、昔からXperiaには、root権限を使ってsystemを改変すると強制的に端末をリブートさせるricというプログラムがOSに組み込まれているため、ricを無効化しないとroot権限を取った意味がありません。
また、rootkitが使える23.5.A.0.575のファームウェアはD6603の最新ファームウェアではありませんので、最新ファームウェアをrootを維持したまま焼きたいという方もいらっしゃるかと思います。
ricの無効化と最新ファームウェアへのアップデートを行うためには、カスタムリカバリを導入する必要があります。

Z3はワンクリックでカスタムリカバリを導入できるツールをキューブキューブさんが公開されています。有難い!
こちらのドライブからダウンロードできます。



4.23.5.A.1.291のprerootedファイル


グローバル版Z3(D6603)の最新ビルドは23.5.A.1.291です。23.5.A.0.575のままだとアップデート通知が鬱陶しい(そのままアプデしようとすると当然エラー吐かれる)うえに、アップデートしないとSTAMINAモードが実装されないので、最新版のファームウェアを先述のprerootedの形で焼きます。本来はPRFcreaterで自作しなければなりませんが、親切な方がXDAにアップロードして下さっているのでこちらのサイトから落とせます。




手順


1.FlashToolでD6603のftfを焼く


FlashToolの基本的な使い方はここでは触れませんので、他のサイトを参照してください。

Excludeは、AMSSから始まる3つの項目、Fotakernel、Partitionチェックを入れてFlashして下さい。MISK TAの項目は全てにチェックを入れて下さい。ここを間違えると文鎮化のリスクがぐっと高まります。
CONTENTSの枠にboot_delivery, cache, elabel, kernel, systemの5つが表示されていればOKです。

ちなみに、ROM焼きの際はエラー防止のため内部データを全てwipe(消去)する必要があることが多いのですが、この方法の場合wipeは必要ありませんでした。アップグレードの際は必要ないようです。

全て確認したらFlashを開始してください。かなり時間がかかりますが、焼き終わってブートをかければ、Android6.0が起動するはずです。ここでブートループすることはおそらくないと思いますが、もしそうなった場合はもう一度焼き直してみるか、内部データを全てwipeしてから焼き直せば上手くいくでしょう。ブートループの際は電源ボタンとボリュームアップ長押しで強制終了できます。

ここからはroot化+最新ビルドへのアップデートの作業となります。



2.rootkitでroot化


ダウンロードしたrootkitを展開し、中にあるバッチファイルを実行してください。1回で成功するとは限りませんので、何回か実行してみて下さい。ここまでの環境構築+ROM焼きが上手くいっていれば、そのうち成功するはずです。

成功すれば、アプリ一覧にCubeSUというSUアプリが追加されます。



3.カスタムリカバリ導入


ダウンロードしたカスタムリカバリ導入ツールを展開して、中にあるバッチファイルを実行してください。端末の画面でroot権限が要求されるので、許可してください。

TWRPが導入されますので、(もしかしたら自動でリブートされたかもしれませんが)一度電源を落とし、リブートして下さい。正常に導入されていれば、SONYロゴが終わるころにランプが点灯します。ボリュームダウンキーを連打してください。TWRPが起動します。

この段階で、PCに繋いで、次の操作のために落としてきたprerootedファイルを端末内の分かりやすい場所に移しておいたほうが賢明です。もしこの後の作業で、OSをwipeした後に必要なファイルが転送されていなかったりしたら面倒くさいので。



4.最新ビルドのprerootedを焼く


本来、D6603のprerootedを焼く場合は、インストール後にbaseband(通信電波帯)が上書きされないようにいろいろいじくる必要があるのですが、私はポケットWi-Fiで運用しているので気にせず焼きました。

LTE回線をお使いの方は、もともと入っていたキャリア版のftfを入手し、拡張子をzipにリネームしてから中のbaseband関連のsinファイル(amss…から始まる3つのファイル)を抜き出し、prerooted内のものと入れ替えてください(その際は、抜き出してきたsinファイルの名前をprerooted側のものに合わせてリネームしておくこと)。これで通信関係はOKなはずです。

Partition関連のファイルはいじらなくてもちゃんと32GBで認識されました。

ここからは文鎮化のリスクが最も高いです。気を付けて作業してください。

TWRPは通常のリカバリとは違ってタッチ操作が可能です。

新しいファームウェアをまるまる焼くわけですので、まずは既存のファームウェアを全て消去する必要があります。(全部消すなら今までの操作が全て無駄になるように思われる方もいらっしゃるかもしれませんが、そもそもこのTWRPを導入するためにroot権限が必要ですので、全く無駄ではありません。)

wipeの項目からadvanced wipeを選択し、system、cache、dalvik cacheを選択してwipeして下さい。この操作をした後はprerootedを焼くまで端末にOSが存在しないことになりますので、何があっても電源を落とさないでください。

次に、installの項目から、端末内に移したprerootedファイルをインストールして下さい。時間がかかりますが、ここまでエラー無く進められていれば問題なくインストールできるはずです。

終了後、再起動して完成です。




あとがき

これでかなり端末が便利になると思います。カスタムリカバリも導入されているので、Xposedのフレームワークも簡単にインストールできます。

初回の再起動ではNFCバイナリか何かのアップデートに失敗すると思います。その場合、絶対にNFCをONにしようと試みないでください。暴走して電池消費がヤバくなります。まあ、adbからブロックすればいいんだけど。

次はZ3TCのrootについて書こうかな。