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をマウントするまでの手順は次に書きます。
初歩的な質問で申し訳ありません。
返信削除apkをビルドしている際、「Error: Program "sh" not found in PATH」と
出て、Main Activityが実行できません。
全て上記の手順通りに行っておりますが…
Pathが通ってないようなエラーに見えますが、ごめんなさい私もあまり詳しくないので分かりません。
削除エラーでググッたところ、同じようなエラーがEclipse Communityにあったのでこちらに回避方法が書いてあるかもです。
http://www.eclipse.org/forums/index.php/t/369435/
お役に立てずにすみません。
本内容をググっても見つけられませんでした…
削除自分にはハードルが高い内容だったかもしれません…
身の程を考えて諦めることとします。
ありがとうございました
でもF-03Dに関しては、諦められないな…、くやしい
このコメントは投稿者によって削除されました。
削除すいません…
削除ありがとうございます
色々とご配慮頂きありがとうございました。
削除root化を試みましたが、肝心な部分を確認し漏らしておりました。
スイマセン、端末がGirl'sではありませんでした。
②の手順で進めて、「BreakSuidDiag」実行の時点で「This device is not supported.」との表示…
折角ご配慮頂きましたのに…
申し訳ありませんでした
そうでしたか。
削除それは残念ですね。
ただ、Girlsでは無い方にも、この端末と同じようなrootの穴はあると思うので、今後それを発見するか、誰かが作ってくれればいいですね。
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 ****