diosra2’s blog

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

Jailbreak information

32bit JailbreakはiOS 9.3.5まで。
64bit JailbreakはiOS 10.2まで。
iPhone 7 JailbreakはiOS 10.1.1まで。
32bit Untethered JailbreakiOS 9.3.4まで。
64bit Untethered JailbreakiOS 9.1まで。

iPhone 3GSをSHSHなしでダウングレードする [完全]

かなり古いデバイスですが使えなくはないと思うので...(個人的感想。)

 

iPhone 3GS

iPhone 3GS (サポートされるOS: iPhoneOS 3.0 ~ iOS 6.1.6) には旧ブートロムと新ブートロムの2種類のブートロムが存在します。

旧ブートロムでは0x24000 Segment Overflow (以下24kpwn) と呼ばれるBootRom Exploitが存在し、これによりBootRomベースでの完全脱獄やSHSHなしでの全バージョンへの復元が可能でした。

ですが、2009年9月ごろ(?)から24kpwnを対策した新ブートロムが搭載されるようになり、新ブートロムではBootRomベースでの完全脱獄やSHSHなしでの全バージョンへの復元が不可能となりました。

しかし、axi0mX氏によって公開されたalloc8 exploitにより新ブートロムでも24kpwnのような完全脱獄 (ただしすでに全バージョンで普通にJBが可能なのであまり恩恵はないが。) やSHSHなしでの全バージョンへの復元ができるようになりました。

 

 

1,対応デバイス

iPhone 3GS [Bootrom 359.3] (Old BootRom)

iPhone 3GS [Bootrom 359.3.2] (New Bootrom)

 

2,使用されるBootRom Exploit

0x24000 Segment Overflow (24kpwn) by iPhone Dev Team [Old BR Only]

alloc8 exploit by axi0mX

limera1n exploit by geohot

 

3,利用方法

流れとしては、

24kpwnの導入されたCFWを作成 -> iTunesで復元 (旧ブートロムならここまで) -> alloc8 exploit導入 (新ブートロムならここまで)

となります。

 

3-1,CFWを作成

復元したいバージョンの、24kpwnの導入されたCFWを作成します。

sn0wbreezePwnageTool、Redsn0wなどを使って作成してください。

注意点: CFWを作る際、新ブートロムだとしても、旧ブートロム(Old BootRom, 未対策BootRom)を選択してください。

 

*Redsn0wの場合

Redsn0wの場合はCustom IPSWでCFWを作成します。

1, Extrasを選択

 

2, Custom IPSWを選択、復元するバージョンのipswファイルを選択します。

その際、"Will this custom IPSW be used on a newer (fixed) version of yhe iPhone3GS?"と聞かれます。今回は24kpwnの導入されたCFWを作成したいので、新ブートロムでもNoを選択します。

作成が終わると下のようなメッセージが表示されます。

"NO_BB_OLDROM"で始まるIPSWが作成されたCFWとなるので、このIPSWを使って復元します。

 

 

3-2,iTunesで復元

Redsn0wやiREB等でPwned DFU Modeに入ります。

入れたらiTunesを開いて(Macならoptionキーを押しながら)iPhoneを復元を押し、CFWで復元します。

*旧ブートロムならば当然24kpwnは有効です。そのため復元が完了すればそのまま起動するのでこれで完了です。

 

新ブートロムならば24kpwnは対策されているのでおそらく起動せずに画面は黒いままだと思います。(次のステップに進みます。)

 

3-3,alloc8 exploit (New BootRom)

新ブートロムでは先ほどの通り、24kpwnは対策されているので使えません。

なので24kpwnをalloc8 exploitに置き換えます。

ipwndfuというものを使いますのでダウンロードして下さい。

github.com

 

 

ipwndfu

User$ ./ipwndfu

USAGE: ipwndfu [options]

Interact with an iOS device in DFU Mode.

 

Basic options:

  -p USB exploit for pwned DFU Mode

  -x install alloc8 exploit to NOR

  -f file send file to device in DFU Mode

Advanced options:

  --dump=address,length dump memory to stdout

  --hexdump=address,length hexdump memory to stdout

  --dump-rom dump SecureROM

  --dump-nor=file dump NOR to file

  --flash-nor=file flash NOR (header and firmware only) from file

  --24kpwn install 24Kpwn exploit to NOR

  --remove-24kpwn remove 24Kpwn exploit from NOR

  --remove-alloc8 remove alloc8 exploit from NOR

  --decrypt-gid=hexdata AES decrypt with GID key

  --encrypt-gid=hexdata AES encrypt with GID key

  --decrypt-uid=hexdata AES decrypt with UID key

  --encrypt-uid=hexdata AES encrypt with UID key

 

