diosra2’s blog

iOS 脱獄、ダウングレード等

SHSHなしで紐なしダウングレード(デュアルブートを利用した擬似ダウングレード)


デュアルブートを利用した擬似ダウングレード

CoolBooterなどでデュアルブートを行う場合には、デュアルブートするiOSしか利用しない、通常のiOSは使わない、SHSHがないため仕方なくデュアルブートをしている。といった場合があるでしょう。

kloaderを利用してデュアルブートをする方法の、kloader実行部分をブートプロセスに組み込むことで、擬似的にSHSHなしのダウングレードを実装することもできます。

 

・起動順序

色分け: 通常のiOS, デュアルブートするiOS

電源ON->通常のiOSのブート(Signed)--Jailbreak(untether実行)-->SpringBoard起動(Jailbroken)->MobileSubstrateでkloaderを起動---LLB(unsigned)ロード->iBoot(unsigned)->kernel(unsigned)->お目当てのバージョンのiOSが起動!!

f:id:diosra2:20180125123506p:plain

 

再起動後にMobile Substrateを利用してSpringBoardが起動した時点でkloaderを自動で実行させること(上記太字下線部)で、電源ONからデュアルブートしたiOSを起動するまでの手順が自動化されます。

(要約すると、電源ONするだけでデュアルブートしたiOSが起動します。)

セーフモードで起動させることでdylibのロードを阻止して通常起動させることもできるため安全に実行可能かと思います。

条件として、通常起動するiOSは完全脱獄である必要があります。

欠点としては通常の起動の約2倍、時間がかかります。A4デバイス以降は署名されていないファームウェアのブートができないため、目当てのiOSを起動するためのカスタムイメージの起動に、通常iOSが起動する時間分が犠牲になります。この問題の解消には24kpwnのようなBootRom Exploitなど、強力なローレベルのExploitが必要になります。

その他、高バージョンのiOSをデュアルブートで起動する場合は問題が起きる場合もあるため注意が必要です。

 

ポイントとして、kloaderにはaxi0mX氏のものを使用します。

GitHub - axi0mX/ios-kexec-utils: boot LLB/iBoot/iBSS/iBEC image from a jailbroken iOS kernel

このkloaderでは実行後、自動でデバイスを起動できるため、すべての動作を自動化する場合はこのkloaderが必要です。(通常のkloaderでは実行後にホームボタンなどを押す必要がある。)