在任何版本與裝置阻擋 iOS OTA 更新的方法

English version here

由於各種原因,像是為了等待越獄,或者 iOS 開發者為了測試用,所以把開發機故意保留在某一個版本,或者你只是覺得升級之後手機越來越慢...等等原因,許多人可能會不想要更新 iOS 到最新版本。

先前最方便阻擋 iOS OTA 的方法,就是安裝 tvOS 的 beta profile。可惜在 iOS 12.x (詳細版本我不是很確定)之後,系統預設會檢查 profile 是否相容你的機器,這導致 iOS 13 的 tvOS profile 無法安裝。而 tvOS 12 的 profile 又已經過期,而使得阻擋效果消失。

因此本篇文章就是要教各位如何在手機上阻擋 OTA 更新,讓手機可以繼續保留在你要的版本。

本文歡迎轉載,惟須附上出處來源,謝謝。

在開始之前,請務必檢查你的手機是否已經下載了 OTA,如果有的話馬上刪除,不然後面的步驟都是在搞笑,根本沒用。

 

情境 1:手機在 12.1.x 和以下版本

複雜度:★

在 12.1.x 以及以下版本,由於 iOS 裡面還沒做出 profile 驗證機器類型的功能,所以可以直接嘗試安裝 tvOS 13 profile 來阻擋!

如果符合條件,請直接使用,如果不行的話可以參考下列其他方式。

tvOS 13 beta profile 安裝位址:https://gginin.de/jb/no_ota.html

 

情境 2:裝置已經越獄

複雜度:★★

如果你已經越獄,可以新增這個 repo:https://repo.xsf1re.kr,之後安裝 MCPatch。

接著,你就可以安裝 tvOS 13 beta profile 了。

tvOS 13 beta profile 安裝位址:https://gginin.de/jb/no_ota.html

安裝成功後,你可以移除 MCPatch,不影響使用。

來源:reddit

 

情境 3:A11 以及以下裝置,不想越獄但也不想更新

複雜度:★★★

checkra1n 官網:https://checkra.in

先檢查裝置的版本以及型號是否支援 checkra1n,如果可以的話,使用 checkra1n 越獄。越獄之後按照情境 2 的步驟安裝描述檔,再到桌面的 checkra1n app 選擇「Restore System」回到未越獄狀態。因為 checkra1n 還原是還原 APFS 快照,會直接把系統區恢復到跟越獄前一樣。

在還原越獄之前,千萬不要去執行其他任何 App,不然某些 App 可能會在途中偵測到你有越獄,就給你做標記了,例如某些遊戲

這樣系統就不會越獄,但同時又安裝了 tvOS profile!

(注意:部分 App 如「花旗銀行」(無法開啟)、「街口支付」(跳提醒,但能開啟)依然會偵測到越獄,遇到這種情況,請先備份手機,之後去設定裡面選擇「清除所有資料和內容」,再還原手機備份,這樣 tvOS profile 依然會存在,但是越獄偵測可以完美躲過)

 

情境4:A12 以及以上裝置,目前無法越獄

複雜度:★★★★★

請仔細閱讀下面的教學,因為有點複雜。請注意這個方法只能算是一種暫行方案,並且裝置在每次重開機之後,都需要點一下某個東西以關閉 OTA(下面會敘述)

我在自己的 iPhone XS Max (13.3) 跟 iPhone 6s Plus (13.3) 測試過了。

我們可以透過修改手機的備份,強制把 OTA 給關掉,要修改手機的備份檔案,就要用第三方軟體 iMazing 了,如果你沒有購買的話,可以點這邊購買正版,官網賣 45 美金(約 1400 台幣),透過折價券只要 94 人民幣(400 台幣左右),如果你有兩台電腦,買雙授權更划算!

安裝、購買 iMazing 之後,用 iMazing 對手機做一次加密備份,打開 iMazing 應該會跳出如下的畫面叫你設定備份選項。

▼ 接著注意設定如下,備份加密的選項一定要開,否則你的「健康」紀錄不會備份到,其他選項可以照自己的意思隨意調整,預設狀態不用動也可以。

 

▼ 設定完成之後,就按備份以建立一份加密備份

 

▼ 接著,按上面的按鈕以顯示所有備份,再選擇我們剛剛的備份,最後再選擇編輯

 

接下來會 iMazing 會跟你說亂改備份很危險,要先叫你做「備份的備份」,就直接按繼續,等他跑完。

