怪招:升級 Apple TV 4K 到指定版本

English version here

由於 Apple TV 4K 在 tvOS 13.4.5 可以越獄,但是因為 Apple TV 4K 沒有 USB-C 可以接電腦刷韌體,加上防堵越獄的 tvOS 13.4.6 已經釋出,要如何把我舊的 tvOS 13.4 升級到 13.4.5 就成了一個難題。經過了一番研究之後,終於讓我找出可以升級 13.4.5 的方法。

這個教學不是普通的難,所以建議你學會如何用 Charles 之類的再說。此範例是升級 Apple TV 4K 13.4 → 13.4.5,而不升級到最新版 13.4.6

需要的東西:

  1. 在 tvOS 13.4.5 以下的 Apple TV 4K
  2. Apple Configurator 2
  3. 去 ipsw.me 確認 tvOS 13.4.5 SHSH 依然有在簽名
  4. tvOS 13.4.5 OTA 更新的 XML,在此下載
  5. Charles,不必購買,免費版本即可。
  6. Xcode

 

原理:

我們欺騙 Apple TV 去抓更新伺服器時抓到的檔案,用 tvOS 13.4.5 去覆蓋 13.4.6 的更新資料,使得 Apple TV 強制更新 13.4.5。

 

首先,你要先用 Xcode 連接到 Apple TV 4K,詳細教學可以看這邊的文章,就不再贅述。

接下來是重點了。打開 Charles Proxy,選擇 Proxy → Proxy Settings,看一下 port 是多少,預設應該是 8888。再選到 Help → SSL Proxying → Save Charles Root Certificate... 儲存到桌面,格式一定要選 .cer 格式才可以!

打開 Apple Configurator 2 ,File → New Profile 建立新的描述檔,左邊紅框處 Certificates 選擇剛剛儲存的 .cer 檔案,之後選到 Wi-Fi,然後右邊紅框處填你的 Wi-Fi SSID、密碼,以及執行 Charles 的電腦的 IP,再儲存描述檔。儲存之後把描述檔安裝到 Apple TV。

 

到 Apple TV 的設定 → 一般 → 關於本機,最下面會出現「憑證信任設定」,把他設定為「受信任」,接著重開 Apple TV,看看 Charles 會不會跳出要求你授權 Apple TV 的 IP 連線,有的話代表 Proxy 設定成功了。

如果 Charles 沒有出現連線授權,請確定你的 Apple TV 有連上 WiFi(看網路設定有沒有拿到 IP),然後確定你 Proxy 設定的 IP 沒有跑掉(有時候電腦重新連線 WiFi 會換本地 IP 之類的)

之後到 Apple TV 裡面按系統軟體更新,會出現更新版本為 13.4.6,馬上按取消(稍後更新),回到 Charles,看到出現 gdmf.apple.com,右鍵選擇 Enable SSL Proxying。

 

取消之後再按一次系統更新,這時候會看到 Charles 出現 mesu.apple.com,一樣再按取消更新。在 Charles 裡面對 mesu.apple.com 按展開,然後對下面的資料夾也是繼續展開,直到出現「com_apple_MobileAsset_SoftwareUpdate.xml」,對這個項目按右鍵,選擇最下面的「Map Local...」,畫面如下,把 Map To 選擇 13.4.5 OTA 更新的 XML(上面有載點),注意下面畫面中 Path 欄位不得為空。

如果 mesu.apple.com 是 https 加密連線的話,跟上一個步驟一樣,打開 SSL Proxying,就可以看到底下展開的內容。

 

最後再到 Apple TV 按系統更新,會發現提示升級到 13.4.5,就用力給他按下去吧!完成更新之後,用 Apple Configulator 2 移除所有描述檔就可以了!

3 則留言

  1. 「pc」的個人頭像
    pc

    13.4.5的xml幫上大忙了,拜謝

  2. 「atat」的個人頭像
    atat

    想請問一下關於tvOS更新的xml更改原理以及iOS的xml能不能也用同樣的方式更改

    1. 「Hiraku」的個人頭像
      Hiraku

      Apple TV 不能接電腦才要這樣改,iOS 只要版本還在簽名狀態直接刷 IPSW 就好了

發佈留言