iPad 2 4.3.x semi-tethered jailbreaking

- tethered without blobs, semi-tethered with blobs
- only tested on 2,1 wi-fi, might have issues in the cellular ones, hopefully not
This commit is contained in:
LukeZGD 2024-01-06 17:32:10 +08:00
parent 2c42cf0545
commit 0ba8a76392
20 changed files with 29 additions and 27 deletions

View File

@ -16,7 +16,7 @@
- Tethered restores to other iOS versions for A5/A6 and other devices - Tethered restores to other iOS versions for A5/A6 and other devices
- Jailbreak all 32-bit iOS devices on (almost) any iOS version - Jailbreak all 32-bit iOS devices on (almost) any iOS version
- Available on iOS versions 3.1.3 to 9.3.4 - Available on iOS versions 3.1.3 to 9.3.4
- Only unsupported versions are iOS 9.0.x and iPad 2 on 4.3.x - Only unsupported versions are iOS 9.0.x
- Hacktivation for iPhone 2G, 3G, 3GS (activate without valid SIM card) - Hacktivation for iPhone 2G, 3G, 3GS (activate without valid SIM card)
- Restore to iOS 10.3.3 (signed OTA version) on supported A7 devices - Restore to iOS 10.3.3 (signed OTA version) on supported A7 devices
- Install IPA files for supported devices with AppSync installed - Install IPA files for supported devices with AppSync installed
@ -145,6 +145,7 @@
- 32-bit bundles from [OdysseusOTA](https://www.youtube.com/watch?v=Wo7mGdMcjxw), [OdysseusOTA2](https://www.youtube.com/watch?v=fh0tB6fp0Sc), [alitek12](https://www.mediafire.com/folder/b1z64roy512wd/FirmwareBundles), [gjest](https://www.reddit.com/r/jailbreak/comments/6yrzzj/release_firmware_bundles_for_ios_841_ipad21234567/) (modified bundles for daibutsuCFW) - 32-bit bundles from [OdysseusOTA](https://www.youtube.com/watch?v=Wo7mGdMcjxw), [OdysseusOTA2](https://www.youtube.com/watch?v=fh0tB6fp0Sc), [alitek12](https://www.mediafire.com/folder/b1z64roy512wd/FirmwareBundles), [gjest](https://www.reddit.com/r/jailbreak/comments/6yrzzj/release_firmware_bundles_for_ios_841_ipad21234567/) (modified bundles for daibutsuCFW)
- A7 patches from [MatthewPierson](https://github.com/MatthewPierson/iPhone-5s-OTA-Downgrade-Patches) - A7 patches from [MatthewPierson](https://github.com/MatthewPierson/iPhone-5s-OTA-Downgrade-Patches)
- iPad 2 iOS 4.3.x bundles from [selfisht, Ralph0045](https://www.reddit.com/r/LegacyJailbreak/comments/1172ulo/release_ios_4_ipad_2_odysseus_firmware_bundles/) - iPad 2 iOS 4.3.x bundles from [selfisht, Ralph0045](https://www.reddit.com/r/LegacyJailbreak/comments/1172ulo/release_ios_4_ipad_2_odysseus_firmware_bundles/)
- [datautils0](https://github.com/comex/datautils0) - comex (used for iPad 2 4.3.x kernel diffs)
- [sshpass](https://sourceforge.net/project/sshpass) - [sshpass](https://sourceforge.net/project/sshpass)
- Bootstrap tar from [SpiritNET](https://invoxiplaygames.uk/projects/spiritnet/) - Bootstrap tar from [SpiritNET](https://invoxiplaygames.uk/projects/spiritnet/)
- [Cydia HTTPatch](https://cydia.invoxiplaygames.uk/package/cydiahttpatch) for 3.1.3 downgrades/jailbreaks - [Cydia HTTPatch](https://cydia.invoxiplaygames.uk/package/cydiahttpatch) for 3.1.3 downgrades/jailbreaks

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1656,7 +1656,7 @@ ipsw_preference_set() {
fi fi
case $device_target_vers in case $device_target_vers in
9.3.[1234] | 9.3 | 9.2* | 9.1 | 8* | 7* | 6* | 5* | 3.1.3 ) ipsw_canjailbreak=1;; 9.3.[1234] | 9.3 | 9.2* | 9.1 | 8* | 7* | 6* | 5* | 4* | 3.1.3 ) ipsw_canjailbreak=1;;
esac esac
if [[ $device_proc == 5 ]]; then if [[ $device_proc == 5 ]]; then
case $device_target_vers in case $device_target_vers in
@ -1670,21 +1670,6 @@ ipsw_preference_set() {
4.2.1 | 4.1 | 4.0* | 3* ) :;; 4.2.1 | 4.1 | 4.0* | 3* ) :;;
* ) ipsw_canjailbreak=1;; * ) ipsw_canjailbreak=1;;
esac esac
elif [[ $device_proc == 4 || $device_type == "iPad2"* ]]; then
case $device_type in
iPhone3* | iPad1,1 | iPod[34],1 )
if [[ $device_target_vers != "4.2.1" ]]; then
ipsw_canjailbreak=1
fi
;;
iPhone2,1 | iPod2,1 )
if [[ $device_target_vers == "4"* && $device_target_other != 1 ]]; then
ipsw_canjailbreak=1
fi
;;
esac
elif [[ $device_proc == 1 ]]; then
ipsw_canjailbreak=1
elif [[ $device_target_other == 1 && $ipsw_canjailbreak != 1 ]]; then elif [[ $device_target_other == 1 && $ipsw_canjailbreak != 1 ]]; then
return return
fi fi
@ -1697,6 +1682,10 @@ ipsw_preference_set() {
print "* When this option is enabled, your device will be jailbroken on restore." print "* When this option is enabled, your device will be jailbroken on restore."
print "* I recommend to enable this option to have the jailbreak and Cydia pre-installed." print "* I recommend to enable this option to have the jailbreak and Cydia pre-installed."
print "* This option is enabled by default (Y). Select this option if unsure." print "* This option is enabled by default (Y). Select this option if unsure."
if [[ $device_type == "iPad2"* && $device_target_vers == "4.3"* && $device_target_tethered != 1 ]]; then
warn "This will be a semi-tethered jailbreak. Arduino is required to boot to a jailbroken state."
print "* To boot jailbroken later, go to: Other Utilities -> Just Boot"
fi
read -p "$(input 'Enable this option? (Y/n): ')" ipsw_jailbreak read -p "$(input 'Enable this option? (Y/n): ')" ipsw_jailbreak
if [[ $ipsw_jailbreak == 'N' || $ipsw_jailbreak == 'n' ]]; then if [[ $ipsw_jailbreak == 'N' || $ipsw_jailbreak == 'n' ]]; then
ipsw_jailbreak= ipsw_jailbreak=
@ -2011,6 +2000,12 @@ ipsw_prepare_jailbreak() {
done done
if [[ $device_proc != 1 ]]; then if [[ $device_proc != 1 ]]; then
case $device_target_vers in case $device_target_vers in
4.3* )
JBFiles[2]=$jelbrek/${JBFiles[2]}
if [[ $device_type == "iPad2"* ]]; then
JBFiles[2]=
fi
;;
4.2.1 ) 4.2.1 )
ExtraArgs+="-punchd" ExtraArgs+="-punchd"
JBFiles[2]=$jelbrek/${JBFiles[2]} JBFiles[2]=$jelbrek/${JBFiles[2]}
@ -3870,7 +3865,9 @@ device_ramdisk() {
else else
log "Patch iBEC" log "Patch iBEC"
"$dir/xpwntool" iBEC.dec iBEC.raw "$dir/xpwntool" iBEC.dec iBEC.raw
if [[ $1 == "justboot" ]]; then if [[ $1 == "justboot" && $device_type == "iPad2"* && $device_target_build == "8"* ]]; then
"$dir/iBoot32Patcher" iBEC.raw iBEC.patched --rsa -b "-v cs_enforcement_disable=1"
elif [[ $1 == "justboot" ]]; then
"$dir/iBoot32Patcher" iBEC.raw iBEC.patched --rsa -b "-v" "$dir/iBoot32Patcher" iBEC.raw iBEC.patched --rsa -b "-v"
else else
"$dir/iBoot32Patcher" iBEC.raw iBEC.patched --rsa --debug -b "rd=md0 -v amfi=0xff cs_enforcement_disable=1" "$dir/iBoot32Patcher" iBEC.raw iBEC.patched --rsa --debug -b "rd=md0 -v amfi=0xff cs_enforcement_disable=1"
@ -3879,9 +3876,17 @@ device_ramdisk() {
fi fi
fi fi
if [[ $device_type == "iPad2"* && $device_target_build == "8"* ]]; then
log "Patch Kernelcache"
mv Kernelcache.dec Kernelcache0.dec
"$dir/xpwntool" Kernelcache0.dec Kernelcache.raw
$bspatch Kernelcache.raw Kernelcache.patched ../resources/patch/kernelcache.release.${device_model}.${device_target_build}.patch
"$dir/xpwntool" Kernelcache.patched Kernelcache.dec -t Kernelcache0.dec
fi
mv iBSS iBEC DeviceTree.dec Kernelcache.dec Ramdisk.dmg $ramdisk_path 2>/dev/null mv iBSS iBEC DeviceTree.dec Kernelcache.dec Ramdisk.dmg $ramdisk_path 2>/dev/null
if [[ $1 == "jailbreak" ]]; then if [[ $1 == "jailbreak" || $1 == "justboot" ]]; then
device_enter_mode pwnDFU device_enter_mode pwnDFU
elif [[ $device_proc == 4 ]] || [[ $device_proc == 6 && $platform == "macos" ]]; then elif [[ $device_proc == 4 ]] || [[ $device_proc == 6 && $platform == "macos" ]]; then
device_buttons device_buttons
@ -3998,10 +4003,6 @@ device_ramdisk() {
log "The current iOS version of this device is: $vers ($build)" log "The current iOS version of this device is: $vers ($build)"
$ssh -p 2222 root@127.0.0.1 "reboot_bak" $ssh -p 2222 root@127.0.0.1 "reboot_bak"
return return
elif [[ $device_type == "iPad2"* && $vers == "4"* ]]; then
warn "iOS $vers on $device_type is not supported for jailbreaking with SSHRD."
$ssh -p 2222 root@127.0.0.1 "reboot_bak"
return
fi fi
case $vers in case $vers in
9.3.[1234] | 9.3 ) untether="untetherhomedepot.tar";; 9.3.[1234] | 9.3 ) untether="untetherhomedepot.tar";;
@ -5173,9 +5174,9 @@ device_jailbreakrd() {
esac esac
fi fi
if [[ $device_type == "iPad2"* && $device_vers == "4"* ]]; then if [[ $device_type == "iPad2"* && $device_vers == "4"* ]]; then
warn "This version ($device_vers) is not supported for jailbreaking with SSHRD." warn "This will be a semi-tethered jailbreak. Arduino is required to boot to a jailbroken state."
print "* Supported versions for iPad 2 are: 5.0 to 9.3.4 (excluding 9.0.x)" print "* To boot jailbroken later, go to: Other Utilities -> Just Boot"
return pause
fi fi
case $device_vers in case $device_vers in
9.3.[1234] | 9.3 | 9.2* | 9.1 | 8* | 7* | 6* | 5* | 4* | 3.2* | 3.1.3 ) :;; 9.3.[1234] | 9.3 | 9.2* | 9.1 | 8* | 7* | 6* | 5* | 4* | 3.2* | 3.1.3 ) :;;
@ -5295,7 +5296,7 @@ device_activate() {
log "Attempting to activate device with ideviceactivation" log "Attempting to activate device with ideviceactivation"
if (( device_proc <= 4 )) && [[ $device_type == "iPhone"* ]]; then if (( device_proc <= 4 )) && [[ $device_type == "iPhone"* ]]; then
print "* For iPhone 4 and older devices, make sure to have a valid SIM card." print "* For iPhone 4 and older devices, make sure to have a valid SIM card."
if [[ $device_proc == 1 || $device_type == "iPhone2,1" ]]; then if [[ $device_type == "iPhone1"* || $device_type == "iPhone2,1" ]]; then
print "* For hacktivation, go to Restore/Downgrade instead." print "* For hacktivation, go to Restore/Downgrade instead."
fi fi
fi fi