ISW11F root化のソースを表示
新しいページはコチラ
移動:
案内
,
検索
※手順どおり実行しても、うまくいくかどうか確認できていません。今後実施する予定。 :AndroidSDKをインストール Naverまとめに掲載されている方法では、最新バージョンを適用したISW11FのRoot化はできないことが分かりました。 :アンドロイドバージョン:4.0.3 :ベースバンドバージョン:V27R47I(末尾の英文字はアイです。) とりあえず、今はroot化できる方法はわかったのですが、どうやら切り替えとかの手順がありそうなのですが、 どこからどこまでが切り替え手順なのか?再起動する耽美にこんな複雑な手順をするのか?とか、 そういう状態でして、 「Abdroidシステムを起動するが不正アプリがインストールされているため、起動できません。不正アプリを削除してください。」 というメッセージが起動後に数回表示される状態で放置中です。下側にあるバーの右側にあたる、キャンセルボタンを押せば表示は消えて、普通に?というか、今のところ支障なく使えている状態です。アイタタタ。 フォントのインストールしようと思ってたのに、root化までいってから、再起動したんでrootじゃなくなったみたいで、フォントのインストールをするという目的が果たせませんでした。 残りは、また明日以降!rootやるんじゃなかったかも…(´・ω・`)ショボーン まぁいい。まぁいい。これもなんかの勉強だ。ゴミみたいなスマフォだし。ゴミになるまで遊ぼう! 2日目 :未達。suバイナリーの更新がうまくいっていないらしい。ツールに頼っているので、意味が分からない。しらべるとリカバリがどうのこうのという方法もあるらしい。起動時のエラーはルート化とはこういうものらしい。ふむー。また明日っすね。途中、死にかけた。ADB root状態で/system/bin/shを消してしまいました。alias mksh shで再作成できました。危なかった。永遠にadb shellが使えなくなるとこでした。 結論rootは危険。と。 3日目 :'''到達!'''suバイナリーの更新なんてうまくいかなくっても良いらしい。Superuser.apkのzipファイルに同梱されているsuファイルをおきかえて権限の設定をしっかりやったら、動くようになりました。SuperUserもSuperSUも両方インストールしている状態ですが、特に問題なく使えているので、このままっすね。手順はあとでまとめます。今日はrootで遊びます。rootが危険なのはわかっている。だから、気を付けて遊びます。無事におうちにかえれたら(何事もなくスマホが使える状態が維持できればってことね。)、手順を書きます。じゃ。そういうことで。 ==手順(150821時点)== *http://superuserdownload.com/ から(superuser apk download for android)(v3.1.3) と記述のあるリンクからダウンロードする。 :感謝の気持ちがあるのであれば、こういう時はアフィリエイト広告のクリック(お金を払うのは広告主だから、広告もちら読みしないとね。)くらいはしてもよいと思う。以下ソフトウェア入手でも同じ。 *上記ファイルを解凍した中からSuperuser.apkとsuファイルをみつけてC:\Tempに保管する。作業用のフォルダは最後は消します。なければフォルダ作ってファイルを抜き出して下さい。以降でWindowsのコマンドを使うときに説明書どおりではなくなったりして、面倒なことになります。説明書の意味を理解できるという上級者は好きなようにやって下さい。 *http://bit.ly/18G47EZ からVpnFaker-V21.zip(busybox同梱)をダウンロードする。 *http://bit.ly/12G0hId からfj_hdcp_unlock.zipをダウンロードする。 *http://bit.ly/1d0RXIA からfake.apk同梱のzipファイルをダウンロードする。 *上記のzipファイル群から、busyboxとfake.apkとfj_hdcp_unlock_V27R47Iを見つけて、C:\Tempに保管する。 *ADB,JDKを導入する。導入方法は当管理人サイトのブログである「よねろぐ」の記事でも紹介しています。以下リンクをチェックして下さい。 : *ISW11F側の操作で[設定]-[開発者向けオプション]でUSBデバッグ、スリープモードにしない、CPU使用状況を表示にチェックを入れる。 *ISW11FとPC(Windows)とをUSBケーブルで接続する。(ステータスアイコンにUSBデバッグが接続されました。の情報が出るまでの間、しばらく待つ) *コマンドプロンプトを立ち上げる。※1.赤字部分が入力するコマンドです。 ※2.コマンドの途中で改行することはないので、改行されている場合は折り返されているだけと考えてください。 {| class="wikitable" |- |C:\Users\[あなたのPCのログイン名、以降は仮にAdministratorと記述します。]><span style="color:red">adb shell push C:\Temp\su /data/local/tmp/</span><br /> <nowiki>****</nowiki> KB/s (380532 bytes in 0.***s)<br /> C:\Users\Administrator><span style="color:red">adb shell push C:\Temp\Superuser.apk /data/local/tmp/</span><br /> <nowiki>****</nowiki> KB/s (1468789 bytes in 0.***s)<br /> C:\Users\Administrator><span style="color:red">adb shell push C:\Temp\busybox /data/local/tmp/</span><br /> <nowiki>****</nowiki> KB/s (1867568 bytes in 0.****s)<br /> C:\Users\Administrator><span style="color:red">adb shell push C:\Temp\fj_hdcp_unlock_V27R47I /data/local/tmp/</span><br /> <nowiki>****</nowiki> KB/s (72248 bytes in 0.0**s)<br /> C:\Users\Administrator><span style="color:red">adb install -r C:\Temp\fake.apk</span><br /> <nowiki>****</nowiki> KB/s (38162 bytes in 0.0**s)<br /> C:\Users\Administrator><span style="color:red">adb shell chmod 755 /data/local/tmp/Superuser.apk</span><br /> C:\Users\Administrator><span style="color:red">adb shell chmod 755 /data/local/tmp/su</span><br /> C:\Users\Administrator><span style="color:red">adb shell chmod 755 /data/local/tmp/fj_hdcp_unlock_V27R47I</span><br /> C:\Users\Administrator><span style="color:red">adb shell chmod 755 /data/local/tmp/busybox</span><br /> pkg: /data/local/tmp/fake.apk<br /> Success<br /> C:\Users\Administrator><span style="color:red">adb shell am start -D -a android.intent.action.MAIN -n com.fujitsu.mobile_phone.aoss/android.app.Activity</span><br /> Starting: Intent { act=android.intent.action.MAIN cmp=com.fujitsu.mobile_phone.aoss/android.app.Activity }<br /> C:\Users\Administrator><span style="color:red">adb jdwp</span><br /> <span style="color:blue">19030</span><br /> C:\Users\Administrator><span style="color:red">adb forward tcp:8600 jdwp:'''19030'''</span> ※太字部分はひとつ前のコマンドで調べた青色の値を入力<br /> C:\Users\Administrator><span style="color:red">jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8600</span><br /> 捕捉されないjava.lang.Throwableの設定<br /> 遅延した捕捉されないjava.lang.Throwableの設定<br /> jdbの初期化中...<br /> > <span style="color:red">threads</span><br /> グループsystem:<br /> (java.lang.Thread)0xc1417cff40 <5> Compiler は条件を待機中です<br /> (java.lang.Thread)0xc1417cfd60 <3> Signal Catcher は条件を待機中です<br /> (java.lang.Thread)0xc1417cfc80 <2> GC は条件を待機中です<br /> グループmain:<br /> (java.lang.Thread)<span style="color:blue">0xc140b58460</span> <1> main は実行中です<br /> (java.lang.Thread)0xc1417d3700 <10> Binder Thread #2 は実行中です<br /> (java.lang.Thread)0xc1417d35a8 <9> Binder Thread #1 は実行中です<br /> (java.lang.Thread)0xc1417d02f0 <8> FinalizerWatchdogDaemonはスリープ中です<br /> (java.lang.Thread)0xc1417d0198 <7> FinalizerDaemon は条件を待機中です<br /> (java.lang.Thread)0xc1417d0030 <6> ReferenceQueueDaemon は条件を待機中です<br /> > <span style="color:red">thread '''0xc140b58460'''</span> ※太字部分はひとつ前のコマンドで調べたmain threadのID、青色の値を入力<br /> <1> main[1] <span style="color:red">stop in android.os.MessageQueue.next()</span><br /> ブレークポイントandroid.os.MessageQueue.next()の設定<br /> <1> main[1]<br /> ヒットしたブレークポイント: "スレッド=<1> main", android.os.MessageQueue.next()、行=111 bci=0<br /> |} *ここで、aossアプリのデバッグでブレーク状態になっています。この状態で、もうひとつコマンドプロンプトを立ち上げる。 {| class="wikitable" |- | C:\Users\Administrator><span style="color:red">adb shell am start --activity-clear-task -a android.intent.action.MAIN -n com.fujitsu.mobile_phone.aoss/android.app.Activity</span><br /> |} *元のコマンドプロンプトに戻ると上記のコマンドの結果スレッド中断状態に遷移していて、プロセスがRuntimeコマンドの権限を得た状態でデバッグコマンドが再び使えるようになっている。引き続き、コマンド入力を以下のとおり続ける。 {| class="wikitable" |- | C:\Users\Administrator><nowiki><1> main[1] </nowiki><span style="color:red">print java.lang.Runtime.getRuntime()</span><br /> java.lang.Runtime.getRuntime() = '''<nowiki>"java.lang.Runtime@40bca5b8"</nowiki>''' ※太字部分がNullで ないことを確認。Nullの場合はしばらく待って再度同じコマンドで確認してみる。<br /> C:\Users\Administrator><nowiki><1> main[1] </nowiki><span style="color:red">print java.lang.Runtime.getRuntime().exec("/data/local/tmp/busybox telnetd -p 8899 -l sh")</span><br /> java.lang.Runtime.getRuntime().exec("/data/local/tmp/busybox telnetd -p 8899 -l sh") = "Process[pid=20220]"<br /> C:\Users\Administrator><nowiki><1> main[1] </nowiki> |} *上記によって、busyboxというUnixコマンド機能を利用できるツール経由でtelnetを起動する。8899番ポートを使うのが流行りみたいです。そして、このコマンドプロンプトはこのまま放置して、また別のコマンドプロンプトでの操作をします。さっき使ったやつがまだ起動していれば、それを再利用してもいいです。コマンドプロンプトを新しく立ち上げてもいいです。 {| class="wikitable" |- | C:\Users\Administrator><span style="color:red">adb shell</span><br /> shell@android:/ $ <span style="color:red">/data/local/tmp/busybox telnet 127.0.0.1:8899</span><br /> /data/local/tmp/busybox telnet 127.0.0.1:8899<br /> <br /> Entering character mode<br /> Escape character is '^]'.<br /> <br /> <br /> system@android:/ $ <span style="color:red">id</span> ※ここでなぜかsystemのidを取得できているはずなのでidコマンドで確認してみる。うまくいっていれば次のように表示される。<br /> id<br /> uid=1000(system) gid=1000(system) groups=1006(camera),1015(sdcard_rw),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats),3007(net _bw_acct)<br /> system@android:/ $ <span style="color:red">/data/local/tmp/run_root_shell</span>※システム権限からroot権限へ<br /> <br /> <br /> Device detected: ISW11F (FIK700)<br /> <br /> Attempt acdb exploit...<br /> ISW11F (FIK700 V27R47I) is not supported.<br /> <br /> Attempt fj_hdcp exploit...<br /> system@android:/ $ <span style="color:red">id</span> ※ここでexploitの問題によってrootのidを取得できているはずなのでidコマンドで確認してみる。うまくいっていれば次のように表示される。<br /> id<br /> uid=0(root) gid=0(root)<br /> system@android:/ $ <span style="color:red">/data/local/tmp/fj_hdcp_unlock_V27R47I</span> ※これでLSM(LinuxSecureModule)を解除したことになる。<br /> /data/local/tmp/fj_hdcp_unlock_V27R47I<br /> mmap address=0x10000000<br /> security_ops.name = fjsec<br /> check: OK<br /> Killed<br /> 137|system@android:/ # <span style="color:red">mount -o rw,remount /system /system</span><br /> mount -o rw,remount /system /system<br /> system@android:/ # <span style="color:red">dd if=/data/local/tmp/su of=/system/xbin/su</span><br /> dd if=/data/local/tmp/su of=/system/xbin/su<br /> 743+1 records in<br /> 743+1 records out<br /> 380532 bytes transferred in 0.031 secs (12275225 bytes/sec)<br /> system@android:/ # <span style="color:red">chown root.root /system/xbin/su</span><br /> chown root.root /system/xbin/su<br /> system@android:/ # <span style="color:red">chmod 06755 /system/xbin/su</span><br /> chmod 06755 /system/xbin/su ※上記の/system/xbin/suの設定の必要性はイマイチわかっていませんが以下の/system/bin/suの設定は必須です。<br /> system@android:/ # <span style="color:red">dd if=/data/local/tmp/su of=/system/bin/su</span><br /> dd if=/data/local/tmp/su of=/system/bin/su<br /> 743+1 records in<br /> 743+1 records out<br /> 380532 bytes transferred in 0.031 secs (12275225 bytes/sec)<br /> system@android:/ # <span style="color:red">chown root.root /system/bin/su</span><br /> chown root.root /system/bin/su<br /> system@android:/ # <span style="color:red">chmod 06755 /system/bin/su</span><br /> chmod 06755 /system/bin/su |}
ISW11F root化
に戻る。
個人用ツール
ログイン
名前空間
ページ
議論
変種
表示
閲覧
ソースを表示
履歴表示
操作
検索
案内
メインページ
コミュニティ・ポータル
最近の出来事
最近の更新
おまかせ表示
ヘルプ
ツールボックス
リンク元
関連ページの更新状況
特別ページ