2013年3月8日金曜日

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

twitterでHiroyuki Ikezoe様がF-03D Girlsの最新ファーム「V24R33Cc」をQuallcommのdiagドライバの脆弱性をついてsys_setresuidを改変してroot shellを立ち上げるコマンドを作って公開されていました。

が、akpファイルやbatファイルなどの簡単に使用できるものでなく、githubで公開されており、現在の私の知識ではハードルの高い事をする必要がありました。

Google先生や詳しい人に色々聞きながらやってみて、何とかroot化できたので忘れないように手順を書いておこうと思います。

まず、Android SDKがインストールされていることを前提に書いていきますので、Android SDKをインストールしていない場合は以下の投稿を参考にAndroid SDKを準備してください。

Android SDKのインストール方法

今回の作業の大まかな流れです。
・githubからソースコードのダウンロード
・Android SDKの準備
・Android NDKの準備
・Eclipseの準備
・apkのビルド

では、手順です。


【githubからソースコードのダウンロード】
Hiroyuki Ikezoe様のツイッターからgithubにアクセスし、ページ上部のzipボタンを押して「diaggetroot-master.zip」をダウンロードし、任意のフォルダに解凍します。
(F-03Dの最新ビルドに対応した・・・の方)



【Android SDKの準備】
今まではadb shellコマンドが使用できる状態にするために最低限しかインストールしていませんでしたが、apkファイルをビルドした後、エミュレーターで動作確認を行ってからインストールしたほうが良いと思うのでエミュレータをインストールします。

Android SDK Managerを起動し、「Android 2.3.3」にチェックしInstall packagesからインストールを行います。



【Android NDKの準備】
以下のページアクセスし、Android NDKをダウンロードします。
http://developer.android.com/tools/sdk/ndk/index.html

この投稿の作成時の最新版は「android-ndk-r8d-windows.zip」でした。

ダウンロードしたファイルを任意のフォルダに解凍します。


【eclipseの準備】
以下のページアクセスし、OSのbit数に合ったeclipseをダウンロードします。
http://www.eclipse.org/downloads/


私は32bit環境で実行したので「eclipse-java-juno-SR2-win32.zip」というファイルをダウンロードしました。

ダウンロードしたファイルを任意のフォルダに解凍します。

次に、日本語化パッケージをダウンロードします(必要な人だけ)。
pleiades_1.4.0.zip
( Pleiades プラグイン・ダウンロード 「安定版」を)

ダウンロードしたファイルを解凍し、「eclipse」フォルダ内に全てコピーします。
(フォルダなど全て上書きしてください。)

「eclipse」フォルダ内にある「eclipse.ini」をテキストエディタで開き、以下の文字列を1行追加して上書き保存します。

-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar


eclipse.exeを実行します。

作業フォルダを聞かれるので、任意のフォルダを選択します。


eclipseが起動したら、ヘルプ→新規ソフトウェアのインストールを開きます。

作業対象→追加ボタンを押し、名前は適当に「android」とでもし、ロケーションに以下のURLを入力します。
https://dl-ssl.google.com/android/eclipse/



「開発ツール」「NDKプラグイン」にチェックを入れ、次へをクリックします。
インストール詳細を確認し、再度次へをクリックします。
使用条件の条項に同意し、完了をクリックします。

ソフトウェアのインストールが始まるので、終わるまで待ちます。
(署名なしコンテンツの警告が出たらOKしてください)

インストールが終了し、eclipseが再起動したらウィンドウ→設定を開き、Android→NDKを選択し、Android NDKを解凍したフォルダを選択します。




【apkのビルド】
eclipseのファイル→新規→プロジェクトを開きます。

Android→既存コードからのAndroidプロジェクトを選択し、次へをクリックします。



ルート・ディレクトリに「diaggetroot-master.zip」を解凍してできたフォルダを選択し、完了をクリックします。

eclipseのようこそ画面を閉じ、MainActivityを右クリックしてAndroidツールの「Add Native support」を開き、完了をクリックします。

MainActivityを開き、AndroidManifest.xmlのandroid:minSdkVersionを7から10に変更します。

    <uses-sdk
        android:minSdkVersion="7"


    <uses-sdk
        android:minSdkVersion="10"



MainActivity AndroidManifest右の×ボタンをクリックして上書き保存します。

ツールバーの実行→実行をクリックします。

このようなエラーが表示された場合は「はい」を押す。



新規Android仮想デバイスを起動するにチェックし、Android2.3.3を選択してOKをクリックします。



しばらくするとandroidのエミュレータが起動します。



スライドしてロックを解除し、このようなエラー画面になれば正常に動作すると思われます。


上記で実行したapkファイルは、eclipse.exe起動時に指定した作業フォルダ内の以下の場所に「MainActivity.apk」として作成されます。

\作業フォルダ\MainActivity\bin\MainActivity.apk

これが、su取得のためのapkファイルです。

実際のroot化手順やsystemをマウントするまでの手順は次に書きます。


8 件のコメント:

  1. 初歩的な質問で申し訳ありません。
    apkをビルドしている際、「Error: Program "sh" not found in PATH」と
    出て、Main Activityが実行できません。
    全て上記の手順通りに行っておりますが…

    返信削除
    返信
    1. Pathが通ってないようなエラーに見えますが、ごめんなさい私もあまり詳しくないので分かりません。

      エラーでググッたところ、同じようなエラーがEclipse Communityにあったのでこちらに回避方法が書いてあるかもです。

      http://www.eclipse.org/forums/index.php/t/369435/

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

      削除
    2. 本内容をググっても見つけられませんでした…
      自分にはハードルが高い内容だったかもしれません…

      身の程を考えて諦めることとします。
      ありがとうございました

      でもF-03Dに関しては、諦められないな…、くやしい

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

      削除
    4. すいません…
      ありがとうございます

      削除
    5. 色々とご配慮頂きありがとうございました。
      root化を試みましたが、肝心な部分を確認し漏らしておりました。
      スイマセン、端末がGirl'sではありませんでした。
      ②の手順で進めて、「BreakSuidDiag」実行の時点で「This device is not supported.」との表示…
      折角ご配慮頂きましたのに…
      申し訳ありませんでした

      削除
    6. そうでしたか。
      それは残念ですね。

      ただ、Girlsでは無い方にも、この端末と同じようなrootの穴はあると思うので、今後それを発見するか、誰かが作ってくれればいいですね。

      削除
  2. Girl's ではない F-03D Kiss ビルド番号 V23R32Cを入手したので

    c00e838c T sys_setresuid

    を元に、ソースのF-03Dの行の該当部分を c00e838c に置き換えてビルドを試みましたが

    以下のエラーになります。確かにダウンロードしたZIPファイルには diag.h ファイルはありません。

    何かおわかりになりましたらご教授いただけると助かります。APKのビルドは経験がないので機械的にこの記事の操作をトレースしているだけの状態です。

    **** Build of configuration Default for project MainActivity ****

    Z:\android-ndk-r8e-windows-x86\android-ndk-r8e\ndk-build.cmd all
    "Compile thumb : diaggetroot <= common.c
    jni/common.c:28:33: fatal error: libdiagexploit/diag.h: No such file or directory
    compilation terminated.
    make: *** [obj/local/armeabi/objs/diaggetroot/common.o] Error 1

    **** Build Finished ****

    返信削除