パズドラは起動時にroot権のチェックを行なっていて、suの有無や
Superuser.apkの有無でチェックに引っかかると起動しない仕掛けに
なっています。
suファイルとapkファイルをrenameすれば起動出来ますが、
都度、手動でunrootは非常に手間だったりします。
そこで、unroot~ゲーム起動~再度root化を行うTaskerの
タスクとプロファイルを作成してみましたので公開します。[ad]
■ 設計・仕様 ■
- root化されたAndroid機器での利用を想定
- PATHが通った所にbusyboxがインストールされている必要あり。
- default.propの改変は対象外 (ro.debuggable / persist.service.adb.enableが1の人)
- Taskerのタスクにて、unroot~パズドラ起動までを行う
- Taskerのタスクは、ホームにウィジェットとして置いて使う
- パズドラの終了を検知してExit Taskが発動。自動でunrootを行う
■ 導入方法 ■
Taskerの中身としてはEXIT用のプロファイルが1つとTaskが2つとなります。
- 「pazdora-tasker.zip」をダウンロード・解凍
- pazdora-exit.tsk.xml と pazdora-run.tsk.xmlを、
端末の /sdcard/Tasker/tasks フォルダにコピー - pazdora.prf.xml を /sdcard/Tasker/profilesフォルダ にコピー
- 端末からTaskerを起動
- Tasksタブ を長押し> Options から Import を実行
コピーしたタスクを選択してimportする。
- 2つのタスクをimportしたら、Profileのタブでも同様にimportを実施する
(Profileタブの長押し>Import の実行>ファイルの選択)
xmlファイルの導入はこれで完了です。
ホーム画面にウィジェットとして設置する場合は、ホーム画面長押しで、
Taskerのウィジェットを選択>「パズドラ」を選択で、ホームに設置されます。
設置したウィジェットをタップすれば、unroot処理後パズドラが起動するはずです。
default.prop改変組(海外カスタムROM使用者)用には、getprop結果を
改変しての対応方法を公開している人がいるようですので、それは別途紹介します。
# xmlのファイル名がpazdoraなのはわざとデス (手元の内容と見分けたかったので・・)
内容のとおりにやったのですが、unroot→パズドラ起動→すぐホーム画面に戻る→再rootとなってしまい、遊べません。どのようなことが考えられますか?
Android4.0なのですがdefalt.propも問題なし、/system/xbinにあることも確認しました。
ですがRun パズドラのところが動作せず困っています。設定を見なおしても全く動かないため非常に困っています。どうしたらよろしいでしょうか?
「Run パズドラのところが動作せず」とはどんな状態でしょうか。
TaskerにImport出来ないとなると、ちょっとわからないですが。
ちなみにpazdora-run.tsk.xmlの中身は以下を実行しています。
su -c busybox mount -o rw,remount /system
su -c mv /system/xbin/su /system/xbin/sx
sx -c mv /system/app/Superuser.apk /system/app/Superuserr.apk
sx -c busybox mount -o ro,remount /system
→上の後、パズドラ開始。
途中のコマンドでエラーになっている場合は、busyboxがインストールされているか
など確認してみてくださいな
このスクリプトはunroot→パズドラ起動、パズドラ終了時→root化っていう動きで間違いないですよね?
スクリプト起動後正しく「Disable SU」表示が出てunrootはされてますが、パズドラ自動起動が働いていないようなのです。このDisable SUメッセージが表示されてから1秒後くらいに普通にパズドラを選んで起動して遊ぶことはできるようです。
遊んだあと終了すると「Enable SU」も働くようです。
caplio様 有用なプロファイル&タスクをありがとうございます。
いかた様
遅くなりましたが、同じ症状を改善できたので報告します。
is11s android2.3で同様の状況になりましたが、
sx -c mv /system/app/Superuser.apk /system/app/Superuserr.apk
を長押し⇒disableにすることで動作しました。
原因としては、スーパーユーザ権限をSuperuser.apkではなく
SuperSU.apkで管理しているからだと考えられます。
そのため、リネームのコマンドでエラーが生じて次に進まなくなります。
(「Superuser.apkねーよ」って感じです。)
エラーでよくわからないときは、すべてのコマンドの間にPopupをぶち込んで
どこでエラーが出ているか確認するぐらいのほうが、手っ取り早いと思います。
それでは、今後もこのサイトを参考にさせていただきます。
ありがとうございました。
まさに探していた記事そのままでした!
本当にありがとございます!!!
ありがたく使わせていただきますm(_ _)m
ご回答ありがとうございます。
adb shellから1つずつ実行した所、一行目のマウントで失敗していました。。。
マウント確認して出直してきます。
お手数おかけしました。
----------------
shell@android:/ $ su -c busybox mount -o rw,remount /system
su -c busybox mount -o rw,remount /system
BusyBox v1.19.0 (2011-08-14 23:46:58 CDT) multi-call binary.
Copyright (C) 1998-2011 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.
Usage: busybox [function] [arguments]...
or: busybox --list[-full]
or: function [arguments]...
BusyBox is a multi-call binary that combines many common Unix
utilities into a single executable. Most people will create a
link to busybox for each function they wish to use and BusyBox
will act like whatever it was invoked as.
Currently defined functions:
[, [[, acpid, add-shell, addgroup, adduser, adjtimex, arp, arping, ash,
awk, base64, basename, beep, blkid, blockdev, bootchartd, brctl,
以下略
----------------
suがsxにrenameされてる状態かもしれませんね。
また何かありましたらコメント下さい
タスク使わせていただきましたがsuのmvが上手く
動きませんでした。
マウントは成功しているのですが考えられる
原因はわかりますでしょうか?
中身は、以下のコマンドなので、そのどこで失敗しているか・・
という話になりますね・。
su -c busybox mount -o rw,remount /system
su -c mv /system/xbin/su /system/xbin/sx
sx -c mv /system/app/Superuser.apk /system/app/Superuserr.apk
sx -c busybox mount -o ro,remount /system
→上の後、パズドラ開始。
su のPATHがxbinじゃなかったりすると上手く動かないです。
su が /system/sbin とかにある人は、その部分の書き換えが必要です