▼ 再來,看到 iMazing 左邊往下滑,會出現「可以編輯的備份」,按照下圖選到 ManagedPreferencesDoamin/mobile 裡面

 

接下來,點這裡下載阻擋 OTA 更新的設定檔,解壓縮後有一個 com.apple.MobileAsset.plist 檔案

▼ 放到 ManagedPreferencesDoamin/mobile 裡面

 

▼ 選回我們修改過的備份,然後按「還原」,接下來選機器

 

▼ 如果你有用 eSIM,請不要勾選 iMazing 的「清除內容」,有可能導致 eSIM 消失,如果空間不足,先去刪照片、或者同步的音樂之類的,或者直接按系統設定裡面的清空所有內容,反正備份會還原照片

 

如果發生問題,錯誤訊息中有類似「com.apple.security.xpc error 3」的字串,代表你的手機空間不足還原備份,請清除手機內容之後再恢復。

恢復完畢之後,用手機打開 https://gginin.de/jb/no_ota.html,然後選擇「Assistant Profile」,選擇下載,但是下載後「不必進去設定裡面完成安裝」,這樣就可以了。要注意的是,每次重新開機都要重新下載一次才會有效

如果覺得每次要輸入網址很麻煩,這邊提供了一個 iOS 捷徑,你把它加到主畫面,每次開機完點一下按確定就好了!

需要注意的是,有可能 iOS 裝置在恢復備份的同時,已經默默在下載 OTA 更新了,所以要再確認儲存空間那邊沒有已下載的更新!如果出現要你更新的訊息,請取消掉並且馬上去儲存空間那邊刪掉。

那如果你想要解除阻擋呢?其實很簡單,重開機,不要下載該描述檔就好。如果你要完全清除掉阻擋也很簡單,不必所有步驟重新反向照做一次,只要去網路上找到 iOS Beta Profile 的描述檔,安裝它,然後馬上到設定裡面解除安裝該描述檔,這樣 OTA 更新的功能就會完全回來了。

 

給進階使用者的參考:

我會建議搭配使用 DNS 或者 VPN 的方式來擋掉 OTA 伺服器,因為某些支援 DNS 自訂的軟體可以在手機重開機後自動開啟 DNS 設定,這樣可以多一層保險,避免重開機後忘記點捷徑,例如 AdGuard 4.0 以上就有這個功能。

只要設定「mesu.apple.com」、「updates-http.cdn-apple.com」跟「gdmf.apple.com」到「0.0.0.0」即可,如下圖,這是我的 AdGuard 設定。不過目前這個功能只有 beta 使用者可以使用,所以一般使用者可能還要再等等,或者尋找其他替代方案。

然而,DNS 的 App 並不是那麼穩定,有時候可能 DNS 本身會當掉,或者有時候在切換網路或 VPN 時會暫時失效,所以我才沒有把這個方法作為主要方法來介紹,只能說作為輔助使用。

6 則留言

  1. 「Bnz App」的個人頭像
    Bnz App

    幫補充DNS

    剛剛發現ios13.3.1"軟體更新"會多用到一段DNS
    gdmf.apple.com

    這樣大概是從某一版ios開始,總共要擋掉這3段DNS才能禁止訪問軟體更新目錄
    我這邊無法驗證從ios第幾版開始會用到這條gdmf,只能曉得ios10沒有。
    以上

    感謝撰文教學

    1. 「Bnz App」的個人頭像
      Bnz App

      檢查更新:gdmf(ios13)、mesu
      下載更新:updates-http.cdn-

    2. 「Hiraku」的個人頭像
      Hiraku

      gdmf 我看好像跟 MDM 有關耶,我怕擋了之後會出問題...
      然後我之前測 mesu 跟 updates-http.cdn 就可以擋 13.3.1 了,真的有要 gdmf 嗎?

  2. 「Bnz App」的個人頭像
    Bnz App

    的確,莫非設備"曾"裝過BETA描述檔會影響系統變成必須指定檢查gdmf?

    我用無描述檔的ios13.3 iPhone11 & 13.3.1 ipad pro 10.5 實驗,
    重開機反覆測結果一樣,兩台都要額外擋下gdmf才能禁連彈出"無法檢查更新..."視窗。
    Adguard PRO LOG 馬上檢查,也是同時記錄到gdmf+mesu。
    記錄提供參考

  3. […] 中文版在此 […]

發佈留言