2015/09/09

Taskerで一時的にroot権限とUSBデバッグを無効化してCACHATTOを起動するアプリ(ランチャー)を作成


Last Update : 06/Nov/2015

CACHATTOというアプリ使用しているのですが、このアプリは、端末がroot化されていたり、USBデバッグが有効になっていたりすると起動出来ません。

CACHATTO SecureBrowser
https://play.google.com/store/apps/details?id=jp.co.ejan.cachatto.securebrowser2

そこで、一時的にroot権限ととUSBデバッグを無効にしてからCACHATTOを起動するランチャーを作成してみました。

【手法】

以下の2つのファイルをリネームする事により、root化されていない様に見せかけています。

"/system/xbin/su" =>"xsu"にリネーム
"/sutem/app/SuperSU/SuperSU.apk" => "xsupersu.apk"にリネーム

【特徴】

1) root化済端末でも、root権限の一時的無効化とUSBデバッグの無効化、CACHATTOの立ちあげまでをワンクリックで行えます。

2) CACHATTO立ち上げ時に通知エリアにトライアングル・アイコンで"Unroot!"と通知が表示されます。


3) 上記通知には再ルート化用のボタン("TOGGLE ROOT")が表示されていますので、このボタンをタップすれば再ルート化されます。

4) 再root化されると通知エリアに"Rooted!"との通知が表示されます。


5) rootとunrootがトグルで切り替えされた際には、旧通知は消去され、最新の状態だけが通知エリアに表示されます。

【参考(従来のバージョン)】

従来使用していたものが、端末の機種変によりroot化方法が変更となり、動作しなくなりましたので、その対応を兼ねて、少し機能を追加して作り直しています。

Taskerを使って一時的にroot権限とUSBデバッグを無効化してアプリを起動する方法(CACHATTO対応)
http://galaxy-shw-m110s.blogspot.kr/2014/03/taskerrootusb.html

Toggleでroot/unrootを切り替えるアプリをTaskerで作成
http://galaxy-shw-m110s.blogspot.kr/2014/03/togglerootunroottasker.html

【必要な物】

Tasker(有料)
https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm

Secure Settings(プラグイン)
https://play.google.com/store/apps/details?id=com.intangibleobject.securesettings.plugin

Tasker App Factory(エクステンション)
https://play.google.com/store/apps/details?id=net.dinglisch.android.appfactory

追記
CACHATTO SecureBrowser "V3.18.0"(2015年11月3日配布)で新しいRoot化対策が施されましたので↓にあるSuperSUを使用してください。

SPAPA Story(韓国語)
http://spapa1004.tistory.com/search/supersu

【動作の流れ】

CACHATTOを起動する為のランチャー(CACHATTO Launcher)と、RootとUnrootをトグルで切り替えるアプリ(Toggle Root)の2つアプリで構成されています。

■CACHATTO Launcherの動作

1. "/system/xbin"に"xsu"というファイルがあれば"%list"に代入する。
2. If "%list"の件数が"1"でなければ("xsu"が存在しなければ)次の3-4を行う。
3. 別アプリの"Toggle Rout"を起動する。
4. 1秒待つ。
5. Else "%list"の件数が"1"ならば("xsu"が存在すれば)何もしない。
6. End If
7. "cachatto:"を起動する。

■Toggle Rootの動作

1. "/system/xbin"に"xsu"というファイルがあれば"%list"に代入する。
2. If "%list"の件数が"1"でなければ("xsu"が存在しなければ)次の3-6を行う
3. Shell commandを走らせて、"su"を"xsu"に、"SuperSU.apk"を"xsupersu.apk"にリネームする。
4. USBデバッグを無効にする。
5. 通知エリアに"Rooted!"という通知が表示されていれば消す。
6. 通知エリアに"Unroot!"という通知を表示する。(Toggle Root起動用のボタン付)
7. Else %list"の件数が"1"ならば("xsu"が存在すれば)次の8-11を行う。
8. Shell commandを走らせて、"xsu"を"su"に、"xsupersu.apk"を"SuperSU.apk"にリネームする。
9. USBデバッグを有効にする。
10. 通知エリアに"Unroot!"という通知が表示されていれば消す。
11. 通知エリアに"Rooted!"という通知を表示する。
12. End If

【詳細】

■Toggle Root

1. "/system/xbin"に"xsu"というファイルがあれば"%list"に代入する。


2. If "%list"の件数が"1"でなければ("xsu"が存在しなければ)次の3-6を行う。


3. Shell commandを走らせて、"su"を"xsu"に、"SuperSU.apk"を"xsupersu.apk"にリネームする。


スクリプトは以下です。

 
#!/system/bin/sh
if [ -f /system/xbin/su ]; then
 su -c 'busybox mount -o remount,rw /system /system'
 if [ -f /system/app/SuperSU/SuperSU.apk ]; then
  su -c "busybox mv /system/app/SuperSU/SuperSU.apk /system/app/SuperSU/xsupersu.apk"
 fi
 su -c "busybox mv /system/xbin/su /system/xbin/xsu"
fi


4. USBデバッグを無効にする。


5. 通知エリアに"Rooted!"という通知が表示されていれば消す。


6. 通知エリアに"Unroot!"という通知を表示する。(Toggle Root起動用のボタン付)



7. Else %list"の件数が"1"ならば("xsu"が存在すれば)次の8-11を行う。


8. Shell commandを走らせて、"xsu"を"su"に、"xsupersu.apk"を"SuperSU.apk"にリネームする。


スクリプトは以下です。

 
#!/system/bin/sh
if [ -f /system/xbin/xsu ]; then
 xsu -c 'busybox mount -o remount,rw /system /system'
  xsu -c "busybox mv /system/app/SuperSU/xsupersu.apk /system/app/SuperSU/SuperSU.apk"

 xsu -c 'busybox mount -o remount,rw /system /system'
  xsu -c "busybox mv /system/xbin/xsu /system/xbin/su"
fi


9. USBデバッグを有効にする。


10. 通知エリアに"Unroot!"という通知が表示されていれば消す。


11. 通知エリアに"Rooted!"という通知を表示する。


12. End If


■CACHATTO Launcher

1. "/system/xbin"に"xsu"というファイルがあれば"%list"に代入する。


2. If "%list"の件数が"1"でなければ("xsu"が存在しなければ)次の3-4を行う。


3. 別アプリの"Toggle Rout"を起動する。


4. 1秒待つ


5. Else "%list"の件数が"1"ならば("xsu"が存在すれば)何もしない。


6. End If


7. "cachatto"を起動する。


0 件のコメント:

コメントを投稿