rootedなNexus 7でパズドラを動かしてみた。

Screenshot_2013-03-20-15-24-01

Nexus 7 32GB版 Android 4.2.2 root化済みです。

Nexus Root Toolkitでroot化しています。なのでroot化はSuper SUで実現されています。

なおdefault.propは非改変です。

これらの条件を前提に話を進めていきます。

Nexus Root Toolkit v1.6.3 | WugFresh

具体的には下記のサイトを参考にしてパズドラを起動できるようにしょうと思いました。

Root_Switch_v0.7.zip

というツールを使うものです。どういうことをするツールなのか詳しく書いてあるサイトがあまりないので、実際に使ってみるまでわからなかったのですが、要するに。パズドラを動かす時は、あらかじめこのツールで非root環境に戻してから遊ぶという事をするためのツールです。root環境で動かないアプリであればこのツールを使うことで同様に動かすことが可能かも知れません。

また、事はそう単純ではなくパズドラはdefault.propをいじっているかどうかも判定しているようで、そこら辺もこのツールは一時的に修正してくれます。default.propを弄っていなければ気にする必要はありません。

もう一度言うとRoot Switchはroot状態と非root状態を切り替えるツールです。アプリを使う時は非root状態に切り替えて、使い終わったら必要ならまたrootに戻しましょうというツールです。処理はroot状態をenable/disableとトグル動作します。もっとわかりやすく言うとrootをon/off出来るようになるわけです。

なので、無条件にパズドラをroot環境で動かすためのツールではない事を理解して下さい。

また、前にも書いたのですが、root化した端末でパズドラを遊ぶのは、あまりおすすめしません。root化した状態でパズドラを起動するとセーブデータがリセットされます。なので、root状態でパズドラを起動してしまうと、セーブデータが消えてしまう可能性があるのでリスキーです。どうしてもというなら、遊ぶたびにTitanium Backupやadbでこまめにバックアップを取ることをおすすめします。

とりあえず、上記のサイトを参考Root Switchの導入をトライしてみればなんとかなるんじゃないかと思いますが、トラブルに合った場合スキルがないと困ったことになるかもしれません。導入は自己の責任において行なって下さい。なるべくならフルバックアップを取ってから作業を行ったほうがいいでしょう。後から泣いても遅いです。

フルバックアップについては、下記の記事が参考になるかもしれません。

Nexus 7(Android 4.2.1)をタブレットUIにしようとして半泣きになった件【起死回生】 – KUMA TYPE

参考サイトの記事を参考にしてRoot_Switch_v0.7.zipの導入の際に、はまったところを記しておきますので、どうしてもNexus 7でパズドラやりたいけどRoot_Switch_v0.7.zipの導入に失敗するという人は参考にしてみてください。基本的にこの記事は、上記で紹介した参考サイトの補足です。参考サイトの記事をまずは読んで試してみて、うまく行かない場合にヒントになるかもしれないくらいの気持ちで見て下さい。また、私の遭遇したトラブルは私の環境独自の問題かもしれませんので、人によっては全く役に立たない情報だと思いますので、その辺りもご了承下さい。それから、私の場合はdefault.propを弄っていないのでそれを前提に話を進めますが、default.propをいじっている場合はRoot Switchに付属されているsetpropexが絡んできますが、それ以外は役に立つかもしれません。

Screenshot_2013-03-20-15-54-20
とりあえず、Root Checker辺りは入れておいたほうがいいと思います。理由は、自分が今root状態なのか非root状態なのか確認できるのと、BusyBoxがインストール済みかどうか分かるのと、自分の使っているsuperuserツールが何なのか、suのパスはどこなのかが一目でわかるからです。Root Switchを導入する上で確認用に便利なツールです。


20131826b
で、早速PCとNexus 7をUSBで接続して、RootSwitch.batを起動してやってみた時に、最初にはまった問題です。まず、デバイスの認識で失敗します。あれっと思って、コマンドプロンプトからadb devicesと打ってみる分には成功します。
※ちなみにデバイスの番号の頭がSHである必要はありません。

20131827b
調べてみるとRoot Switchにはadb.exeが付属していて、付属の物だとうまくいかない様です。Android SDK Toolsを自分でインストールして、パスを張っている人はRootSwitch.batを以下のように修正するとうまく動く様になります。入れてない人はSDKをインストールしてから試してみて下さい。adbにパスを張るのは下記の記事が役に立つかも知れません。

momo9加強版からNexus 7にアプリをデータごと移行した。 – KUMA TYPE

@files\adb devices

adbコマンドの前に@files\とパスの指定がされているのでこれを全部削除して以下のようにします。

adb devices

またはフルパスで指定するかですが、沢山あるのでテキストエディタで置換するといいでしょう。


