快轉到主要內容

iSH Shell設定背景執行權限,防止iOS殺後台

分類   智慧型手機 ISH Shell教學
標籤   OpenRC
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

為什麼要啟用背景執行:在多個APP之間切換的時候,iSH Shell會被iOS暫停,這會導致程式執行到一半卡住,所以必須申請背景執行權限。

以iOS的設計來說,APP少數能在背景執行的方法就是請求定位權限了。iSH Shell可透過cat /dev/location指令請求定位權限,讓iSH Shell得以在背景繼續執行。請放心,定位只是為了讓iSH Shell不會被iSO中止。資料不會傳輸給第三方。

我們將用OpenRCiSH Shell的背景執行權限。

1. 設定OpenRC服務
#

  1. 安裝OpenRC套件
apk add openrc
  1. 新增指令稿
vim /etc/init.d/runbg
  1. 填入以下內容,執行cat /dev/location指令,並將結果輸出到/dev/null,這樣資料就不會傳給任何人
#!/sbin/openrc-run
#
# Copyright (c) 2021-2024: [email protected]
# License: MIT
#
# This service reads the GPS and discards the output to /dev/null.
# This is not tracking you in any way. The sole purpose of this
# is to ensure an iOS program continues to run in the background.
# This process has no noticeable impact on battery life.
#

description="Reads GPS to ensure iSH continues to run in the background"

command="/bin/cat"
command_args="/dev/location > /dev/null"
command_background="YES"

pidfile="/run/runbg.pid"
  1. 將指令稿加入OpenRC自動啟動的服務
chmod +x /etc/init.d/runbg

rc-update add runbg default
  1. 重開APP,iSH Shell隨即會請求定位權限,之後iSH Shell就能在背景執行了。

2. 如果iSH Shell在背景還是被iOS中止
#

若iSH Shell的程式佔用太多RAM,iOS還是會把它中止的。

經過實測,iSH Shell的SSH連線放到背景還是會被凍結QQ 看來只有iPad的幕前調度能真正避免APP背景執行被殺掉。

參考資料
#

相關文章

修改iSH Shell套件庫,更新至最新版Alpine Linux
分類   智慧型手機 ISH Shell教學
標籤   ISH Shell
Termux proot無法使用systemctl指令的解決方案
分類   智慧型手機 Termux教學
標籤   Systemd Proot-Distro Chroot OpenRC Runit
iOS跑SSH伺服器,電腦遠端連線存取iPhone檔案
分類   智慧型手機 ISH Shell教學
標籤   ISH Shell Jailbreak IOS Tweak OpenSSH

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。