ステップ0

iOS 4.3.5のiBSSが必要なのでダウンロードしておいて下さい。

http://appldnld.apple.com/iPhone4/041-1965.20110721.gxUB5/iPhone2,1_4.3.5_8L1_Restore.ipsw

 

User$ unzip -p iPhone2,1_4.3.5_8L1_Restore.ipsw Firmware/dfu/iBSS.n88ap.RELEASE.dfu > n88ap-iBSS-4.3.5.img3

iBSSはipwndfuのフォルダのなかに入れておいて下さい。

 

ステップ1

デバイスをUSB接続し、DFU Modeに入れます。

 

ステップ2

ipwndfuでPwned DFU Modeに入れます。(limera1n exploit)

(私のデバイスは旧ブートロムなので)、この画面で[iBoot-359.3]となっているところは新ブートロムなら[iBoot-359.3.2]となっていると思います。

ターミナルでipwndfuのフォルダの中に移動し、コマンド"./ipwndfu -p"です。

User$ ./ipwndfu -p

*** based on limera1n exploit (heap overflow) by geohot ***

Found: CPID:8920 CPRV:14 CPFM:03 SCEP:01 BDID:00 ECID:XXXXXXXXXXXXXXXX SRTG:[iBoot-359.3]

Device is now in pwned DFU Mode.

 

ステップ3

ipwndfuでalloc8 exploitを導入します。

ターミナルからコマンドで"./ipwndfu -x"です。

*私のデバイスは旧ブートロムなので(下の画像の)赤文字の注意が表示されていますが、おそらく新ブートロムではこのメッセージは表示されません。alloc8より24kpwnの方が起動が速いので、旧ブートロムな場合は24kpwnを使いましょう。

User$ ./ipwndfu -x

WARNING: iPhone 3GS (old bootrom) was detected. Use 24Kpwn exploit for faster boots, alloc8 exploit is for testing purposes only.

Press ENTER to continue.

Installing alloc8 exploit to NOR.

Dumping NOR, part 1/8.

Dumping NOR, part 2/8.

Dumping NOR, part 3/8.

Dumping NOR, part 4/8.

Dumping NOR, part 5/8.

Dumping NOR, part 6/8.

Dumping NOR, part 7/8.

Dumping NOR, part 8/8.

NOR backed up to file: nor-backups/nor-XXXXXXXXXXXXXXXX-20XXXXXX-XXXXXX.dump

Preparing modified NOR with alloc8 exploit.

Sending iBSS.

Waiting for iBSS to enter Recovery Mode.

Sending iBSS payload to flash NOR.

Sending run command.

If screen is not red, NOR was flashed successfully and device will reboot.

 

Dumping NORが終わった後、3GSの画面が緑に点灯します。正常に終了すれば3GSが再起動すると思います。

これで完了です!

 

注意点: alloc8の場合、電源が切れた状態から起動するときに3秒ほどスリープボタンを長押ししなければ起動しません。また、(深い)スリープ状態に入った場合はデバイスがスリープ状態から復旧するのに3秒ほと遅れます。(これが旧ブートロムでは24kpwnの方が速いという理由です。)

 

*番外編

Redsn0wのCFWではCydia等のパッケージはインストールされていません。

Jailbreakしたい場合はiTunesで復元した後、この手順を踏みます。

 

1, Extras -> Select IPSWで現在インストールされているiOSの通常のIPSWを選択します。

※iOS 6.xの場合、iOS 6.0のIPSW以外はRedsn0wが対応していないので、どのバージョンでもiOS 6.0のIPSWを選択します。

 

ブートロムの新旧を聞いてきますが、今回もNoで良いです。

Noを選択した場合、新たに24kpwnが適用されるので、新ブートロムの場合は再度alloc8の有効化が必要です。

 

2, 最初のページに戻り、Jailbreakを選択。

オプション選択画面になるので選択します。

・Install Cydia

Cydiaやその他パッケージをインストールします。選択しないとCydiaがインストールされないので選択しておきましょう。

・Verbose boot

Verbose bootで起動します。特に必要はありません。

・Custom boot/recovery logo

起動時のブートロゴ、リカバリーモード時に表示されるリカバリーロゴをカスタマイズできます。お好みでどうぞ。

・Deactivate

Deactivate (アクティベート解除)します。

 

オプション選択が終わったらNextを選択。デバイスをDFU Modeに入れるとJailbreakが始まります。

終了すると、旧ブートロムなら普通に起動しますが、新ブートロムなら画面は黒いままです。このままでは起動しないので、続けてipwndfuでalloc8 exploitを適用します。