2013年4月17日水曜日

F-03D Girlsの最新ファーム「V24R33Cc」をroot化する②

前回作成したMainActivity.apkを使ってroot化の穴が塞がれてしまったF-03D Girlsの最新ファーム「V24R33Cc」を実際にroot化する手順です。

今回の作業には前回書いた手順で作成したMainActivity.apkが必要になります。

作成されていない場合はこちらを参考にMainActivity.apkを作ってから以下の手順を行ってください。

F-03D Girlsの最新ファーム「V24R33Cc」をroot化する①

それでは、F-03D Girlsの「V24R33Cc」をroot化するしていきます。


まずはF-03D_Girls_root_tool(V24R33Cc).zipをダウンロードし解凍して前回の記事で作ったMainActivity.apkを同じフォルダに入れてください。

次に、F-03D GirlsをPCと接続して上記フォルダでコマンドを開き、以下のコマンドを1行ずつ実行してください。

-4/17 初期化→再度root化して手順を変更しました-
-3/9 2ch docomo ARROWS kiss F-03D Part6 405様、ジャム様からのご報告で一部修正しました-

adb install MainActivity.apk
adb push getroot /data/local/tmp/getroot
adb shell chmod 777 /data/local/tmp/getroot
adb push su /data/local/tmp/su
adb shell chmod 755 /data/local/tmp/su
adb push busybox /data/local/tmp/
adb push mountbreak_2.ko /data/local/tmp/

エラー無く終わったら、F-03D側でbreaksuiddiagを起動します。
エラーが表示された場合や何も反応が無い場合、アプリが正常に作成できていません。もう一度前回の投稿を確認しながら作成しなおしてください。

「success」と表示されたら以下のコマンドを1行ずつ実行してください。

adb install Superuser_3.1.3.apk
adb shell
$ /dev/sh
# insmod /data/local/tmp/mountbreak_2.ko
# mount -o rw,remount /system /system
# dd if=/data/local/tmp/busybox of=/system/xbin/busybox
# chown root.shell /system/xbin/busybox
# chmod 755 /system/xbin/busybox
# /system/xbin/busybox --install -s /system/xbin
# dd if=/data/local/tmp/su of=/system/bin/su
# chown root.root /system/bin/su

# chmod 06755 /system/bin/su



エラー無く終わったら、F-03D側でSuperUserを起動し、SUバイナリのアップデート確認が出るので、WI-Fiや3Gでダウンロードし、アップデートしてください。

これで、再起動後もroot権限を維持できた状態になります。

TitaniumBuckupでホーム切替を凍結させることができました。

なお、今回もsystemのマウントにmountbreak_2.koが必要です。
再起動するとroot権があってもsystemがマウントされていないためプリインアプリの凍結や削除ができません。

GScript Lite等をインストールして以下のコマンドを登録しておくと、
再起動後も簡単に/system/下のマウントができます。

su
insmod /data/local/tmp/mountbreak_2.ko
mount -o rw,remount /system /system

※root化したら絶対にシステムアップデートを行わないでください。

最後になりましたが、V24R33Ccの穴を発見してgithubにて公開してくださったHiroyuki Ikezoe様、本当にありがとうございました。


