今天在研究 iphone 越獄後的一個非常強大的插件,叫做 Activator

它除了可以連結到各種開關、各種設定頁面、各種現有的功能以外,

更強大的是,它還可以讓使用者自訂 script 指令!

activator_script_command  

 

舉例來說,如果要製作一個可以開啟 Wifi 的命令,那就是:

activator send switch-on.com.a3tweaks.switch.wifi

請參考這一篇:https://www.reddit.com/r/jailbreak/comments/2a3ocj/tutorial_create_complex_activator_macros_using/?st=iye4fpts&sh=aa28ccde

 

1. 那麼,到底有哪些可以被呼叫的功能呢?(listeners)

最完整的方法,就是在 terminal 打上這一段: activator listeners

不過,前提是你的 iphone 需要先安裝 "Terminal" 或者是類似的東西,

如果你沒有裝 terminal 的話,這裡有整理出來的 listeners 列表:http://junesiphone.com/actions/

不過它可能不是最完整的列表,想要取得最完整的列表,還是需要用 terminal 打 "activator listeners"

 

2. 如果想要一次執行兩種以上的命令,怎麼辦呢?

複合命令,可以利用 "&&" 來達成,或者是分號 ";" 來達成,舉例來說:

activator send switch-on.com.a3tweaks.switch.wifi  ;  activator send switch-off.com.a3tweaks.switch.airplane-mode

此行就會是 switch-on Wifi,並且 switch-off Airplane mode。

(注意到,它語法都是 activator send xxx.com.a3tweaks.switch.xxxx

也可以改成使用 "&&" 來連結,效果跟分號 ";" 大致上是一樣的,

差別只在於使用 "&&" 時,「下一句需要等到上一句成功執行後才會執行」:

activator send switch-on.com.a3tweaks.switch.wifi  &&  activator send switch-off.com.a3tweaks.switch.airplane-mode

"activator send" 後面接的指令,一共分為三種:

switch-on

switch-off

switch-flip

(flip 是會反轉現在的狀態,也就是如果現在是關的,就會打開;如果現在是開的,就會關掉。)

 

3. 但是,我想要執行一個指令後,等待一段時間,再執行第二個指令欸怎麼辦?

值得注意的一點是,這些複合式指令,都是在極短的時間之內連續執行的,

假設你想要「開啟飛航模式」,然後「開啟Wifi」,使用以上方式是很有可能會失敗的喔!

因為,關閉飛航模式是需要時間的,而當你在還沒跑完飛航模式時,馬上又開啟Wifi,可能之後飛航模式會將Wifi 再度關掉

這時候 time delay 就進來了:

activator send switch-on.com.a3tweaks.switch.airplane-mode  &&  sleep 0.1  &&  activator send switch-on.com.a3tweaks.switch.wifi

也就是兩個指令中間,夾了一個 sleep 0.1 指令。

 

另一個值得注意的點是,如果你本來就已經是在飛航模式了,switch-on 指令是不會「成功執行」的,

所以如果你是照著上面這樣寫,那麼後面的兩個 "&&" 就很有可能都不會執行到了!

其中一個解決方法是: 改成用分號 ";" 來連結第一串的 airplane 跟中間的 sleep

 

4. 但是這樣子我還是不滿足,有沒有更進階的控制方法?

想要更進階的控制權,bash script 就進來啦! (This is where Bash Script comes in)

比方說,你先到 /usr/bin 底下,建立個檔案叫做 "toggleWifi",

然後裡面輸入純文字,非常簡單的兩行文字:

#! /bin/bash

activator send switch-flip.com.a3tweaks.switch.wifi

之後,用 Activator 直接呼叫它,"toggleWifi",這就等同於 wifi 開關的功能了!

可以參考一下這篇:https://www.reddit.com/r/jailbreak/comments/45e4la/tutorial_automatically_enable_various_flipswitch/?st=iyej0f6l&sh=74f9faba

(記得要更改權限成 755 喔,預設是 344 的樣子)

(怎麼改請參考這篇:https://iosgods.com/topic/2740-tutorialvideo-how-to-set-permission-to-777-775-755-644-via-ifile/

(可以這樣直接呼叫是因為,"toggleWifi" 是放在 /usr/bin 資料夾底下,所以可以直接被 terminal 所呼叫)

(第二行也可以直接呼叫 activator send...,是因為 "activator" 也是在 /usr/bin 底下)

(其實 "activator send..." 指令,第二串之後的文字都是 "activator" 執行檔所接收的參數,也就是 $1 $2 ...)

 

還可以搭配 SimulateTouch (另一個 cydia tweak),讓功能更上一層樓!

貌似是可以實現使用者的觸控螢幕操作喔喔喔~ +_+

可以參考一下這篇:https://github.com/FishPhd/ActivatorScripting

應該是還有更多強大的控制方法,如果有需要 or 有興趣的話,可以在自行查查看 (目前要用英文比較查得到相關文章)

arrow
arrow

    Davidhu127 發表在 痞客邦 留言(2) 人氣()