Gary's …Lasamia

Yalu102 – iOS 10.2 Jailbreak

繼上次寫了 iOS 10.1.x 越獄 – Yalu beta 3 也快過了一個月,悲觀的 Lucas 終於釋出了新的 beta 1 版本。

這裡補充一下,請大家尊重一下開發者大大們,不要去騷擾拍打、催促他完成 Jailbreak。他是沒有義務要完成這些的,這些騷擾讓他的氫碘鈉化碳碎了..,也聲稱 10.2 版本釋出之後將不會再投入研究

在新版本中, Lucas 加入了對 MobileSubstrate 的相容性 (來源)
有比較深入研究,或者再追蹤 reddit 的人應該都知道在 10.1.x 時,Lucas 釋出的版本是不支援 MobileSubstrate 的
因為目前大部分的 tweak 都依賴 MobileSubstrate,當時大部分的 tweaks 是無法使用的。

 

當時也有人推出 Substrate Fix (iOS 10) Source:http://83.218.67.215/~ijapija00/cydia
但在當時我自己測試之下,是蠻不穩定的.. 不過目前 iOS 10.1.1 使用 Yalu beta 3 的人只能使用這套來支援 Cydia Substrate
而使用 Yalu 102 新版的人,直接安裝 Cydia Substrate 即可,在 1 月底也有為了 iOS 10 釋出的 0.96301 的更新檔

 

而此次 beta 1 版本,修正了這些不穩定性,就我自己使用上知道改正了以下錯誤:

  • 可以正常 Log 出錯誤訊息,NSLog 和 printf 正常使用
  • 支援 MobileSubstrate
  • killall -9 Springboard 在我的機器上是穩定的,這有待換到別的機器測試
  • killall -9 backboardd 可以正常使用,不會讓手機重啟

但透過 Yalu app 越獄失敗的情況還是存在,需要多嘗試一兩次才能成功

螢幕快照 2017-01-26 下午7.41.25
 

================== 更新 ====================

2017/02/01 更新
現在設備情況分為兩種:是 iPhone 7 以及非 iPhone 7 系列

– 如果你是使用 iPhone 7 在 iOS 10.1.1 ,請使用這篇教學配上 Yalu beta 3 (註:beta 4-1 作者沒有包好,也註明是損毀的,不要聽信網路傳言用 4-1 。)。

– 如果你是使用其他 64 bit 裝置並在 iOS 10,請使用 Yalu 102 beta 7,詳請再參照此篇教學

2017/01/30 更新
推出 beta 6 版本
現已支援所有 iOS 10 64 bit 的裝置除了 iPhone7, iPad Air 2 和 iPad Mini 4
fixes some issues some device/fw combos were having with the tfp0 / nonceEnabler patch

iPhone 7 可以使用 Yalu 舊版 beta 3

詳細更新項目可以參照原始網頁

2017/01/29 更新
推出 beta 5 版本
placebo effect

2017/01/26 補充
我用兩台裝置 6s (iOS 10.2) 及 6s Plus (iOS 10.1.1) 做的測試
在 6s Plus (iOS 10.1.1) 上使用 Yalu102 會出現幾個不能運作的情況:
1.OpenSSH 無法運作,完全連不進去
2.Log 失效

#註:後來證實是自己用 Github 上的版本 build 出來才會有問題,用官方版本是正常的

 
 
但這些問題在 6s (iOS 10.2) 上一切正常
而 OpenSSH 問題,只要透過 Yalu beta 3 就可以解決,但舊版又超不穩定..

0127 補充
在 10.2 越獄之後,我有遇到裝完 iFile 和 Cydia Substrate 之後,除了系統 app 以外其他 app 點開馬上閃退的情況
交叉測試之後發現:
在第一次越獄之後,要先單獨安裝 Cydia Substrate,其他套件等此次安裝完 respring 之後在另外安裝
便不會發升上述問題了
 

而進入文章重點,那此次 Jailbreak 要如何安裝使用呢?
其實跟盤古 iOS 9 越獄 一樣,是透過安裝一個 app 來觸發漏洞建立越獄環境
當你每次重新啟動手機之後,是需要重新越獄的

而安裝 Yalu App 主要分為以下三個方法:

方法1:透過 Cydia Impactor 和開發者帳號來安裝 (最簡易懶人)

你需要準備的是作者編譯好的 ipa 安裝檔以及 Cydia Impactor
然後使用 Cydia Impactor 將 ipa resign 後裝至你的手機
詳細教學可以看我上次這篇

缺點就是因為 Apple 佛心讓大家可以成為開發者,但限制是你每 7 天要 resign 一次
然後強烈建議不要使用自己的付費開發者帳號,他會將你 revoke ,之後在 Xcode 開發還要設定一次很麻煩..

方法2:使用付費開發者帳號 Resign

相信有付費開發者帳號的人有開發經驗會比較聰明,我也懶得截圖,就將步驟寫的簡易一點:
主要的目的就是透過你的帳號將 ipa resign,

以下這一小段可以略過,因為使用 Yalu 10.2 beta 1 不需要這麼做
============================================
在 Yalu 第一版除了 ipa 本身以外,還要 resign 裡面的 dylib,先將 ipa 副檔名改為 zip 後打開找到以下檔案
並透過 codesign指令,加上你的 iPhone Developer 描述檔及代號重新簽名
這裡會發生問題有一種特殊情況,你必需要開一個在開發者後台去新增一個 APP ID 符合 ipa 的 bundle idintifier,才可以正常的 resign dylib

============================================

而 ipa resign 的部分可以透過 iModSign 或者 iResign 有 GUI 的簽名工具完成
你只需要導入你的開發者帳號的 Provisioning Profile,可以從 Xcode 的設定來尋找,要使用 Provisioning Profile:* 的那一個
路徑在:~/Library/MobileDevice/Provisioning\ Profiles

螢幕快照_2017-01-26_下午10_36_47

之後再透過 iFunbox 之類的工具安裝 ipa 即可完成

方法3:當你擁有了原始碼

因為這次作者直接公開原始碼,便可以用這種特殊的形式來操作

以 Xcode 開啟專案,

這裡會有個小問題,作者的 code 中會使用到 IOKit 這個 framework,正常開啟是會顯示失敗無法 build 的,我將解決方法寫在這篇 – Import IOKit framework into Xcode project

1.直接 Archive,Export for development 匯出成擁有你簽名的 ipa ,然後安裝、結束。
2.接上手機直接 build 進去
這方法好處是可以隨時 pull 作者 update 的新版本,隨時 build 保持最新版~

螢幕快照_2017-01-26_下午11_09_13

3 comments

發表迴響