Add some untested semi-tether support and other changes

Add some untested semi-tether support for 4.2.9 and 4.2.10, identical to ipad 2 4.3.x support for (semi-)tethered jailbreaking
This commit is contained in:
LukeeGD 2024-11-22 23:42:28 +08:00
parent bfb8f151dd
commit 5f3d6af81f
3 changed files with 72 additions and 39 deletions

Binary file not shown.

Binary file not shown.

View File

@ -1164,7 +1164,7 @@ device_get_info() {
;; ;;
esac esac
# disable baseband update if var is set to 1 (manually disabled w/ --disable-bbupdate arg) # disable baseband update if var is set to 1 (manually disabled w/ --disable-bbupdate arg)
if [[ $device_disable_bbupdate == 1 ]]; then if [[ $device_disable_bbupdate == 1 && $device_use_bb != 0 ]] && (( device_proc < 7 )); then
device_disable_bbupdate="$device_type" device_disable_bbupdate="$device_type"
fi fi
# if latest vers is not set, copy use vers to latest # if latest vers is not set, copy use vers to latest
@ -2174,7 +2174,7 @@ ipsw_preference_set() {
fi fi
case $device_target_vers in case $device_target_vers in
9.3.[4321] | 9.3 | 9.[21]* | [8765]* | 4.3* | 4.2.[8761] ) ipsw_canjailbreak=1;; 9.3.[4321] | 9.3 | 9.[21]* | [8765]* | 4.[32]* ) ipsw_canjailbreak=1;;
3.1.3 ) 3.1.3 )
case $device_proc in case $device_proc in
1 ) ipsw_canjailbreak=1;; 1 ) ipsw_canjailbreak=1;;
@ -2238,6 +2238,13 @@ ipsw_preference_set() {
if [[ $device_type == "iPad2"* && $device_target_vers == "4.3"* && $device_target_tethered != 1 ]]; then if [[ $device_type == "iPad2"* && $device_target_vers == "4.3"* && $device_target_tethered != 1 ]]; then
warn "This will be a semi-tethered jailbreak. checkm8-a5 is required to boot to a jailbroken state." warn "This will be a semi-tethered jailbreak. checkm8-a5 is required to boot to a jailbroken state."
print "* To boot jailbroken later, go to: Other Utilities -> Just Boot" print "* To boot jailbroken later, go to: Other Utilities -> Just Boot"
elif [[ $device_type == "iPhone3,3" ]]; then
case $device_target_vers in
4.2.9 | 4.2.10 )
warn "This will be a semi-tethered jailbreak."
print "* To boot jailbroken later, go to: Other Utilities -> Just Boot"
;;
esac
fi 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
@ -2671,7 +2678,7 @@ ipsw_prepare_jailbreak() {
JBFiles[2]=$jelbrek/greenpois0n/${device_type}_${device_target_build}.tar JBFiles[2]=$jelbrek/greenpois0n/${device_type}_${device_target_build}.tar
fi fi
;; ;;
3.0* | 3.1 | 3.1.[12] ) :;; 3.0* | 3.1 | 3.1.[12] | 4.2* ) :;;
* ) JBFiles[2]=$jelbrek/${JBFiles[2]};; * ) JBFiles[2]=$jelbrek/${JBFiles[2]};;
esac esac
case $device_target_vers in case $device_target_vers in
@ -2685,8 +2692,7 @@ ipsw_prepare_jailbreak() {
fi fi
if [[ $device_target_tethered == 1 && $device_type != "iPad2"* ]]; then if [[ $device_target_tethered == 1 && $device_type != "iPad2"* ]]; then
case $device_target_vers in case $device_target_vers in
4.2.[8761] ) :;; 5* | 4.3* ) JBFiles+=("$jelbrek/g1lbertJB/install.tar");;
5* | 4.[32]* ) JBFiles+=("$jelbrek/g1lbertJB/install.tar");;
esac esac
fi fi
fi fi
@ -3412,6 +3418,7 @@ ipsw_prepare_32bit() {
JBFiles[0]= JBFiles[0]=
fi fi
;; ;;
4.2.9 | 4.2.10 ) JBFiles[0]=;;
4.2.1 ) 4.2.1 )
if [[ $device_type != "iPhone1,2" ]]; then if [[ $device_type != "iPhone1,2" ]]; then
ExtraArgs+=" -punchd" ExtraArgs+=" -punchd"
@ -3428,8 +3435,7 @@ ipsw_prepare_32bit() {
fi fi
if [[ $device_target_tethered == 1 ]]; then if [[ $device_target_tethered == 1 ]]; then
case $device_target_vers in case $device_target_vers in
4.2.[8761] ) :;; 5* | 4.3* ) JBFiles+=("$jelbrek/g1lbertJB/install.tar");;
5* | 4.[32]* ) JBFiles+=("$jelbrek/g1lbertJB/install.tar");;
esac esac
fi fi
fi fi
@ -4625,7 +4631,7 @@ restore_idevicerestore() {
mkdir shsh 2>/dev/null mkdir shsh 2>/dev/null
cp "$shsh_path" shsh/$device_ecid-$device_type-$device_target_vers.shsh cp "$shsh_path" shsh/$device_ecid-$device_type-$device_target_vers.shsh
if [[ $device_use_bb == 0 || -n $device_disable_bbupdate ]]; then if [[ $device_use_bb == 0 || $device_type == "$device_disable_bbupdate" ]]; then
log "Device $device_type has no baseband/disabled baseband update" log "Device $device_type has no baseband/disabled baseband update"
fi fi
ipsw_extract custom ipsw_extract custom
@ -5590,7 +5596,12 @@ device_ramdisk() {
fi fi
log "Patch iBSS" log "Patch iBSS"
"$dir/xpwntool" iBSS.dec iBSS.raw "$dir/xpwntool" iBSS.dec iBSS.raw
if [[ $build_id == "8"* && $device_type == "iPad2"* ]]; then if [[ $device_type == "iPhone3,3" ]]; then
case $build_id in
8E600 | 8E501 ) device_boot4=1;;
esac
fi
if [[ $build_id == "8"* && $device_type == "iPad2"* ]] || [[ $device_boot4 == 1 ]]; then
"$dir/iBoot32Patcher" iBSS.raw iBSS.patched --rsa -b "-v amfi=0xff cs_enforcement_disable=1" "$dir/iBoot32Patcher" iBSS.raw iBSS.patched --rsa -b "-v amfi=0xff cs_enforcement_disable=1"
device_boot4=1 device_boot4=1
else else
@ -5611,7 +5622,7 @@ device_ramdisk() {
fi fi
fi fi
if [[ $device_type == "iPad2"* && $build_id == "8"* ]]; then if [[ $device_boot4 == 1 ]]; then
log "Patch Kernelcache" log "Patch Kernelcache"
mv Kernelcache.dec Kernelcache0.dec mv Kernelcache.dec Kernelcache0.dec
"$dir/xpwntool" Kernelcache0.dec Kernelcache.raw "$dir/xpwntool" Kernelcache0.dec Kernelcache.raw
@ -6303,10 +6314,10 @@ menu_print_info() {
if [[ $device_unactivated == 1 ]]; then if [[ $device_unactivated == 1 ]]; then
print "* Device is not activated, select Attempt Activation to activate." print "* Device is not activated, select Attempt Activation to activate."
fi fi
if [[ -n $device_disable_bbupdate && $device_use_bb != 0 ]] && (( device_proc < 7 )); then if [[ $device_type == "$device_disable_bbupdate" && $device_use_bb != 0 ]] && (( device_proc < 7 )); then
warn "Disable bbupdate flag detected, baseband update is disabled. Proceed with caution" warn "Disable bbupdate flag detected, baseband update is disabled. Proceed with caution"
if [[ $device_deadbb == 1 ]]; then if [[ $device_deadbb == 1 ]]; then
warn "dead-bb flag detected, baseband dump/stitching is disabled. Your device will not activate" warn "dead-bb flag detected, baseband dump/stitching is disabled. Your device will not activate after restore"
else else
print "* Current device baseband will be dumped and stitched to custom IPSW" print "* Current device baseband will be dumped and stitched to custom IPSW"
print "* Stitching is supported in these restores/downgrades: 8.4.1/6.1.3, Other (tethered or with SHSH), powdersn0w" print "* Stitching is supported in these restores/downgrades: 8.4.1/6.1.3, Other (tethered or with SHSH), powdersn0w"
@ -6315,24 +6326,29 @@ menu_print_info() {
elif [[ -n $device_disable_bbupdate ]]; then elif [[ -n $device_disable_bbupdate ]]; then
warn "Disable bbupdate flag detected, but this flag is not supported for this device" warn "Disable bbupdate flag detected, but this flag is not supported for this device"
fi fi
if [[ $device_actrec == 1 ]]; then if [[ -n $device_disable_bbupdate ]]; then
warn "Activation records flag detected. Proceed with caution" print "* For more details, go to: https://github.com/LukeZGD/Legacy-iOS-Kit/wiki/Baseband-Update"
print "* Stitching is supported in these restores/downgrades: 8.4.1/6.1.3, Other with SHSH, powdersn0w"
fi fi
if [[ $device_pwnrec == 1 ]]; then if [[ $ipsw_jailbreak == 1 ]] && (( device_proc < 7 )); then
warn "Pwned recovery flag detected. Assuming device is in pwned recovery mode."
elif [[ $device_skip_ibss == 1 ]]; then
warn "Skip iBSS flag detected. Assuming device is in pwned iBSS mode."
fi
if [[ $ipsw_jailbreak == 1 ]]; then
warn "Jailbreak flag detected. Jailbreak option enabled." warn "Jailbreak flag detected. Jailbreak option enabled."
fi fi
if [[ $ipsw_gasgauge_patch ]]; then if [[ $device_proc != 1 ]] && (( device_proc < 7 )); then
warn "gasgauge-patch flag detected. multipatch enabled." if [[ $device_actrec == 1 ]]; then
print "* This supports up to iOS 8.4.1 only. iOS 9 will not work" warn "Activation records flag detected. Proceed with caution"
fi print "* Stitching is supported in these restores/downgrades: 8.4.1/6.1.3, Other with SHSH, powdersn0w"
if [[ $ipsw_skip_first ]]; then fi
warn "skip-first flag detected. Skipping first restore and flashing NOR IPSW only for powdersn0w 4.2.x and lower" if [[ $device_pwnrec == 1 ]]; then
warn "Pwned recovery flag detected. Assuming device is in pwned recovery mode."
elif [[ $device_skip_ibss == 1 ]]; then
warn "Skip iBSS flag detected. Assuming device is in pwned iBSS mode."
fi
if [[ $ipsw_gasgauge_patch == 1 ]]; then
warn "gasgauge-patch flag detected. multipatch enabled."
print "* This supports up to iOS 8.4.1 only. iOS 9 will not work"
fi
if [[ $ipsw_skip_first == 1 ]]; then
warn "skip-first flag detected. Skipping first restore and flashing NOR IPSW only for powdersn0w 4.2.x and lower"
fi
fi fi
if [[ -n $device_build ]]; then if [[ -n $device_build ]]; then
print "* iOS Version: $device_vers ($device_build)" print "* iOS Version: $device_vers ($device_build)"
@ -7558,11 +7574,10 @@ ipsw_custom_set() {
if [[ $device_actrec == 1 ]]; then if [[ $device_actrec == 1 ]]; then
ipsw_custom+="A" ipsw_custom+="A"
fi fi
if [[ $device_type == "$device_disable_bbupdate" && $device_use_bb != 0 ]] && (( device_proc > 4 )); then if [[ $device_deadbb == 1 ]]; then
ipsw_custom+="D"
elif [[ $device_type == "$device_disable_bbupdate" ]]; then
ipsw_custom+="B" ipsw_custom+="B"
if [[ $device_deadbb == 1 ]]; then
ipsw_custom+="D"
fi
fi fi
if [[ $ipsw_gasgauge_patch == 1 ]]; then if [[ $ipsw_gasgauge_patch == 1 ]]; then
ipsw_custom+="G" ipsw_custom+="G"
@ -8057,23 +8072,28 @@ menu_other() {
if [[ $device_mode != "none" && $device_proc != 1 ]] && (( device_proc < 7 )); then if [[ $device_mode != "none" && $device_proc != 1 ]] && (( device_proc < 7 )); then
case $device_mode in case $device_mode in
"Normal" ) menu_items+=("Enter kDFU Mode");; "Normal" ) menu_items+=("Enter kDFU Mode");;
* ) menu_items+=("Get iOS Version");; * )
if [[ $device_type != "iPod2,1" ]]; then
menu_items+=("Just Boot")
fi
;;
esac esac
case $device_proc in case $device_proc in
[56] ) menu_items+=("Send Pwned iBSS");; [56] ) menu_items+=("Send Pwned iBSS");;
* ) menu_items+=("Enter pwnDFU Mode");; * ) menu_items+=("Enter pwnDFU Mode");;
esac esac
menu_items+=("Clear NVRAM" "Activation Records") menu_items+=("Clear NVRAM")
case $device_type in
iPhone* | iPad2,[67] | iPad3,[56] ) menu_items+=("Dump Baseband");;
esac
if [[ $device_type != "iPod2,1" ]]; then
menu_items+=("Just Boot")
fi
case $device_type in case $device_type in
iPhone3,[13] | iPhone[45]* | iPad1,1 | iPad2,4 | iPod[35],1 ) menu_items+=("Disable/Enable Exploit");; iPhone3,[13] | iPhone[45]* | iPad1,1 | iPad2,4 | iPod[35],1 ) menu_items+=("Disable/Enable Exploit");;
iPhone2,1 ) menu_items+=("Install alloc8 Exploit");; iPhone2,1 ) menu_items+=("Install alloc8 Exploit");;
esac esac
if [[ $device_mode != "Normal" ]]; then
menu_items+=("Get iOS Version")
fi
case $device_type in
iPhone[45]* | iPad2,[67] | iPad3,[56] ) menu_items+=("Dump Baseband");;
esac
menu_items+=("Activation Records")
fi fi
if [[ $device_mode != "none" ]]; then if [[ $device_mode != "none" ]]; then
if (( device_proc >= 7 )) && (( device_proc <= 10 )); then if (( device_proc >= 7 )) && (( device_proc <= 10 )); then
@ -8225,6 +8245,14 @@ device_jailbreak() {
warn "This will be a semi-tethered jailbreak. checkm8-a5 is required to boot to a jailbroken state." warn "This will be a semi-tethered jailbreak. checkm8-a5 is required to boot to a jailbroken state."
print "* To boot jailbroken later, go to: Other Utilities -> Just Boot" print "* To boot jailbroken later, go to: Other Utilities -> Just Boot"
pause pause
elif [[ $device_type == "iPhone3,3" ]]; then
case $device_vers in
4.2.9 | 4.2.10 )
warn "This will be a semi-tethered jailbreak."
print "* To boot jailbroken later, go to: Other Utilities -> Just Boot"
pause
;;
esac
elif [[ $device_proc == 5 ]]; then elif [[ $device_proc == 5 ]]; then
print "* Note: It would be better to jailbreak using sideload or custom IPSW methods for A5 devices." print "* Note: It would be better to jailbreak using sideload or custom IPSW methods for A5 devices."
print "* Especially since this method may require the usage of checkm8-a5." print "* Especially since this method may require the usage of checkm8-a5."
@ -8295,6 +8323,11 @@ device_jailbreak() {
warn "For 3.x versions on the 3GS, the \"Jailbreak Device\" option will only work on devices restored with Legacy iOS Kit." warn "For 3.x versions on the 3GS, the \"Jailbreak Device\" option will only work on devices restored with Legacy iOS Kit."
print "* This applies to all 3.x versions on the 3GS only. They require usage of the \"Restore/Downgrade\" option first." print "* This applies to all 3.x versions on the 3GS only. They require usage of the \"Restore/Downgrade\" option first."
echo echo
elif [[ $device_vers == "7"* ]]; then
warn "The iOS 7 untethers may cause issues to your device after jailbreaking with this method."
print "* You may encounter issues like slowdowns/freezing and losing baseband functionality."
print "* It is recommended to instead dump blobs and restore with the jailbreak option enabled."
print "* Or use other methods like jailbreaking with evasi0n7/Pangu if your device is not OTA updated."
fi fi
print "* By selecting Jailbreak Device, your device will be jailbroken using Ramdisk Method." print "* By selecting Jailbreak Device, your device will be jailbroken using Ramdisk Method."
print "* Before continuing, make sure that your device does not have a jailbreak yet." print "* Before continuing, make sure that your device does not have a jailbreak yet."