mirror of
https://github.com/LukeZGD/Legacy-iOS-Kit.git
synced 2024-12-25 07:41:49 +01:00
Add IPA install (sideload and appsync), and other
and futurerestoring for A8/A9/A10 (iOS 15) devices
This commit is contained in:
parent
28881bc514
commit
0174fd8dfe
15
README.md
15
README.md
@ -19,6 +19,9 @@
|
|||||||
- Only unsupported versions are iOS 9.0.x and iPad 2 on 4.3.x
|
- Only unsupported versions are iOS 9.0.x and iPad 2 on 4.3.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
|
||||||
|
- Sideload IPA files for supported devices on Linux
|
||||||
|
- Save SHSH blobs for signed OTA versions for supported devices
|
||||||
- Save onboard and Cydia SHSH blobs for 32-bit devices
|
- Save onboard and Cydia SHSH blobs for 32-bit devices
|
||||||
- Enter pwned iBSS/kDFU mode for supported 32-bit devices
|
- Enter pwned iBSS/kDFU mode for supported 32-bit devices
|
||||||
- Boot SSH Ramdisk for 32-bit devices
|
- Boot SSH Ramdisk for 32-bit devices
|
||||||
@ -71,11 +74,11 @@
|
|||||||
- iPhone 2G, 3G, 3GS, 4, 4S, 5, 5C
|
- iPhone 2G, 3G, 3GS, 4, 4S, 5, 5C
|
||||||
- iPad 1, 2, 3, 4, mini 1
|
- iPad 1, 2, 3, 4, mini 1
|
||||||
- iPod touch 1, 2, 3, 4, 5
|
- iPod touch 1, 2, 3, 4, 5
|
||||||
- Restoring with SHSH blobs is also supported on most A7/A8 devices:
|
- Restoring with SHSH blobs is also supported on some 64-bit devices:
|
||||||
- See [SEP/BB Compatibility Chart](https://docs.google.com/spreadsheets/d/1Mb1UNm6g3yvdQD67M413GYSaJ4uoNhLgpkc7YKi3LBs/edit#gid=1191207636) for iOS versions that can be restored to
|
- See [SEP/BB Compatibility Chart](https://docs.google.com/spreadsheets/d/1Mb1UNm6g3yvdQD67M413GYSaJ4uoNhLgpkc7YKi3LBs/edit#gid=1191207636) for iOS versions that can be restored to
|
||||||
- iPhone 5S, 6, 6 Plus
|
- iPhone 5S, 6, 6 Plus, 6S, 6S Plus, SE 2016, 7
|
||||||
- iPad Air 1, mini 2, mini 3
|
- iPad Air 1, Air 2, mini 2, mini 3, mini 4
|
||||||
- iPod touch 6
|
- iPod touch 6, 7
|
||||||
- Restoring with powdersn0w is supported on the following devices and target version range:
|
- Restoring with powdersn0w is supported on the following devices and target version range:
|
||||||
- iPhone 4 GSM - iOS 4.0 to 7.1.1 (4.2.1 is not functional)
|
- iPhone 4 GSM - iOS 4.0 to 7.1.1 (4.2.1 is not functional)
|
||||||
- iPhone 4 CDMA - iOS 5.0 to 7.1.1 (4.2.x is not functional)
|
- iPhone 4 CDMA - iOS 5.0 to 7.1.1 (4.2.x is not functional)
|
||||||
@ -118,10 +121,14 @@
|
|||||||
- [libimobiledevice](https://github.com/libimobiledevice/libimobiledevice) - libimobiledevice
|
- [libimobiledevice](https://github.com/libimobiledevice/libimobiledevice) - libimobiledevice
|
||||||
- [libirecovery](https://github.com/libimobiledevice/libirecovery) - libimobiledevice
|
- [libirecovery](https://github.com/libimobiledevice/libirecovery) - libimobiledevice
|
||||||
- [libideviceactivation](https://github.com/libimobiledevice/libideviceactivation) - libimobiledevice
|
- [libideviceactivation](https://github.com/libimobiledevice/libideviceactivation) - libimobiledevice
|
||||||
|
- [ideviceinstaller](https://github.com/libimobiledevice/ideviceinstaller) - libimobiledevice
|
||||||
|
- [anisette-server](https://github.com/Dadoum/Provision) from Provision - Dadoum (used for sideloading on Linux)
|
||||||
|
- [AltServer-Linux](https://github.com/NyaMisty/AltServer-Linux) - NyaMisty (used for sideloading on Linux)
|
||||||
- [tsschecker](https://github.com/tihmstar/tsschecker) - tihmstar; [1Conan fork](https://github.com/1Conan/tsschecker) v413
|
- [tsschecker](https://github.com/tihmstar/tsschecker) - tihmstar; [1Conan fork](https://github.com/1Conan/tsschecker) v413
|
||||||
- [futurerestore](https://github.com/tihmstar/futurerestore) - tihmstar;
|
- [futurerestore](https://github.com/tihmstar/futurerestore) - tihmstar;
|
||||||
- [LukeZGD fork](https://github.com/LukeZGD/futurerestore) used on Linux for restoring 32-bit devices
|
- [LukeZGD fork](https://github.com/LukeZGD/futurerestore) used on Linux for restoring 32-bit devices
|
||||||
- [LukeeGD fork](https://github.com/LukeeGD/futurerestore) used on Linux for restoring A7/A8 devices
|
- [LukeeGD fork](https://github.com/LukeeGD/futurerestore) used on Linux for restoring A7/A8 devices
|
||||||
|
- [new futurerestore](https://github.com/futurerestore/futurerestore/) used for restoring A8/A9/A10 devices that support iOS 15(.8)
|
||||||
- [iBoot32Patcher](https://github.com/dora2-iOS/iBoot32Patcher/) - dora2ios fork
|
- [iBoot32Patcher](https://github.com/dora2-iOS/iBoot32Patcher/) - dora2ios fork
|
||||||
- [idevicerestore](https://github.com/libimobiledevice/idevicerestore) - libimobiledevice; [LukeZGD fork](https://github.com/LukeZGD/idevicerestore)
|
- [idevicerestore](https://github.com/libimobiledevice/idevicerestore) - libimobiledevice; [LukeZGD fork](https://github.com/LukeZGD/idevicerestore)
|
||||||
- [idevicererestore](https://github.com/LukeZGD/daibutsuCFW/tree/main/src/idevicererestore) from daibutsuCFW (used on custom IPSW restores for A5/A6 devices)
|
- [idevicererestore](https://github.com/LukeZGD/daibutsuCFW/tree/main/src/idevicererestore) from daibutsuCFW (used on custom IPSW restores for A5/A6 devices)
|
||||||
|
BIN
bin/linux/arm64/ideviceinstaller
Executable file
BIN
bin/linux/arm64/ideviceinstaller
Executable file
Binary file not shown.
BIN
bin/linux/armhf/ideviceinstaller
Executable file
BIN
bin/linux/armhf/ideviceinstaller
Executable file
Binary file not shown.
BIN
bin/linux/x86_64/ideviceinstaller
Executable file
BIN
bin/linux/x86_64/ideviceinstaller
Executable file
Binary file not shown.
BIN
bin/macos/ideviceinstaller
Executable file
BIN
bin/macos/ideviceinstaller
Executable file
Binary file not shown.
1
resources/firmware/iPad5,1/19H370/sha1sum
Normal file
1
resources/firmware/iPad5,1/19H370/sha1sum
Normal file
@ -0,0 +1 @@
|
|||||||
|
1871dece87f78204b4a6de00415ad7ec1bdb8109
|
1
resources/firmware/iPad5,1/19H370/url
Normal file
1
resources/firmware/iPad5,1/19H370/url
Normal file
@ -0,0 +1 @@
|
|||||||
|
https://updates.cdn-apple.com/2023FallFCS/fullrestores/042-76437/E826C2CC-D34C-405F-B582-3F877988C052/iPad_64bit_TouchID_15.8_19H370_Restore.ipsw
|
1
resources/firmware/iPad5,2/19H370/sha1sum
Normal file
1
resources/firmware/iPad5,2/19H370/sha1sum
Normal file
@ -0,0 +1 @@
|
|||||||
|
1871dece87f78204b4a6de00415ad7ec1bdb8109
|
1
resources/firmware/iPad5,2/19H370/url
Normal file
1
resources/firmware/iPad5,2/19H370/url
Normal file
@ -0,0 +1 @@
|
|||||||
|
https://updates.cdn-apple.com/2023FallFCS/fullrestores/042-76437/E826C2CC-D34C-405F-B582-3F877988C052/iPad_64bit_TouchID_15.8_19H370_Restore.ipsw
|
1
resources/firmware/iPad5,3/19H370/sha1sum
Normal file
1
resources/firmware/iPad5,3/19H370/sha1sum
Normal file
@ -0,0 +1 @@
|
|||||||
|
1871dece87f78204b4a6de00415ad7ec1bdb8109
|
1
resources/firmware/iPad5,3/19H370/url
Normal file
1
resources/firmware/iPad5,3/19H370/url
Normal file
@ -0,0 +1 @@
|
|||||||
|
https://updates.cdn-apple.com/2023FallFCS/fullrestores/042-76437/E826C2CC-D34C-405F-B582-3F877988C052/iPad_64bit_TouchID_15.8_19H370_Restore.ipsw
|
1
resources/firmware/iPad5,4/19H370/sha1sum
Normal file
1
resources/firmware/iPad5,4/19H370/sha1sum
Normal file
@ -0,0 +1 @@
|
|||||||
|
1871dece87f78204b4a6de00415ad7ec1bdb8109
|
1
resources/firmware/iPad5,4/19H370/url
Normal file
1
resources/firmware/iPad5,4/19H370/url
Normal file
@ -0,0 +1 @@
|
|||||||
|
https://updates.cdn-apple.com/2023FallFCS/fullrestores/042-76437/E826C2CC-D34C-405F-B582-3F877988C052/iPad_64bit_TouchID_15.8_19H370_Restore.ipsw
|
1
resources/firmware/iPhone8,1/19H370/sha1sum
Normal file
1
resources/firmware/iPhone8,1/19H370/sha1sum
Normal file
@ -0,0 +1 @@
|
|||||||
|
8c2691a5845fbb3be110730f4a0359bd943305d9
|
1
resources/firmware/iPhone8,1/19H370/url
Normal file
1
resources/firmware/iPhone8,1/19H370/url
Normal file
@ -0,0 +1 @@
|
|||||||
|
https://updates.cdn-apple.com/2023FallFCS/fullrestores/042-76337/06663E02-EF9F-465C-A958-AA7F3B238C2A/iPhone_4.7_15.8_19H370_Restore.ipsw
|
1
resources/firmware/iPhone8,2/19H370/sha1sum
Normal file
1
resources/firmware/iPhone8,2/19H370/sha1sum
Normal file
@ -0,0 +1 @@
|
|||||||
|
35c4377214fabaa2878925e7724acadff8a20e20
|
1
resources/firmware/iPhone8,2/19H370/url
Normal file
1
resources/firmware/iPhone8,2/19H370/url
Normal file
@ -0,0 +1 @@
|
|||||||
|
https://updates.cdn-apple.com/2023FallFCS/fullrestores/042-76338/0D898C88-1E03-42FD-A160-93DDEDD358FA/iPhone_5.5_15.8_19H370_Restore.ipsw
|
1
resources/firmware/iPhone8,4/19H370/sha1sum
Normal file
1
resources/firmware/iPhone8,4/19H370/sha1sum
Normal file
@ -0,0 +1 @@
|
|||||||
|
c4668a350a94cfbfb43389122fce27df4a747699
|
1
resources/firmware/iPhone8,4/19H370/url
Normal file
1
resources/firmware/iPhone8,4/19H370/url
Normal file
@ -0,0 +1 @@
|
|||||||
|
https://updates.cdn-apple.com/2023FallFCS/fullrestores/042-76384/1169EC5F-D667-4CD9-B1EB-8ACAC3B14F89/iPhone_4.0_64bit_15.8_19H370_Restore.ipsw
|
1
resources/firmware/iPhone9,1/19H370/sha1sum
Normal file
1
resources/firmware/iPhone9,1/19H370/sha1sum
Normal file
@ -0,0 +1 @@
|
|||||||
|
a3bea9e09025ccb8af1abcf30d48d2c51b8a0c4d
|
1
resources/firmware/iPhone9,1/19H370/url
Normal file
1
resources/firmware/iPhone9,1/19H370/url
Normal file
@ -0,0 +1 @@
|
|||||||
|
https://updates.cdn-apple.com/2023FallFCS/fullrestores/042-76317/60642D20-45C8-4BEB-83C9-898F5B5FB257/iPhone_4.7_P3_15.8_19H370_Restore.ipsw
|
1
resources/firmware/iPhone9,2/19H370/sha1sum
Normal file
1
resources/firmware/iPhone9,2/19H370/sha1sum
Normal file
@ -0,0 +1 @@
|
|||||||
|
0935fd29c1f77dd328b1bbdcf5e6b077e1501223
|
1
resources/firmware/iPhone9,2/19H370/url
Normal file
1
resources/firmware/iPhone9,2/19H370/url
Normal file
@ -0,0 +1 @@
|
|||||||
|
https://updates.cdn-apple.com/2023FallFCS/fullrestores/042-76582/616E5E74-0792-4444-B8C9-FF0BFA54B3CC/iPhone_5.5_P3_15.8_19H370_Restore.ipsw
|
1
resources/firmware/iPhone9,3/19H370/sha1sum
Normal file
1
resources/firmware/iPhone9,3/19H370/sha1sum
Normal file
@ -0,0 +1 @@
|
|||||||
|
a3bea9e09025ccb8af1abcf30d48d2c51b8a0c4d
|
1
resources/firmware/iPhone9,3/19H370/url
Normal file
1
resources/firmware/iPhone9,3/19H370/url
Normal file
@ -0,0 +1 @@
|
|||||||
|
https://updates.cdn-apple.com/2023FallFCS/fullrestores/042-76317/60642D20-45C8-4BEB-83C9-898F5B5FB257/iPhone_4.7_P3_15.8_19H370_Restore.ipsw
|
1
resources/firmware/iPhone9,4/19H370/sha1sum
Normal file
1
resources/firmware/iPhone9,4/19H370/sha1sum
Normal file
@ -0,0 +1 @@
|
|||||||
|
0935fd29c1f77dd328b1bbdcf5e6b077e1501223
|
1
resources/firmware/iPhone9,4/19H370/url
Normal file
1
resources/firmware/iPhone9,4/19H370/url
Normal file
@ -0,0 +1 @@
|
|||||||
|
https://updates.cdn-apple.com/2023FallFCS/fullrestores/042-76582/616E5E74-0792-4444-B8C9-FF0BFA54B3CC/iPhone_5.5_P3_15.8_19H370_Restore.ipsw
|
195
restore.sh
195
restore.sh
@ -32,7 +32,7 @@ pause() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clean() {
|
clean() {
|
||||||
kill $httpserver_pid $iproxy_pid 2>/dev/null
|
kill $httpserver_pid $iproxy_pid $anisette_pid 2>/dev/null
|
||||||
popd &>/dev/null
|
popd &>/dev/null
|
||||||
rm -rf "$(dirname "$0")/tmp/"* "$(dirname "$0")/iP"*/ "$(dirname "$0")/tmp/" 2>/dev/null
|
rm -rf "$(dirname "$0")/tmp/"* "$(dirname "$0")/iP"*/ "$(dirname "$0")/tmp/" 2>/dev/null
|
||||||
if [[ $platform == "macos" ]]; then
|
if [[ $platform == "macos" ]]; then
|
||||||
@ -719,8 +719,12 @@ device_get_info() {
|
|||||||
device_proc=6;; # A6
|
device_proc=6;; # A6
|
||||||
iPad4,[123456789] | iPhone6,[12] )
|
iPad4,[123456789] | iPhone6,[12] )
|
||||||
device_proc=7;; # A7
|
device_proc=7;; # A7
|
||||||
iPhone7,[12] | iPod7,1 )
|
iPhone7,[12] | iPad5,[1234] | iPod7,1 )
|
||||||
device_proc=8;; # A8
|
device_proc=8;; # A8
|
||||||
|
iPhone8,[124] )
|
||||||
|
device_proc=9;; # A9
|
||||||
|
iPhone9,[1234] | iPod9,1 )
|
||||||
|
device_proc=10;; # A10
|
||||||
esac
|
esac
|
||||||
if [[ -z $device_proc ]]; then
|
if [[ -z $device_proc ]]; then
|
||||||
print "* Device: $device_type (${device_model}ap) in $device_mode mode"
|
print "* Device: $device_type (${device_model}ap) in $device_mode mode"
|
||||||
@ -782,8 +786,8 @@ device_get_info() {
|
|||||||
device_latest_build="16H81"
|
device_latest_build="16H81"
|
||||||
;;
|
;;
|
||||||
iPad5,[1234] | iPhone8,[124] | iPhone9,[1234] | iPod9,1 )
|
iPad5,[1234] | iPhone8,[124] | iPhone9,[1234] | iPod9,1 )
|
||||||
device_latest_vers="15.7.9"
|
device_latest_vers="15.8"
|
||||||
device_latest_build="19H365"
|
device_latest_build="19H370"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
# set device_use_bb, device_use_bb_sha1 (what baseband to use for ota/other)
|
# set device_use_bb, device_use_bb_sha1 (what baseband to use for ota/other)
|
||||||
@ -3139,7 +3143,9 @@ restore_download_bbsep() {
|
|||||||
local build_id
|
local build_id
|
||||||
local baseband_sha1
|
local baseband_sha1
|
||||||
local restore_baseband_check
|
local restore_baseband_check
|
||||||
if [[ $device_latest_vers == "$device_use_vers" || $device_target_vers == "10"* ]]; then
|
if [[ $device_latest_vers == "15"* ]]; then
|
||||||
|
return
|
||||||
|
elif [[ $device_latest_vers == "$device_use_vers" || $device_target_vers == "10"* ]]; then
|
||||||
build_id="$device_use_build"
|
build_id="$device_use_build"
|
||||||
restore_baseband="$device_use_bb"
|
restore_baseband="$device_use_bb"
|
||||||
baseband_sha1="$device_use_bb_sha1"
|
baseband_sha1="$device_use_bb_sha1"
|
||||||
@ -3322,6 +3328,39 @@ restore_futurerestore() {
|
|||||||
# sep args for 64bit
|
# sep args for 64bit
|
||||||
ExtraArr+=("-s" "$restore_sep" "-m" "$restore_manifest")
|
ExtraArr+=("-s" "$restore_sep" "-m" "$restore_manifest")
|
||||||
fi
|
fi
|
||||||
|
if (( device_proc < 7 )); then
|
||||||
|
futurerestore2+="_old"
|
||||||
|
elif [[ $device_latest_vers == "15"* ]]; then
|
||||||
|
futurerestore2="../saved/futurerestore_$platform"
|
||||||
|
ExtraArr=("--latest-sep")
|
||||||
|
if [[ $restore_baseband == 0 ]]; then
|
||||||
|
ExtraArr+=("--no-baseband")
|
||||||
|
else
|
||||||
|
ExtraArr+=("--latest-baseband")
|
||||||
|
fi
|
||||||
|
log "New futurerestore will be used for this restore: https://github.com/futurerestore/futurerestore"
|
||||||
|
if [[ $platform == "linux" && $platform_arch != "x86_64" ]]; then
|
||||||
|
log "New futurerestore is not supported on this arch. x86_64 only."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
if [[ ! -e $futurerestore2 ]]; then
|
||||||
|
local url="https://nightly.link/futurerestore/futurerestore/workflows/ci/main/"
|
||||||
|
local file="futurerestore-"
|
||||||
|
case $platform in
|
||||||
|
"macos" ) file+="macOS-RELEASE.zip";;
|
||||||
|
"linux" ) file+="Linux-x86_64-RELEASE.zip";;
|
||||||
|
esac
|
||||||
|
url+="$file"
|
||||||
|
log "Downloading futurerestore: $url"
|
||||||
|
curl -LO "$url"
|
||||||
|
unzip -q "$file" -d .
|
||||||
|
tar -xJvf futurerestore*.xz
|
||||||
|
mv futurerestore $futurerestore2
|
||||||
|
chmod +x $futurerestore2
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
futurerestore2+="_new"
|
||||||
|
fi
|
||||||
if [[ -n "$1" ]]; then
|
if [[ -n "$1" ]]; then
|
||||||
# custom arg, either --use-pwndfu or --skip-blob
|
# custom arg, either --use-pwndfu or --skip-blob
|
||||||
ExtraArr+=("$1")
|
ExtraArr+=("$1")
|
||||||
@ -3329,13 +3368,6 @@ restore_futurerestore() {
|
|||||||
if [[ $debug_mode == 1 ]]; then
|
if [[ $debug_mode == 1 ]]; then
|
||||||
ExtraArr+=("-d")
|
ExtraArr+=("-d")
|
||||||
fi
|
fi
|
||||||
if (( device_proc < 7 )); then
|
|
||||||
futurerestore2+="_old"
|
|
||||||
elif [[ $device_latest_vers == "15"* ]]; then
|
|
||||||
:
|
|
||||||
else
|
|
||||||
futurerestore2+="_new"
|
|
||||||
fi
|
|
||||||
if [[ $platform == "macos" && $device_target_other != 1 &&
|
if [[ $platform == "macos" && $device_target_other != 1 &&
|
||||||
$device_target_vers == "10.3.3" && $device_proc == 7 ]]; then
|
$device_target_vers == "10.3.3" && $device_proc == 7 ]]; then
|
||||||
ipsw_path="$ipsw_custom"
|
ipsw_path="$ipsw_custom"
|
||||||
@ -4230,6 +4262,14 @@ menu_main() {
|
|||||||
if (( device_proc < 8 )) && [[ $device_proc != 1 ]]; then
|
if (( device_proc < 8 )) && [[ $device_proc != 1 ]]; then
|
||||||
menu_items+=("Save SHSH Blobs")
|
menu_items+=("Save SHSH Blobs")
|
||||||
fi
|
fi
|
||||||
|
if [[ $device_mode == "Normal" ]]; then
|
||||||
|
if [[ $platform == "linux" ]]; then
|
||||||
|
case $device_vers in
|
||||||
|
8* | 9* | 1* ) menu_items+=("Sideload IPA");;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
menu_items+=("Install IPA (AppSync)")
|
||||||
|
fi
|
||||||
menu_items+=("Other Utilities" "Exit")
|
menu_items+=("Other Utilities" "Exit")
|
||||||
select opt in "${menu_items[@]}"; do
|
select opt in "${menu_items[@]}"; do
|
||||||
selected="$opt"
|
selected="$opt"
|
||||||
@ -4239,12 +4279,68 @@ menu_main() {
|
|||||||
"Restore/Downgrade" ) menu_restore;;
|
"Restore/Downgrade" ) menu_restore;;
|
||||||
"Jailbreak Device" ) mode="jailbreak";;
|
"Jailbreak Device" ) mode="jailbreak";;
|
||||||
"Save SHSH Blobs" ) menu_shsh;;
|
"Save SHSH Blobs" ) menu_shsh;;
|
||||||
|
"Install IPA (AppSync)" | "Sideload IPA" ) menu_ipa "$selected";;
|
||||||
"Other Utilities" ) menu_other;;
|
"Other Utilities" ) menu_other;;
|
||||||
"Exit" ) mode="exit";;
|
"Exit" ) mode="exit";;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
menu_ipa() {
|
||||||
|
local menu_items
|
||||||
|
local selected
|
||||||
|
local back
|
||||||
|
|
||||||
|
ipa_path=
|
||||||
|
while [[ -z "$mode" && -z "$back" ]]; do
|
||||||
|
menu_items=("Select IPA")
|
||||||
|
menu_print_info
|
||||||
|
if [[ $1 == "Install"* ]]; then
|
||||||
|
print "* Make sure that AppSync Unified is installed on your device."
|
||||||
|
else
|
||||||
|
print "* Sideload IPA is for iOS 9 and newer. (may or may not work on 8)"
|
||||||
|
print "* Sideloading will require an Apple ID."
|
||||||
|
print "* Your Apple ID and password will only be sent to Apple servers."
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
if [[ -n $ipa_path ]]; then
|
||||||
|
print "* Selected IPA: $ipa_path"
|
||||||
|
menu_items+=("Install IPA")
|
||||||
|
else
|
||||||
|
print "* Select IPA to install"
|
||||||
|
fi
|
||||||
|
menu_items+=("Go Back")
|
||||||
|
echo
|
||||||
|
print " > Main Menu > $1"
|
||||||
|
input "Select an option:"
|
||||||
|
select opt in "${menu_items[@]}"; do
|
||||||
|
selected="$opt"
|
||||||
|
break
|
||||||
|
done
|
||||||
|
case $selected in
|
||||||
|
"Select IPA" ) menu_ipa_browse;;
|
||||||
|
"Install IPA" )
|
||||||
|
if [[ $1 == "Install"* ]]; then
|
||||||
|
mode="ideviceinstaller"
|
||||||
|
else
|
||||||
|
mode="altserver_linux"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"Go Back" ) back=1;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
menu_ipa_browse() {
|
||||||
|
local newpath
|
||||||
|
input "Select your IPA file in the file selection window."
|
||||||
|
newpath="$($zenity --file-selection --file-filter='IPA | *.ipa' --title="Select IPA file")"
|
||||||
|
[[ ! -s "$newpath" ]] && read -p "$(input "Enter path to IPA file (or press Ctrl+C to cancel): ")" newpath
|
||||||
|
[[ ! -s "$newpath" ]] && return
|
||||||
|
log "Selected IPA file: $newpath"
|
||||||
|
ipa_path="$newpath"
|
||||||
|
}
|
||||||
|
|
||||||
menu_shsh() {
|
menu_shsh() {
|
||||||
local menu_items
|
local menu_items
|
||||||
local selected
|
local selected
|
||||||
@ -5015,6 +5111,24 @@ device_jailbreakrd() {
|
|||||||
* )
|
* )
|
||||||
warn "This version ($device_vers) is not supported for jailbreaking with SSHRD."
|
warn "This version ($device_vers) is not supported for jailbreaking with SSHRD."
|
||||||
print "* Supported versions are: 3.1.3 to 9.3.4 (excluding 9.0.x)"
|
print "* Supported versions are: 3.1.3 to 9.3.4 (excluding 9.0.x)"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
case $device_vers in
|
||||||
|
9.0* )
|
||||||
|
print "* For this version, use Pangu9, or download openpwnage and sideload it to your device."
|
||||||
|
print "* https://ios.cfw.guide/installing-pangu9/"
|
||||||
|
print "* https://github.com/0xilis/openpwnage"
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
9.3.[56] )
|
||||||
|
print "* For this version, download kok3shi9 and sideload it to your device."
|
||||||
|
print "* https://kok3shidoll.web.app/kok3shi9.html"
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
10* )
|
||||||
|
print "* For this version, download kok3shiX or socket and sideload it to your device."
|
||||||
|
print "* https://kok3shidoll.github.io/download/kokeshi/kokeshiX_v1.0_alpha_2.ipa"
|
||||||
|
print "* https://github.com/staturnzz/socket"
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@ -5207,6 +5321,61 @@ device_enter_ramdisk() {
|
|||||||
device_ramdisk
|
device_ramdisk
|
||||||
}
|
}
|
||||||
|
|
||||||
|
device_ideviceinstaller() {
|
||||||
|
log "Installing selected IPA to device using ideviceinstaller..."
|
||||||
|
"$dir/ideviceinstaller" install "$ipa_path"
|
||||||
|
}
|
||||||
|
|
||||||
|
device_altserver_linux() {
|
||||||
|
local altserver="../saved/anisette-server-$platform"
|
||||||
|
local anisette="../saved/AltServer-$platform"
|
||||||
|
local arch="$platform_arch"
|
||||||
|
case $arch in
|
||||||
|
"armhf" ) arch="armv7";;
|
||||||
|
"arm64" ) arch="aarch64";;
|
||||||
|
esac
|
||||||
|
if [[ $platform == "linux" ]]; then
|
||||||
|
altserver+="_$arch"
|
||||||
|
anisette+="_$arch"
|
||||||
|
fi
|
||||||
|
if [[ ! -e $altserver ]]; then
|
||||||
|
log "Downloading AltServer-Linux..."
|
||||||
|
curl -LO https://github.com/NyaMisty/AltServer-Linux/releases/download/v0.0.5/AltServer-$arch
|
||||||
|
mv AltServer-$arch $altserver
|
||||||
|
fi
|
||||||
|
if [[ ! -e $anisette ]]; then
|
||||||
|
log "Downloading Anisette server..."
|
||||||
|
curl -LO https://github.com/Dadoum/Provision/releases/download/2.2.0/anisette-server-$arch
|
||||||
|
mv anisette-server-$arch $anisette
|
||||||
|
fi
|
||||||
|
chmod +x $altserver $anisette
|
||||||
|
log "Running Anisette"
|
||||||
|
$anisette &
|
||||||
|
anisette_pid=$!
|
||||||
|
local ready=0
|
||||||
|
log "Waiting for Anisette"
|
||||||
|
while [[ $ready != 1 ]]; do
|
||||||
|
[[ $(curl 127.0.0.1:6969 2>/dev/null) ]] && ready=1
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
export ALTSERVER_ANISETTE_SERVER=http://127.0.0.1:6969
|
||||||
|
altserver_linux="env ALTSERVER_ANISETTE_SERVER=$ALTSERVER_ANISETTE_SERVER $altserver"
|
||||||
|
log "Enter Apple ID details to continue."
|
||||||
|
print "* Your Apple ID and password will only be sent to Apple servers."
|
||||||
|
local apple_id
|
||||||
|
local apple_pass
|
||||||
|
while [[ -z $apple_id ]]; do
|
||||||
|
read -p "$(input 'Apple ID: ')" apple_id
|
||||||
|
done
|
||||||
|
while [[ -z $apple_pass ]]; do
|
||||||
|
read -s -p "$(input 'Password: ')" apple_pass
|
||||||
|
done
|
||||||
|
log "Running AltServer-Linux with given Apple ID details..."
|
||||||
|
pushd ../saved >/dev/null
|
||||||
|
$altserver_linux -u $device_udid -a "$apple_id" -p "$apple_pass" "$ipa_path"
|
||||||
|
popd >/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
clear
|
clear
|
||||||
print " *** Legacy iOS Kit ***"
|
print " *** Legacy iOS Kit ***"
|
||||||
@ -5300,6 +5469,8 @@ main() {
|
|||||||
"getversion" ) device_ramdisk getversion;;
|
"getversion" ) device_ramdisk getversion;;
|
||||||
"shutdown" ) "$dir/idevicediagnostics" shutdown;;
|
"shutdown" ) "$dir/idevicediagnostics" shutdown;;
|
||||||
"restart" ) "$dir/idevicediagnostics" restart;;
|
"restart" ) "$dir/idevicediagnostics" restart;;
|
||||||
|
"ideviceinstaller" ) device_ideviceinstaller;;
|
||||||
|
"altserver_linux" ) device_altserver_linux;;
|
||||||
* ) :;;
|
* ) :;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user