32 件のコメント:

  1. お世話になります。
    ビルドV24R33Ccにて、上記の手順でroot化を試しているのですが、
    最後にsuのバイナリをコピーするところで、エラーが出てしまいます。

    cp /data/local/tmp/su /system/bin/
    cp: can't create '/system/bin/su': Permission denied

    breaksuiddiagを実行しsuccess.と表示されますし、
    /dev/shを実行時、プロンプトが#に変化するのも確認できています。

    対策?として、

    /data/local/tmp/su
    cp /data/local/tmp/su /system/bin/

    としたところ、エラーが出ずにコピーはできたようなのですが
    SuperSUを実行すると

    「SUバイナリのアップデートが必要です。続行しますか?」
    となり、続行すると
    「インストールに失敗しました!」
    と表示されます。

    確認のためSuperuserを追加でインストールし、そこからsuのアップデート(ver3.0.3→3.1.1)をしてみたところ、

    Superuser has been denied Superuser permissions

    とやはりエラーになります。
    左右+電源ボタン長押しでファクトリーリセットも試してみましたが
    変化ありません。
    恐れ入りますが、何か対策等お分かりでしたら、ご教授いただけないでしょうか。
    宜しくお願いします。

    返信削除
    返信
    1. # cp /data/local/tmp/su /system/bin/

      ↑を↓にかえてみてください。

      # dd if=/local/tmp/su of=/system/bin/su
      # chown root.root /system/bin/su
      # chmod 06755 /system/bin/su

      これでできるようなら、ブログも修正させていただきます。

      削除
  2. toshiさん、早速の提案ありがとうございます。

    お見事です、できました!
    chmodが必要だったんですね。

    パスの指定が足りず最初エラーがでてぎょっとしましたが、
    ちゃんとtitanium backupも起動しました。

    # dd if=/local/tmp/su of=/system/bin/su

    # dd if=/data/local/tmp/su of=/system/bin/su

    相談させていただいてよかったです。
    どうもありがとうございました。<(_ _)<

    返信削除
    返信
    1. 無事にできたようで安心しました。

      ブログの手順も後ほど書き換えます。

      ご連絡、ありがとうございました。

      削除
    2. toshi様

      「V24R33Cc」のroot化ありがとうございました。

       こちらでは、上記の変更をしても、SuperSUのアップデートをすると、インストールに失敗しましたのままでした。

       コマンドでのエラーは途中で打ち間違いで何回か出ましたが、エラーらしき表示が出ていない感じです。

       なにか、SuperSUのアップデートで、インストールに失敗する原因は考えられるでしょうか?

       よろしくお願いします。

      削除
    3.  toshi様

       SuperSUのアップデートで、インストールに失敗していましたが、インストールできました。
       
      Playストアから、superuserをインストールしたところ、
      SuperSU起動時に、superuserでSuperSUの権限を許可して、
      SuperSUのインストールに成功し、root化できたようです。

       ありがとうございました。
       

      削除
    4. なるほど。

      SUのインストール方法については手を入れる必要がありそうですね。

      後でunrootして再度root化してもう少し完璧な手順にしたいと思います。

      ご連絡、ありがとうございました。

      削除
    5. おかげさまで、root出来ました。
      ただ、HIDEKI MATSUZAKI様が指摘された通り、インストールしたsupersuは役に立たなかったのです。
      Google Playからsuperuserをダウンロードしてインストールした後、ちゃんと「root許可の確認」が出ていました。

      どうもありがとうございました。

      削除
    6. Nguyen Dang Quyさま
      コメントの確認が遅くなり申し訳ありません。

      無事にroot化できたとのこと、良かったです。

      SuperSUはGooglePlayからダウンロードしなおさないとダメみたいなので、私自身で確認したらブログの書き直しをしようと思います。

      ご連絡、ありがとうございました。

      削除
  3. toshi様

     こんにちは。

     F-03D Girlsでない、ARROWS Kiss F-03D を入手しました。
     2013年2月14日のソフトウェア更新が適用され、
    最新ビルド番号:V23R32Cになっています。

     このビルド番号のARROWS Kiss F-03Dも、
    F-03D GirlsのV24R33Ccと同様に、以前の方法では
    root化できず、この方法でroot化できると思っていますが、
    何か、別の操作など試してみることはありませんか?

     こちらでは、V24R33Ccのroot化の際には、
    最後のSuperSUのアップデートだけが失敗しただけでしたので、
    root化での問題はないと思いますが、何か、別の操作などがありましたら、
    今後この端末でroot化の作業をする際に試してみたいと思います。
     
     よろしくお願いします。 

    返信削除
    返信
    1. HIDEKI MATSUZAKIさま
      こんにちは。
      コメントの確認が遅くなりすみません。

      Girlsでは無い方のF-03Dは持っていませんので、正直分かりません。

      ガチピンクの「V24R33Cc」のroot化は、Hiroyuki Ikezoe様がQuallcommのdiagドライバの脆弱性をついてsys_setresuidを改変してroot shellを立ち上げる方法となり、sys_setresuidは端末によって異なる可能性が高いです。

      同じF-03Dであってもsys_setresuidが異なればこの方法ではroot化できないと思われ、場合によっては文鎮化のリスクもあります。

      ガチピンではないほうのF-03Dのsys_setresuidが分かれば同じ方法でroot化できると思いますので、調べてみてはいかがでしょうか。
      sys_setresuidは、ググれば調べ方が出てくると思います。

      sys_setresuidがわかったら、jni.cのファイルの端末のチェックやsys_setresuidの値を書き換えてapkを作成すればきっとできるのではないかと思います。

      お役に立てずにすみません。

      削除
    2. toshi様

       ありがとうございました。
       
       ビルド番号:V23R32CのARROWS Kiss F-03Dを
      同じ手順でやってみるところでした。

       F-03Dの最新ビルドと言うことで、同じだと思っていました。
      V24R33Ccのガチピンク専用だったのですね。
       
       残念でした。

       さて、sys_setresuidの話は、良く分かりませんので、
      しばらくは情報収集してみます。

       ビルド番号でもチェックをしているようなので、
      実行してもエラーが出て終了でしょうか?

       ビルド番号を書き換えるだけで、動作してくれればいいのですが、まずは、sys_setresuidを調べてみないとだめですね。
       これは難しそうです。 

       エラーだけならいいのですが、文鎮化は避けたいと思いますので、慎重にやってみます。

      削除
  4. toshi様

    いつも楽しく拝見しています。

    不躾な質問ですが、
    『V24R33Cc』をroot化する為の、
    ツールキットを公開される予定はありますか?

    実は、密かに期待しております。
    宜しくご検討下さい。

    taku

    返信削除
    返信
    1. taku様

      こちらに関しては、ツールキットを公開する予定はありません。

      root化手順を細かく書いてありますので、ご自身のお力で頑張ってroot化させてみてください。

      削除
  5. F-03D Girlsを今日「V24R33Cc」にアップデートし、
    早速こちらの手順にてroot化を試してみました。

    breaksuiddiagは「success」と表示されたのですが
    adb shell
    $ /dev/sh
    /dev/sh
    /dev/sh: not found
    $
    となってしまい、root化できませんでした。

    左右+電源ボタン長押しでファクトリーリセットを試みましたが
    adb shell
    $ ls /dev/sh
    ls /dev/sh
    /dev/sh: No such file or directory
    $
    となり、/dev/shは存在しませんでした。

    /devのパーミッションを確認すると
    adb shell
    $ ls -l -d /dev
    ls -l -d /dev
    drwxr-xr-x root root 2011-01-01 09:00 dev
    $
    となっていました。

    /dev/shはファクトリーリセット直後から存在している
    ものなのでしょうか?
    それともbreaksuiddiag実行時か、Superuser_3.1.3.apkの
    インストール時に作られるものなのでしょうか?

    何かお分かりになることがあれば教えていただけないでしょうか。

    よろしくお願いします。

    返信削除
    返信
    1. $ /dev/sh
      で#になるには、/data/local/tmp/にgetrootを置いてbreaksuiddiagを起動する必要があります。

      FR後にgetrootを置きましたか?

      削除
  6. ありがとうございます。

    手順誤りの可能性もありますので
    再度実施してみましたが結果は同じでした。

    やはり/dev/shが存在しない理由が不明です。

    長文になりますが以下に作業ログを示します。

    (ファクトリーリセット実施)

    C:\root>adb shell
    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
    $ ls -l /data/local/tmp/
    ls -l /data/local/tmp/
    $ ls -l /dev/sh
    ls -l /dev/sh
    /dev/sh: No such file or directory
    $ exit
    exit

    C:\root>adb install MainActivity.apk
    223 KB/s (14273 bytes in 0.062s)
    pkg: /data/local/tmp/MainActivity.apk
    Success

    C:\root>adb push getroot /data/local/tmp/getroot
    304 KB/s (9728 bytes in 0.031s)

    C:\root>adb shell chmod 777 /data/local/tmp/getroot

    C:\root>adb push su /data/local/tmp/su
    463 KB/s (22228 bytes in 0.046s)

    C:\root>adb shell chmod 755 /data/local/tmp/su

    C:\root>adb push busybox /data/local/tmp/
    710 KB/s (853044 bytes in 1.171s)

    C:\root>adb push mountbreak_2.ko /data/local/tmp/
    81 KB/s (3888 bytes in 0.046s)

    C:\root>adb shell ls -l /data/local/tmp/
    -rw-rw-rw- shell shell 3888 2013-01-13 13:55 mountbreak_2.ko
    -rw-rw-rw- shell shell 853044 2012-08-01 13:45 busybox
    -rwxr-xr-x shell shell 22228 2011-11-10 03:53 su
    -rwxrwxrwx shell shell 9728 2013-03-08 09:22 getroot

    (breaksuiddiagを実行して「success」と表示されたのを確認)

    C:\root>adb install Superuser_3.1.3.apk
    791 KB/s (1468798 bytes in 1.812s)
    pkg: /data/local/tmp/Superuser_3.1.3.apk
    Success

    C:\root>adb shell
    $ /dev/sh
    /dev/sh
    /dev/sh: not found
    $

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

      削除
    2. 早速ダウンロードして試したところ、無事root化できました!

      本当にありがとうございました。

      取り急ぎお礼まで。

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

    返信削除
  8. 当初breaksuiddiagの作成にApr 03, 2013のソースを使用していましたが、
    libdiagexploitとソースが分離されており、組み合わせてコンパイルしました。
    結果「success」と表示されても/dev/shが作成されませんでしたので、
    おそらく組み合わせ方がよくなかったのだろうと思います。

    Mar 17, 2013のソースで作成し直し、再度ファクトリーリセットから
    試したところ、今度は問題なくrootが取れましたのでご報告します。

    本当にありがとうございました。

    返信削除
    返信
    1. そうでしたか。

      無事にroot化出来たようで何よりです。

      また何かあればコメントください。

      削除
  9. F-03Dのroot化に挑戦しました。

    breaksuiddiagは「success」と表示されたのですが

    adb shell
    $ /dev/sh
    /dev/sh
    /dev/sh: not found
    $
    となってしまい、root化できませんでした。
    /dev/shが作成できていないようです。
    githubからダウンロードしたファイルが
    おかしかったのでしょうか


    返信削除
    返信
    1. getrootなど、必要なファイルが揃っていない可能性があります。

      https://sites.google.com/site/windroidmemo/f-03d-girls/f03d-girls-root
      ここの「F-03D_Girls_rooting_toolkit_v1.2.7z」で行けると思いますので、どうしてもできない場合にはこちらをご覧ください。

      削除
    2. toshiさん

      ツールありがとうございます。
      無事root取れました。

      文鎮化しないようプリインアプリを削除したいと思います。

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

    返信削除
  11. お世話になります。
    このページのツールキットを使いF-03D GirlsのV24R33Ccをルート化して使用していました。
    つい先日消えてしまったアプリを復元しようと、ツールキットの「バックアップ」で保存したシステムフォルダを、アンドロイド上のESファイルエクスプローラーで上書きしたところ、ICロックが表示されてしまいました。

    「バックアップ」によりboot.img,recovery.img,data.tgz,system.tgzの4ファイルは、残っていますが、これらのファイルを使ってシステムの復元方法は、どのようにしたらよいでしょうか。
    また復元によってICロックは、解除できるでしょうか。
    アンドロイドSDKは、パソコンに導入してあります。

    返信削除
    返信
    1. ご覧いただきありがとうございます。

      まず、ツールキットを使ってバックアップしたファイルの復元は私自身行っていませんので、結果的にとうなるかはわかりませんが、ツールキットでのバックアップは以下の事を行っていますので逆の処理をすれば良いと思います。

      dd if=/dev/mtd/mtd0 of=/sdcard/backup_f03d/boot.img bs=4096
      dd if=/dev/mtd/mtd5 of=/sdcard/backup_f03d/recovery.img bs=4096
      busybox tar -cvf /sdcard/backup_f03d/system.tgz /system
      busybox tar -cvf /sdcard/backup_f03d/data.tgz /data

      ただし、通常はandroidOSが起動していない状態、リカバリーメニュー上などで行います。
      そのため、上記した通り元の状態に戻せるかについてはわかりません。

      また、ICロックがかかっている理由がわかりませんので、復元で戻せるかはわかりません。

      上記手順の逆を行うことで完全な文鎮になる可能性もありますので、復元を行う場合には覚悟して作業をお願いします。

      お役に立てずに申し訳ありません。

      削除
    2. お返事頂けて感激です。
      busybox tar -cvf /sdcard/backup_f03d/system.tgz /system
      の逆の処理というのは、どのようなコマンドになるのでしょうか。

      削除
    3. コメントの確認が遅くなり申し訳ありません。

      busybox tar -cvf /sdcard/backup_f03d/system.tgz /system
      の逆なので、
      busybox tar -xvf /sdcard/backup_f03d/system.tgz /system
      となりますが、安易にやらないほうが良いと思います。

      また、やるのであれば
      cd /system
      busybox tar -xvf /sdcard/backup_f03d/system.tgz
      の2行に分けた方がいいと思いますが、上にも書いた通りこのコマンドの実行により完全に文鎮になる可能性が非常に高いです。

      ご自身の責任のもと、十分注意して実行してください。

      なお、もし実行された場合には結果など教えて頂ければ非常にうれしいです。
      宜しくお願い致します。

      削除
  12. お世話になります。
    V24R33Ccを持っているのですが自分でSIMロックを解除できる方法はありますでしょうか?
    よろしくお願いいたします。

    返信削除
    返信
    1. コメントの確認が遅くなり今頃気づきました。

      この端末、というか富士通の端末では、docomoショップで更新にSIMロック解除しているものしか解除できないと思います。
      お役に立てづにすみません。

      削除