tetsu31415.log

androidなどのことを書き綴っていこうと思います。

F-12Dのroot化について

前回の記事ではらくらくスマートフォンF-12Dの特徴について書きましたが今回はF-12Dのroot化についてまとめてみます。

この記事はroot化およびsystem書き換えに関する内容です。
これを行うとメーカー保証がなくなり文鎮化しても自己責任です。
とくにFUJITSU端末は復旧手段が用意されていないので大変危険です。
この記事の内容が理解できない方は実行しないことを強くおすすめします。

root化

はじめに、goroh_kun氏、fi01氏に感謝します。

root化に使用するファイルはこちらにおいておきます。
f12d_rootkit.zip

システム権限を奪取

APK署名に関する脆弱性(9695860)を使ってsystem権限で動くアプリを上書きし、system権限を奪取します
ここではfi01氏作のVpnFaker(システムアプリVpnDialogsにターミナルと起動毎に実行するプログラムを組み込んだもの)を偽装署名したものを上書きします。

するとランチャーにsystem権限で動くターミナルがインストールされます。

> adb install -r F12D_VpnFaker.apk

f:id:tetsu31415:20140325005457p:plain
(system@androidになることを確認)

一時rootを奪取

goroh_kun氏作のmkdevshを利用して一時root権限を取得する。

ファイル転送

> adb push mkdevsh /data/local/tmp/mkdevsh
> adb push onload.sh /data/local/tmp/onload.sh
> adb shell chmod 777 /data/local/tmp/mkdevsh
> adb shell chmod 777 /data/local/tmp/onload.sh

VpnFakerのターミナルにて

system@android / $ /data/local/tmp/onload.sh

system@android / $ /dev/sh
# ← になることを確認

f:id:tetsu31415:20140325005603p:plain

suを導入

/system/xbinにsuを導入します。

> adb push su /data/local/tmp/su

> adb shell
$ /dev/sh
# mount -o rw,remount /system
# dd if=/data/local/tmp/su of=/system/xbin/su
# chown root.root /system/xbin/su
# chmod 6755 /system/xbin/su
# mount -o ro,remount /system
# sync;sync;sync;

# reboot

SuperSUを導入

> adb install SuperSU.apk

f:id:tetsu31415:20140325005631p:plain

f:id:tetsu31415:20140325005634p:plain

SuperSUが正常に動作したらVpnFakerをアンインストールする

> adb uninstall com.android.vpndialogs

以上でroot化は完了です。

GooglePlayの導入

インストール

必要なもの (他の端末やネット上から探す)

  • GoogleServicesFramework.apk
  • GoogleLoginService.apk
  • Vending.apk
  • Playストアのapk (ここではPlayStore.apkとする)
  1. /system/app/に上3つのファイルをコピーします。(ファイラーアプリなどでコピーしても結構です)
> adb push GoogleServicesFramework.apk /data/local/tmp/
> adb push GoogleLoginService.apk /data/local/tmp/
> adb push Vending.apk /data/local/tmp/

> adb shell
$ su
# mount -o rw,remount /system

# cat /data/local/tmp/GoogleServicesFramework.apk > /system/app/GoogleServicesFramework.apk
# cat /data/local/tmp/GoogleLoginService.apk > /system/app/GoogleLoginService.apk 
# cat /data/local/tmp/Vending.apk > /system/app/Vending.apk

# chmod 644 /system/app/GoogleServicesFramework.apk
# chmod 644 /system/app/GoogleLoginService.apk 
# chmod 644 /system/app/Vending.apk

# mount -o ro,remount /system
  1. PlayストアのapkをVendingに上書き。(ファイラーアプリなどを使って端末単体でもできます)
> adb install -r PlayStore.apk

これでPlayストアが使えるようになりました。
しかし、この状態ではパーミッションが足りていないため、Googleマップを使用するアプリや、位置情報を利用するアプリのインストールができません。

f:id:tetsu31415:20140325005714p:plain

フルマーケット化

GoogleMapやLocation関連のパーミッションを追加します。

用意するもの(他の端末などから吸い出す)
/system/framework/

/system/etc/permissions/

/system/app/

  • NetworkLocation.apk

これらのファイルを同じ場所にコピーする。
android.hardware.location.gps.xmlは上書きする。
権限はすべて644に設定する。

これでフルマーケット化は完了しました。

しかし、本体設定にネットワーク位置情報の設定が無いためWi-Fiやモバイルネットワークを使った位置情報の取得はできません。(GPSのみとなる)。

最後まで読んでいただきありがとうございました。

誤りなどあれば@tetsu31415までご連絡ください。

参考

[HOWTO][ROOTING]AndroidのAPK署名の脆弱性を使ったroot化
http://android.slateblue.tk/viewtopic.php?f=19&t=100

DoCoMo Arrows Me F-11Dで永久 rootを取る方法
http://www.neko.ne.jp/~freewing/android/docomo_arrows_f11d_root/