自行谷歌翻译:
Arrows V F-04E Root化
ねんがんの root化ができたぞー!
Arrows V F-04Eのroot化ができたのでメモします。
初めに述べておきますが、私はLinuxの知識がそこまであるわけでもないし、セキュリティに詳しいわけでもありません。
こんな素人が考えた手順を実行してスマホが高性能カイロからハイスペック文鎮になっても私は責任を取りませんので、あらかじめご了承ください。
Root化支援バッチファイル作りました⇒次の記事
この機種は旧バージョンのころには2chにRootスレがあったのですが、アップデートによりrootスレの方法ではできなくなった上、Rootキットもリンク切れになってしまい、スレもDat落ちしてしまいました。
私は白ロムで購入した日にアップデートしてしまってroot化ができませんでした。(アホです)
そのrootスレで一番最初にやり方を公開してくれた方のサイトはとても参考になります。
http://kocha1979.blog.fc2.com/blog-entry-1.html
コマンド等はこちらを参考に(というかこのやり方に大体沿ってます。というかコピペしてます。すいません。)
もしかしたらこの方法、他の機種でも使えるかもしれません。
※「>$#」の記号はプロンプトを表しています。入力する必要はありません。
/*まずはじめにわかる人のためのとてもざっくりした説明*/
1.get_essential_addressとrun_root_shellとunlock_security_moduleを用いて一時Rootをとる
2.送り込むのはsuではなくrun_root_shell。これをsuにリネームしてsystem/binへコピー、パーミッションセット
3.su管理アプリでそのアプリ用のsuに置き換え
/*----------------こんな感じ--------------------*/
第1章 準備
◆1.必要なもの
・Git for windows ・・・ githubからZipでダウンロードしてもエラーになるので、必須
・cygwin ・・・device databaseをコンパイルするのに必要です。
・Adbドライバとabdコマンド
ドライバ:富士通公式 http://spf.fmworld.net/oss/driver/adb/
Abdコマンド:AndroidSDKから持ってくるもよし、単体で用意するのもよし。
・android-ndk-r8e
これは自分で調達してください。他のバージョンは動作確認していません。
32bit版と64bit版あるので気を付けてください。
ndk-buildコマンドが通るようにパス登録を行ってください。
・busybox ・・・ 適当に。作業フォルダへコピーしてください。
◆2.プログラムのダウンロード
android_get_essential_address
android_run_root_shell
unlock_security_module_git
この3つを用意します。いずれもGithubにソースコードがあります。
<作者の hiikezoe様 fi01様 に感謝いたします。>
Gitをインストールするとパスが自動的に通るはずです。
次のコマンドを実行してソースコードをダウンロードします。
管理者としてコマンドプロンプトを実行してください(run_root_shellでフリーズしないため)
作業フォルダ> git clone --recursive https://github.com/android-rooting-tools/android_get_essential_address
作業フォルダ> git clone --recursive https://github.com/android-rooting-tools/android_run_root_shell
作業フォルダ> git clone --recursive https://github.com/fi01/unlock_security_module
◆3.データーベースにこの機種の脆弱性を突くためのアドレスを登録します。
F04Eのビルド番号がV11R43Bの場合、あらかじめアドレスは調べてあるので
面倒くさいなら5.に飛んでください。
1.get_essential_addressフォルダで、
>ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk
2.コンパイルされると、objフォルダの底にget_essential_addressができるので
作業フォルダに持ってきてください。
3.次のコマンドで転送&実行
> adb push get_essential_address /data/local/tmp
> adb shell
$ cd /data/local/tmp
$ chmod 755 ./get_essential_address
$ ./get_essential_address
4.現在最新カーネルだと
Essential address are:
prepare_kernel_cred = 0xc00928ac
commit_creds = 0xc0092268
remap_pfn_range = 0xc00e3c98
vmalloc_exec = 0xc00e3c98
ptmx_fops = 0xc0b955f4
と表示されるはずです。
5.android_run_root_shellフォルダのDeviceDatabaseフォルダを開いてください。
db_init.sqlの中に旧バージョンのF04Eのアドレスがあるので
4.で調べたアドレスに書き換えてください。
ビルド番号も変更しておいてください。
device_database.hについては忘れました。
エラーが出るなら旧を書き換えてください。
6.その調子でunlock_security_moduleのデバイスデーターベースも編集してください。
device_address.cとdb_init.sqlです。
7.device.dbの作成をおこないます。
cygwinでrun_root_shellのdevice_databaseへアクセスし、
make all
とコマンドを実行してください。できます。
作業フォルダにコピーしておきます。
◆4.コンパイル
run_root_shellフォルダで
> ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=.\Android.mk
unlock_security_moduleフォルダで
> ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=.\Android.mk
とすると、それぞれのフォルダの中にobjフォルダがあり、その底にバイナリができています。
作業フォルダへコピーしましょう。
ここまで来たら、作業フォルダの中を確認しましょう。
busybox
device.db
get_essential_address
run_root_shell
unlock_security_module
こんな感じになってるはずです。
第2章 一時Root取得
AndroidとPCをUSBケーブルつなぎます。開発者オプションにてUSBデバッグにチェックを忘れず入れましょう。開発者オプションをONにしただけではだめです。
1.送信
> adb push run_root_shell /data/local/tmp/run_root_shell
> adb push unlock_security_module /data/local/tmp/unlock_security_module
> adb push device.db /data/local/tmp/device.db
> adb push busybox /data/local/tmp/busybox
2.アクセス権の変更
>adb shell
$ chmod 755 /data/local/tmp/run_root_shell
$ chmod 755 /data/local/tmp/unlock_security_module
3.実行
$./run_root_shell
#./unlock_security_module
第3章 永久Root取得
ここが最大の難関でした。第2章ではsuを送信していません。なぜなら、出回っているsuだとadbからは昇格できても、端末側からターミナルエミュレータ等でsuと実行しても署名エラー(?)が出るのです。なので、一時Rootをとるrun_root_shellをsuコマンドとしてシステムに送ります。
1./systemの書き込み権限つき再マウント
# mount -o rw,remount /system /system
2.system/binにいろいろ仕込む
# dd if=/data/local/tmp/run_root_shell of=/system/bin/su # chown root.root /system/bin/su
# chmod 06755 /system/bin/su
# dd if=/data/local/tmp/unlock_security_module of=/system/bin/usm # chown root.root /system/bin/usm
# chmod 06755 /system/bin/usm
(xbinにもsuを入れておくといいかも)
3.busyboxの仕込み
# 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
Arrows V F-04E Root化
ねんがんの root化ができたぞー!
Arrows V F-04Eのroot化ができたのでメモします。
初めに述べておきますが、私はLinuxの知識がそこまであるわけでもないし、セキュリティに詳しいわけでもありません。
こんな素人が考えた手順を実行してスマホが高性能カイロからハイスペック文鎮になっても私は責任を取りませんので、あらかじめご了承ください。
Root化支援バッチファイル作りました⇒次の記事
この機種は旧バージョンのころには2chにRootスレがあったのですが、アップデートによりrootスレの方法ではできなくなった上、Rootキットもリンク切れになってしまい、スレもDat落ちしてしまいました。
私は白ロムで購入した日にアップデートしてしまってroot化ができませんでした。(アホです)
そのrootスレで一番最初にやり方を公開してくれた方のサイトはとても参考になります。
http://kocha1979.blog.fc2.com/blog-entry-1.html
コマンド等はこちらを参考に(というかこのやり方に大体沿ってます。というかコピペしてます。すいません。)
もしかしたらこの方法、他の機種でも使えるかもしれません。
※「>$#」の記号はプロンプトを表しています。入力する必要はありません。
/*まずはじめにわかる人のためのとてもざっくりした説明*/
1.get_essential_addressとrun_root_shellとunlock_security_moduleを用いて一時Rootをとる
2.送り込むのはsuではなくrun_root_shell。これをsuにリネームしてsystem/binへコピー、パーミッションセット
3.su管理アプリでそのアプリ用のsuに置き換え
/*----------------こんな感じ--------------------*/
第1章 準備
◆1.必要なもの
・Git for windows ・・・ githubからZipでダウンロードしてもエラーになるので、必須
・cygwin ・・・device databaseをコンパイルするのに必要です。
・Adbドライバとabdコマンド
ドライバ:富士通公式 http://spf.fmworld.net/oss/driver/adb/
Abdコマンド:AndroidSDKから持ってくるもよし、単体で用意するのもよし。
・android-ndk-r8e
これは自分で調達してください。他のバージョンは動作確認していません。
32bit版と64bit版あるので気を付けてください。
ndk-buildコマンドが通るようにパス登録を行ってください。
・busybox ・・・ 適当に。作業フォルダへコピーしてください。
◆2.プログラムのダウンロード
android_get_essential_address
android_run_root_shell
unlock_security_module_git
この3つを用意します。いずれもGithubにソースコードがあります。
<作者の hiikezoe様 fi01様 に感謝いたします。>
Gitをインストールするとパスが自動的に通るはずです。
次のコマンドを実行してソースコードをダウンロードします。
管理者としてコマンドプロンプトを実行してください(run_root_shellでフリーズしないため)
作業フォルダ> git clone --recursive https://github.com/android-rooting-tools/android_get_essential_address
作業フォルダ> git clone --recursive https://github.com/android-rooting-tools/android_run_root_shell
作業フォルダ> git clone --recursive https://github.com/fi01/unlock_security_module
◆3.データーベースにこの機種の脆弱性を突くためのアドレスを登録します。
F04Eのビルド番号がV11R43Bの場合、あらかじめアドレスは調べてあるので
面倒くさいなら5.に飛んでください。
1.get_essential_addressフォルダで、
>ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk
2.コンパイルされると、objフォルダの底にget_essential_addressができるので
作業フォルダに持ってきてください。
3.次のコマンドで転送&実行
> adb push get_essential_address /data/local/tmp
> adb shell
$ cd /data/local/tmp
$ chmod 755 ./get_essential_address
$ ./get_essential_address
4.現在最新カーネルだと
Essential address are:
prepare_kernel_cred = 0xc00928ac
commit_creds = 0xc0092268
remap_pfn_range = 0xc00e3c98
vmalloc_exec = 0xc00e3c98
ptmx_fops = 0xc0b955f4
と表示されるはずです。
5.android_run_root_shellフォルダのDeviceDatabaseフォルダを開いてください。
db_init.sqlの中に旧バージョンのF04Eのアドレスがあるので
4.で調べたアドレスに書き換えてください。
ビルド番号も変更しておいてください。
device_database.hについては忘れました。
エラーが出るなら旧を書き換えてください。
6.その調子でunlock_security_moduleのデバイスデーターベースも編集してください。
device_address.cとdb_init.sqlです。
7.device.dbの作成をおこないます。
cygwinでrun_root_shellのdevice_databaseへアクセスし、
make all
とコマンドを実行してください。できます。
作業フォルダにコピーしておきます。
◆4.コンパイル
run_root_shellフォルダで
> ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=.\Android.mk
unlock_security_moduleフォルダで
> ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=.\Android.mk
とすると、それぞれのフォルダの中にobjフォルダがあり、その底にバイナリができています。
作業フォルダへコピーしましょう。
ここまで来たら、作業フォルダの中を確認しましょう。
busybox
device.db
get_essential_address
run_root_shell
unlock_security_module
こんな感じになってるはずです。
第2章 一時Root取得
AndroidとPCをUSBケーブルつなぎます。開発者オプションにてUSBデバッグにチェックを忘れず入れましょう。開発者オプションをONにしただけではだめです。
1.送信
> adb push run_root_shell /data/local/tmp/run_root_shell
> adb push unlock_security_module /data/local/tmp/unlock_security_module
> adb push device.db /data/local/tmp/device.db
> adb push busybox /data/local/tmp/busybox
2.アクセス権の変更
>adb shell
$ chmod 755 /data/local/tmp/run_root_shell
$ chmod 755 /data/local/tmp/unlock_security_module
3.実行
$./run_root_shell
#./unlock_security_module
第3章 永久Root取得
ここが最大の難関でした。第2章ではsuを送信していません。なぜなら、出回っているsuだとadbからは昇格できても、端末側からターミナルエミュレータ等でsuと実行しても署名エラー(?)が出るのです。なので、一時Rootをとるrun_root_shellをsuコマンドとしてシステムに送ります。
1./systemの書き込み権限つき再マウント
# mount -o rw,remount /system /system
2.system/binにいろいろ仕込む
# dd if=/data/local/tmp/run_root_shell of=/system/bin/su # chown root.root /system/bin/su
# chmod 06755 /system/bin/su
# dd if=/data/local/tmp/unlock_security_module of=/system/bin/usm # chown root.root /system/bin/usm
# chmod 06755 /system/bin/usm
(xbinにもsuを入れておくといいかも)
3.busyboxの仕込み
# 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