2014年8月13日水曜日

【Xperia】アップデートとroot取得を同時に行うprerooted.zip【Z1/Z1 f】

昨日、Xperia Z1 SO-01F と Xperia Z1 f SO-02F のアップデートが公開され、14.3.B.0.310となりました。
そして CVE-2014-3153 の脆弱性は塞がれてしまったようで、先月公開した rootkitXperia_20140719が残念ながら使用不可能となってしまいました。
ただ、同じ端末でrootを獲れるビルドが存在すれば、そこを踏み台にして新しいビルドでrootを獲る方法はいくつか存在します。
今回はマイナーアップデートですので、14.3.B.0.310にアップデート後に14.3.B.0.288のカーネルのみを焼き、rootkitXperia_20140719でroot取得後、再度14.3.B.0.310のカーネルのみを焼く、という手順が最も手っ取り早いでしょう。

当記事ではメジャーアップデートの場合でも応用のきく、prerooted.zipを利用してrootを獲る手順を紹介したいと思います。
当方はSO-02Fで検証しておりますが、SO-01Fでも同じ手順でイケると思います。(twrp_prerooted_Z1f.zipはそのまま使用できますが、当然ながらftfはSO-01Fのものを使用してください。)

自力で何とか出来る方以外にはrootを取る行為はおすすめできませんし、覚悟してカスタムに臨んでください。当記事やprerooted.zipに関してはノーフォロー、ノーサポートということでお願いします。
本記事公開当初、prerooted.zipのリンク先を間違えて貼るという大失態をおかしておりました。現在は修正済みです。

前提は以下です。
トラブっても自力で復旧できること(つまり自己責任)
・アップデート前のftfやバックアップを作成してある等、いざという時に備えてあること
・アップデート前の端末でrootを取得していること
・アップデート前の端末でTWRP等、カスタムリカバリが導入されていること
・作業PCはWindows 7(64bit)、端末はSO-02Fで検証済み(SO-01Fでの動作報告もありました)

■必要物資
twrp_prerooted_Z1f.zip (Dropbox)
 twrp_prerooted_Z1f.zip (OneDrive)
・14.3.B.0.310のFTF
・7za.exe等、zipを操作できるツール
・Flashtool 0.9.16.1

■導入手順
[1]14.3.B.0.310のftfを準備しておく
 いくつか方法はありますが、私はbinファイルからftfを作成してみました。以下はSO-02Fの場合なので、SO-01Fの人は適宜読み替えてください。

 (a)http://pastebin.com/Axr9n76Lに記述してあるURLから、binファイル群をダウンロード。
  ※昔のファームのbinがいつまでも生きているとは限りません。ご了承下さい。
 (b)bin2ftffiles.zipをゲット、解凍して「bin2ftffiles.vbs」を取り出し、先ほどbinファイル群を保存したのと同じフォルダに投入。
 (c)「bin2ftffiles.vbs」をダブルクリックして実行。同じフォルダに「FILE_xxxxxxxxx」(xの部分は数字)のようなファイルが3つ生成される。
  (別ルートで「FILE_xxxxxxxxx」を入手している場合は、この次の手順から始める。)
 (d)Flashtoolを起動、上部メニューから「tools」→「Bundles」→「FILESET Decrypt」を実行。
 (e)「Source Folder」の項目の右の「...」ボタンをクリックして、先ほどの「FILE_xxxxxxxxx」群があるフォルダを選択。「Available files」の欄にFILE_xxxxxxxxxが出てくるので、「->」ボタンですべて右に移動、「Convert」ボタンをクリック。
 (f)数分後、「Bundler」ダイアログが開く。「Device」欄をダブルクリックして「Sony Xperia Z1 f」→「SO-02F」を選択。
 (g)「Branding」欄は「docomo」、「Version」欄は「14.3.B.0.310」を入れる。
 (h)「folder list」欄のやつを全選択して「->」ボタンですべて右の欄にぶっこむ。
 (i)「Create」ボタンをクリックするとftfの生成が始まる。数分かかるので進捗ログなどを見ながらそわそわする。
 (j)Flashtoolをインストールしたフォルダの中の「firmwares」の中に「SO-02F_14.3.B.0.310_docomo.ftf」が出来ていたらそれが目的のftfだ!

[2]FTFファイルからkernel.sinとrpm.sinとsystem.sinを引っこ抜く
 ftfファイルは実はzipなので、拡張子をzipにすれば各種解凍ソフトで解凍できます。
 また7za.exeを使えば、拡張子を変えずとも以下のようにしてコマンドラインでsinを抜き出せます。お好みで。

