rootedなNexus 7でパズドラを動かしてみた。
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が絡んできますが、それ以外は役に立つかもしれません。
とりあえず、Root Checker辺りは入れておいたほうがいいと思います。理由は、自分が今root状態なのか非root状態なのか確認できるのと、BusyBoxがインストール済みかどうか分かるのと、自分の使っているsuperuserツールが何なのか、suのパスはどこなのかが一目でわかるからです。Root Switchを導入する上で確認用に便利なツールです。
で、早速PCとNexus 7をUSBで接続して、RootSwitch.batを起動してやってみた時に、最初にはまった問題です。まず、デバイスの認識で失敗します。あれっと思って、コマンドプロンプトからadb devicesと打ってみる分には成功します。
※ちなみにデバイスの番号の頭がSHである必要はありません。
調べてみると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非改変の場合)の実行が失敗するという場合。
ちゃんと、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
そしてGScript Liteの編集画面で呼び出すファイルをsuswからsusw2としてsaveして実行してみます。
すると、実行に成功しました。なんでこれで成功するのかは深く突き詰めていませんが、suswの他の部分に何か問題を発生させる要因が有るのでしょう。とにかくこれでroot状態がDisableとなります。(非root状態)
この状態でパズドラを起動すると正常に起動させることができます。パズドラが初期状態で名前を入れるところから始まってしまった場合は、バックアップデータなどで復元すると大丈夫でした。
もう一度実行すると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の画面に貼り付けて登録します。
するとちゃんとroot状態のenable/disableを切り替えることが出来ました。手っ取り早くやりたい方で、意味が理解できる方はお試しあれです。
そんな訳でroot化済みのNexus 7で無事パズドラを動かすことが出来るようになりました。くれぐれもroot化済みの端末でパズドラを遊ぶ場合は、パズドラのバックアップをこまめにすることをおすすめします。
タグ : Nexus 7
KUMA TYPEさんへ
こんばんは、私はRootSwitchを利用してルート権の切換えが上手く出来ませんでした。Android SDK Toolsがきちんと張りったと思ってたが、どうやら/dataの中に/tool/suswを上手く導入できませんでした。
おかげさまで、”究極に手っ取り早い方法”どおりにしたら、パズドラが遊べるようになりましたが, ルート権のenable とdisableがパズドラを遊ぶごとにGscriptLiteで切り替えなれればならなりません。 これはうまくできたということでしょうか? また、毎回手で切り替えるのは面倒くさいと思いますが、なんか自動的な方法はないでしょうか?
よろしくお願いします。
こんにちは、
それで正常です。
suswをGscript Liteから呼び出すか
suswの中身をGscript Liteに直接書いているかの違いしかないので
通常の導入で成功した場合でも、手動でGscript Liteからenable/disableの切り替えをする必要があります。
最初に書いた通り、RootSwitchはパズドラを無条件でroot環境で動かすためのツールではなくrootと非root環境を手動で切り替えるツールなので、そういうものだと思ってください。
それから、記事中にも書いているとおりroot状態でパズドラを起動するとセーブデータが消えるので、こまめにバックアップを取ることをおすすめします。
RootSwitchはrootと非root環境を切り替えるのには便利なツールですが、パズドラを動かすためのツールとしてはセーブデータが消えるリスクが高いのでパズドラ向きではないと思っています。
そういうわけで、私は非root専用の安いタブレットを別に1台持つのがベストだと思っています。
私も導入時に混乱したんですけど、RootSwitchを入れたらパズドラがroot環境で無条件で動くと誤解する様な書き方しているサイトがあるんですよね。
私も「パズドラを遊びたいnexus 7の持ち主」さんと同じような期待を最初してました。
RootSwitchのインストーラーも誰にでもインストールできるようにという善意の配慮でできているわけですが、Nexus 7の場合はそれがかえってトラップになってたりするのが導入のハードルを高くしています。