上記の修正をしても、なんかエラーがでてる。setpropexのmvに失敗している。という場合。
画面にも表示されるのですが、RootSwitch.batの中を見てみると下記の行がありbusyboxを使っている様です。なので、あらかじめAndroid端末(Nexus 7)にBusyBoxをGooglePlayからインストールしておく必要があります。これでsetpropexのmvはうまくいくようになります。BusyBoxが必要条件なのを書いてないのでハマっている人がいるかもしれないので書いておきます。

adb shell su -c ‘busybox mv -f /data/local/tmp/setpropex /system/xbin/setpropex’


で、RootSwitch.batの実行はうまく行って、RootSwitchのインストールには成功したけど、susw(default.prop非改変の場合)の実行が失敗するという場合。

Screenshot_2013-03-20-16-42-26
ちゃんと、GScript Liteでいわれているようにスクリプト書いて実行したのに上のようなエラーがでる場合。

stderr: sh <stdin>[1]: /data/tol/susw: No such file or directory

意味がわららないよ。

対処として、私の場合、

・自分のsuがあるパスはRoot Checkerの情報から「/system/xbin/su」であることがわかっている。

・そして、default.prop非改変なので実行するコマンドはsuswの方である。

suswのはテキストフィルのスクリプトなので中を覗いてみるとsuが有るパスで処理を切り分けていることが分かる。

で、「su」のパスが「/system/xbin/su」である私の場合必要な処理は以下の部分だけであるので、下記の部分だけ切り出して、susw2というファイルを新たに作成する。もちろん作成したしたファイルには755のパーミッションをつける。パーミッションがよくわからない場合は全部チェックすればOK。

#!/system/bin/sh
if [ -f /system/xbin/su ]; then
    echo ==================
    echo
    echo !!!! Disabled !!!!
    echo
    echo ==================
    su -c ‘mount -o remount,rw /system /system’
    su -c "mv /system/app/Superuser.apk /system/app/Superuserr.apk"
    su -c "mv /system/xbin/su /system/xbin/sx"
    exit 0;
elif [ -f /system/xbin/sx ]; then
    echo =================
    echo
    echo !!!! Enabled !!!!
    echo
    echo =================
    sx -c ‘mount -o remount,rw /system /system’
    sx -c "mv /system/xbin/sx /system/xbin/su"
    su -c "mv /system/app/Superuserr.apk /system/app/Superuser.apk"
    exit 0;
fi

 

Screenshot_2013-03-20-17-00-06
そしてGScript Liteの編集画面で呼び出すファイルをsuswからsusw2としてsaveして実行してみます。

Screenshot_2013-03-20-16-46-17
すると、実行に成功しました。なんでこれで成功するのかは深く突き詰めていませんが、suswの他の部分に何か問題を発生させる要因が有るのでしょう。とにかくこれでroot状態がDisableとなります。(非root状態) 

この状態でパズドラを起動すると正常に起動させることができます。パズドラが初期状態で名前を入れるところから始まってしまった場合は、バックアップデータなどで復元すると大丈夫でした。

Screenshot_2013-03-20-16-46-40
もう一度実行するとEnabledと表示されてrootがenableになります。つまりroot状態になります。


ここまでの記事で参考になれば幸いです。


最後に究極に手っ取り早い方法ですが、default.propは非改変でBusyBoxとGscript Liteがインストール済みであれば、次の方法でも同じ事ができます。

#!/system/bin/sh
if [ -f /system/xbin/su ]; then
    echo ==================
    echo
    echo !!!! Disabled !!!!
    echo
    echo ==================
    su -c ‘mount -o remount,rw /system /system’
    su -c "mv /system/app/Superuser.apk /system/app/Superuserr.apk"
    su -c "mv /system/xbin/su /system/xbin/sx"
    exit 0;
elif [ -f /system/xbin/sx ]; then
    echo =================
    echo
    echo !!!! Enabled !!!!
    echo
    echo =================
    sx -c ‘mount -o remount,rw /system /system’
    sx -c "mv /system/xbin/sx /system/xbin/su"
    su -c "mv /system/app/Superuserr.apk /system/app/Superuser.apk"
    exit 0;
fi

先ほどのこの部分を、直接GScriptの画面に貼り付けて登録します。

Screenshot_2013-03-20-17-46-21
するとちゃんとroot状態のenable/disableを切り替えることが出来ました。手っ取り早くやりたい方で、意味が理解できる方はお試しあれです。


そんな訳でroot化済みのNexus 7で無事パズドラを動かすことが出来るようになりました。くれぐれもroot化済みの端末でパズドラを遊ぶ場合は、パズドラのバックアップをこまめにすることをおすすめします。

タグ :