7za e SO-02F_14.3.B.0.310_docomo.ftf kernel.sin
7za e SO-02F_14.3.B.0.310_docomo.ftf rpm.sin
7za e SO-02F_14.3.B.0.310_docomo.ftf system.sin

[3]sinファイルをelf/ext4に変換
 Flashtoolを起動し、「tools」→「Sin Editor」で、先ほど抜き出したsinファイルを読み込んで「Extract data」ボタンをクリック。
 それぞれ「kernel.elf」「rpm.elf」「system.ext4」に変換されます。

[4]「twrp_prerooted_Z1f.zip」に上記3ファイルを追加
 お好みのzip圧縮ソフトを使って構いませんが、7zaの場合は以下のようにしてtwrp_prerooted_Z1f.zipにelf/ext4ファイルを追記します。

7za a -tzip twrp_prerooted_Z1f.zip kernel.elf
7za a -tzip twrp_prerooted_Z1f.zip rpm.elf
7za a -tzip twrp_prerooted_Z1f.zip system.ext4

[5]twrp_prerooted_Z1f.zipを端末にコピー
 上記手順でカーネルやシステム等を追加したzipを、端末の内部ストレージ等にコピーします。手段は問いません。

[6]zipをTWRP等カスタムリカバリでインストール

[7]再起動

[8]14.3.B.0.310になってrootも獲れてる!めでたしめでたし!

■その他
prerooted.zip適用直後はカスタムリカバリは消滅していますので、入れ直してください。
あと念の為、prerooted適用にあたり、データや設定は消えることなく保持されます。ですが万一を考えて適用前のバックアップは取っておいた方がよろしいかと思います。

45 件のコメント:

  1. こんばんは。
    Z1f、入手されたのですね。
    羨ましいです。
    先月の上旬、もしライムの在庫があれば買おうと思っていたのですが、DSも量販店も白と黒しかないと言うことだったので買ってないのです^^;
    キューブさんがZ1fに浮気されたことで、自分のAXの今後が不安ですが、これからの記事も楽しみにしています(笑)

    返信削除
    返信
    1. ライム、いい色ですよね。生産終了が残念です。
      (ちなみにウチのはピンクです。)
      ここまで粘られたのなら、(おそらく年末に出るだろう)Z3fまでさらに粘るのも手ですね。

      削除
  2. ありがとうございます。
    SO-01FでROOT取れました。

    返信削除
  3. 白買ってライム色のケースつけた2014年8月19日 17:08

    データ専用SIMで使っている場合、あえてアップデートしないのもアリでしょうか

    返信削除
    返信
    1. 通話以外も改善されている、との話ですが、特に使用上不便が無ければそれもアリでしょうね。
      (私はデータ専用MVNOで使ってますが、当然ながらアップデートもしてます。)

      削除
  4. 14.3.B.0.310 ←ワンクリ開発 宜しくお願いします。

    返信削除
    返信
    1. むしろワンクリ出来ていたのがラッキーだと思ってください。Z1/Z1fなんかは半年以上不遇だったのですから。root取得する方法が残されているだけありがたいと思いましょう。
      開発と簡単におっしゃいますが、正直新たな脆弱性が発見されるまで当方ではどうしようもありません。手間をかければ何でも出来る、というわけではありませんので。

      削除
    2. キューブキューブさんお疲れ様です。
      X10やZの時情報やツールをありがたくを使わせていただきました。
      最近Z1に機種変更をし情報を集めroot化成功をもくろんでいるものです(笑)

      上の人は簡単に「14.3.B.0.310 ←ワンクリ開発 宜しくお願いします。」なんて書いていますが、気にしないでくださいね。
      確かに、ワンクリックツールは便利で比較的安全にroot化できますが、上の様な人が万一の場合何もできずに、安易にキャリアへ持ち込むこともあり得ますので、むしろ、正しく知識がある人だけ出来れば良いので?はと思います。

      削除
  5. TWRP入れる前に 14.3.B.0.310 をインストールしてしまった
    良い解決方法無いだろうか??

    返信削除
    返信
    1. データが初期化されても良いなら、.288をフル焼き→root取得→リカバリ導入→prerootedが間違い無いでしょう。
      データを残したい場合は.288のkernelとsystemのみ焼き直してroot取得→リカバリ導入→prerootedで何とかなります。ただし途中エラーが出まくりますので、それに耐える精神力が必要となります。(prerooted完了の時点でエラーは出なくなります。)
      .288のカーネルのみ焼き直してroot取得、その後.310のカーネルを焼き直す、という方法もあると思いますが、当方では未検証です。

      削除
    2. 私もバージョンアップを誤ってしてしまって諦めていました。
      .288のフル焼きですが、なんとなくはわかるのですが詳しいやり方が
      自信が少し自信が無いんです。文鎮になったトラウマです。
      もしよろしければ詳しいやり方解説お願いできませんか??

      削除
    3. そのくらいは検索してください。
      当サイトよりよほど詳しく画像入りで解説しておられるサイトがいくらでもあります。
      当然.288のftfはお持ちだと思いますが、最新版のFlashtoolで稲妻アイコンをクリック、Flashmodeで焼きたいftfを選び、チェックはデフォルトのまま(ワイプ全チェック、exclude全チェック外し)で焼くだけですよ。

      削除
  6. キューブさん、GX時代よりお世話になっております。
    Z1fは発売日に手に入れて非rootで使用していましたが、カスタムする楽しさを思い出し、当ブログを拝見してroot取得しました。
    が、.310にアップデートしてから思い立ったので、①.288に戻してrootする予定でしたが、電話帳を読み込まないエラーが出ましたので(原因不明)②.310で.288のカーネルのみ焼いてrooted→.310のカーネルを焼きなおしで.310rooted出来ました。
    2日間経過しましたが、エラーも吐かず今のところ問題ありません。
    取り急ぎご報告まで、長文失礼しました。

    返信削除
    返信
    1. .288→.310にする時にデータの変換が行われますが、逆は行われないので、その不整合がエラーの原因でしょうね。バージョンを戻す場合はデータワイプが基本です。
      カーネル焼き直し法の検証、ありがとうございました。

      削除
  7. 私もSO-03E>SGP321化した機種に試してみました
    最新ファーム10.5.1.A.0.283はさすがに穴が塞がれていてroot化できませんでした
    そこで旧ファーム10.5.A.0.230のkernel.sinを10.5.1.A.0.283に移植し焼いて
    ワンクリroot化
    その後10.5.1.A.0.283のkernel.sinを元に戻しkernelだけを焼く
    その時rpm.sinとsystem.sinも一緒に焼かれたようです
    まだ一日しか使っておりませんが特に不具合はありません

    返信削除
    返信
    1. カーネル焼き焼き法ですね。
      ちなみにsystem.sinが焼かれると非rootedになるはずなので、それは無いと思います。loader.sinではないかと。

      削除
  8. キューブさん、
    Xperia gx使っているんですが、rootを放棄し完全に初期化する方法は御座いますでしょうか?

    返信削除
    返信
    1. build.propをいじって前バージョンに偽装すればコンパニオンが綺麗な最新版を入れてくれるかもかも。

      削除
    2. PCC、SUS、flashtool、どれか使えば簡単にできるじゃんか。

      削除
    3. なぜこの記事で。
      データ等は残してroot放棄するだけならFlashtoolでsystemのみ焼けばOK。
      データも含め工場出荷時状態にしたければftfフル焼きですね。

      削除
  9. キューブ様
    いつも参考にさせていただいております。
    A2のbinからftfを作成したのですが、system.sinだけがおりません。
    (c)の手順で、FILE_xxxxxxxxxが3つではなく、4つ出来ていたのも気になります。
    お知恵を貸していただけないでしょうか?

    返信削除
    返信
    1. はい、自力で解決できないような人は手を出さない。
      それが鉄則。

      削除
  10. すみません。自己解決しました。
    (c)の手順の時、処理の途中でキャンセルしてしまったいたようです。
    FILE_xxxxxxxxxが3つではなく、4つ出来るのは、z1fとbinファイルの数が違うためと思料しますが、いかがですか?

    返信削除
    返信
    1. FILE_xxxxxxxxxの数は機種によって違いますよ。

      削除
  11. キューブ様
    A2での14.3.B.0.310 rootとれました!
    FILE_xxxxxxxxxが4つ出来ること以外は、キューブさんの手順でばっちりです。
    ありがとうございました。

    返信削除
  12. 記事を参考にZ2 SO-03Fの17.1.1.B.3.174で無事root化できました。
    一旦PC Companionで素の17.1.1.B.3.174に更新してPC CompanionのキャッシュからFTFを作成し、
    17.1.1.B.2.73のカーネルとシステムを焼いて(カーネルだけではSONYロゴで停止して起動しませんでした)、
    その後キューブさんの1クリックrootでroot化しリカバリ導入後に上記で取得したFTFを使用して
    今回のキューブさんの記事で紹介された方法でtwrp_prerooted_Z1f.zipにkernel.elfとsystem.ext4を追加でリカバリからインストールして17.1.1.B.3.174への更新とroot化が同時にできました。
    これができないと4.4で厄介なSDの制限回避ができないので、とても助かりました。
    ありがとうございます。

    返信削除
  13. キューブさん、初めまして。
    「14.3.B.0.310にアップデート後に14.3.B.0.288のカーネルのみを焼きrootkitXperia_20140719でroot取得後、再度14.3.B.0.310のカーネルのみを焼く」手順で、SO-04F(ビルド14.3.B.0.310)のroot取得ができました。
    ありがとうございました。

    返信削除
  14. SO-02F に 14.4.A.0.108 root化 → 14.4.A.0.157 出来ました。
    docomoアプリを消したかったので香港版ファームでやってみました。
    初めてのアンドロイドスマホなのでSIMも挿してないですが、問題なく動いているようです。
    これからMVNO SIM買ってきて色々やってみるつもりです。
    ありがとうございました。

    返信削除
  15. Z3のbootloader unlockせずにroot可の方法発見されたようです。
    海外サイトの掲示板にやり方紹介されてますがまだ確認しておりません。

    D5803 23.0.A.2.93 のカーネル焼く
    giefroot http://forum.xda-developers.com/crossdevice-dev/sony/giefroot-rooting-tool-cve-2014-4322-t3011598
    でroot化
    最新版へ(゚д゚)ウマー
    らしいです。誰か試した方いませんか?

    返信削除
  16. この方法で、SO-05F (Xperia Z2 Tablet) の最新 17.1.1.B.3.195 で root 取れました。ご報告まで。
    (rpm.elf はないので削除、念のため cache.ext4 を追加)

    返信削除
    返信
    1. 詳しく説明をお願いできますか?

      削除
    2. このコメントは投稿者によって削除されました。

      削除
  17. so-05fのftfでpreroot自作して作業するという解釈じゃないかな。

    返信削除
  18. キューブさん、いつもお世話になっております。
    SO-01F(14.3.B.0.310)に14.3.B.0.288をフル焼きし、prerooted.zipの方法を行いましたが、SuperSUを開くと、”SUバイナリが無いため...4.3にアップ...”のメッセージが表示されます。
    何が問題なのか分かりますでしょうか。
    カーネルのみ焼く方法では問題なくrootが取れます。
    よろしくお願いします。

    返信削除
    返信
    1. このサイトに書いてある、「rootkitでとりあえずroot取得」や、「twrp_prerooted_Z1f.zip から prerooted.zip を作成し書き込み」をしましたか?
      http://yanoshi.hatenablog.jp/entry/2015/04/12/041030

      削除
    2. prerooted.zipをダウンロードして作成しなおしたら、うまくいきました。
      古いprerooted.zipを利用したいたのが悪かったみたいです。

      削除
  19. このコメントは投稿者によって削除されました。

    返信削除
  20. すいません。初心者で申し訳ないのですが、6番の、「zipをTWRP等カスタムリカバリでインストール」がよくわかりません。機種はZ3です。
    zipファイルをコピーするとこまではできました。
    ちなみに、zipファイルは内部ストレージの Android→dataにコピーしました。
    よろしくお願いします。

    返信削除
  21. このコメントは投稿者によって削除されました。

    返信削除
  22. Z1で既にroot済みですが、ver upするにはカーネルだけ焼けばいいのでしょうか?
    現在は14.3.B.0.288で、14.3.B.0.346にしたいのですが、
    ご教授お願い致します。

    返信削除
  23. z1f root化で参考にさせて頂いています。
    自分が間違っているだけかもしれませんが、ページ上部の(a)のURL先にあるbinファイルの一番上( http://software.sonymobile.com/ns/common/1/file/473/281073473_xV3Drk6hKvrem1hg2FnA2WVF.bin)のリンクが死んでいました。他は問題ありません。念のためご確認お願いします。

    返信削除
    返信
    1. そにもばがいつまでも古いデータを置いておくとは限りません。無くなれば諦めるしかないです。
      でも多分探せば(ここから先は字がかすれて読めない)

      削除
  24. 私もリンクが死んでました。(404)

    返信削除
  25. 自分も死んでました。

    返信削除
  26. キューブさん、初めまして。
    この記事を拝見しSO-04Fのビルドをrootを取ったまま、14.3.B.0.362にすることができました。
    ありがとうございました

    返信削除