├── bootstrap_1500.tar.gz ├── bootstrap_1600.tar.gz ├── bootstrap_1700.tar.gz ├── org.coolstar.sileo_2.3_iphoneos-arm.deb ├── org.swift.libswift_5.0-electra2_iphoneos-arm.deb └── procursus-deploy-linux-macos.sh /bootstrap_1500.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coolstar/Odyssey-bootstrap/6857a822c8f519ba91dbcc1c5176cd82163ce3ff/bootstrap_1500.tar.gz -------------------------------------------------------------------------------- /bootstrap_1600.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coolstar/Odyssey-bootstrap/6857a822c8f519ba91dbcc1c5176cd82163ce3ff/bootstrap_1600.tar.gz -------------------------------------------------------------------------------- /bootstrap_1700.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coolstar/Odyssey-bootstrap/6857a822c8f519ba91dbcc1c5176cd82163ce3ff/bootstrap_1700.tar.gz -------------------------------------------------------------------------------- /org.coolstar.sileo_2.3_iphoneos-arm.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coolstar/Odyssey-bootstrap/6857a822c8f519ba91dbcc1c5176cd82163ce3ff/org.coolstar.sileo_2.3_iphoneos-arm.deb -------------------------------------------------------------------------------- /org.swift.libswift_5.0-electra2_iphoneos-arm.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coolstar/Odyssey-bootstrap/6857a822c8f519ba91dbcc1c5176cd82163ce3ff/org.swift.libswift_5.0-electra2_iphoneos-arm.deb -------------------------------------------------------------------------------- /procursus-deploy-linux-macos.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | if [ "$(uname)" = "Darwin" ]; then 3 | if [ "$(uname -p)" = "arm" ] || [ "$(uname -p)" = "arm64" ]; then 4 | case "$(sw_vers -productName)" in 5 | *[mM]ac*) 6 | ;; 7 | *) 8 | echo "It's recommended that this script be ran on macOS/Linux with a non-bootstrapped iOS device running checkra1n attached." 9 | echo "Press enter to continue" 10 | read -r REPLY 11 | ARM=yes 12 | ;; 13 | esac 14 | fi 15 | fi 16 | 17 | CURRENTDIR=$(pwd) 18 | ODYSSEYDIR=$(mktemp -d) 19 | 20 | cat << "EOF" 21 | Odysseyra1n Installation Script 22 | Copyright (C) 2022, CoolStar. All Rights Reserved 23 | 24 | Before you begin: 25 | If you're currently jailbroken with a different bootstrap 26 | installed, you will need to Reset System via the Loader app 27 | before running this script. 28 | 29 | Press enter to continue. 30 | EOF 31 | read -r REPLY 32 | 33 | if ! which curl > /dev/null; then 34 | echo "Error: cURL not found." 35 | exit 1 36 | fi 37 | if [ "${ARM}" != yes ]; then 38 | if ! which iproxy > /dev/null; then 39 | echo "Error: iproxy not found." 40 | exit 1 41 | fi 42 | fi 43 | 44 | cd "$ODYSSEYDIR" 45 | 46 | echo '#!/bin/bash' > odysseyra1n-install.bash 47 | if [ ! "${ARM}" = yes ]; then 48 | echo 'cd /var/root' >> odysseyra1n-install.bash 49 | fi 50 | cat << "EOF" >> odysseyra1n-install.bash 51 | if [[ -f "/.bootstrapped" ]]; then 52 | echo "Error: Migration from other bootstraps is no longer supported." 53 | rm ./bootstrap* ./*.deb odysseyra1n-install.bash 54 | exit 1 55 | fi 56 | if [[ -f "/.installed_odyssey" ]]; then 57 | echo "Error: Odysseyra1n is already installed." 58 | rm ./bootstrap* ./*.deb odysseyra1n-install.bash 59 | exit 1 60 | fi 61 | VER=$(/binpack/usr/bin/plutil -key ProductVersion /System/Library/CoreServices/SystemVersion.plist) 62 | if [[ "${VER%%.*}" -ge 12 ]] && [[ "${VER%%.*}" -lt 13 ]]; then 63 | CFVER=1500 64 | elif [[ "${VER%%.*}" -ge 13 ]] && [[ "${VER%%.*}" -lt 14 ]]; then 65 | CFVER=1600 66 | elif [[ "${VER%%.*}" -ge 14 ]] && [[ "${VER%%.*}" -lt 15 ]]; then 67 | CFVER=1700 68 | else 69 | echo "${VER} not compatible." 70 | exit 1 71 | fi 72 | mount -o rw,union,update /dev/disk0s1s1 73 | rm -rf /etc/{alternatives,apt,ssl,ssh,dpkg,profile{,.d}} /Library/dpkg /var/{cache,lib} 74 | gzip -d bootstrap_${CFVER}.tar.gz 75 | tar --preserve-permissions -xkf bootstrap_${CFVER}.tar -C / 76 | SNAPSHOT=$(snappy -s | cut -d ' ' -f 3 | tr -d '\n') 77 | 78 | snappy -f / -r "$SNAPSHOT" -t orig-fs > /dev/null 2>&1 79 | /prep_bootstrap.sh 80 | /usr/libexec/firmware 81 | PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games 82 | if [[ $VER = 12.1* ]] || [[ $VER = 12.0* ]]; then 83 | dpkg -i org.swift.libswift_5.0-electra2_iphoneos-arm.deb > /dev/null 84 | fi 85 | echo "(4) Installing Sileo and upgrading Procursus packages..." 86 | dpkg -i org.coolstar.sileo_2.3_iphoneos-arm.deb > /dev/null 87 | uicache -p /Applications/Sileo.app 88 | mkdir -p /etc/apt/sources.list.d /etc/apt/preferences.d 89 | { 90 | echo "Types: deb" 91 | echo "URIs: https://repo.theodyssey.dev/" 92 | echo "Suites: ./" 93 | echo "Components: " 94 | echo "" 95 | } > /etc/apt/sources.list.d/odyssey.sources 96 | touch /var/lib/dpkg/available 97 | touch /.mount_rw 98 | touch /.installed_odyssey 99 | apt-get update -o Acquire::AllowInsecureRepositories=true 100 | apt-get dist-upgrade -y --allow-downgrades --allow-unauthenticated 101 | uicache -p /var/binpack/Applications/loader.app 102 | rm ./bootstrap* ./*.deb odysseyra1n-install.bash 103 | echo "Done!" 104 | EOF 105 | 106 | echo "(1) Downloading resources..." 107 | IPROXY=$(iproxy 28605 44 >/dev/null 2>&1 & echo $!) 108 | curl -sLOOOOO https://github.com/coolstar/Odyssey-bootstrap/raw/master/bootstrap_1500.tar.gz \ 109 | https://github.com/coolstar/Odyssey-bootstrap/raw/master/bootstrap_1600.tar.gz \ 110 | https://github.com/coolstar/Odyssey-bootstrap/raw/master/bootstrap_1700.tar.gz \ 111 | https://github.com/coolstar/Odyssey-bootstrap/raw/master/org.coolstar.sileo_2.3_iphoneos-arm.deb \ 112 | https://github.com/coolstar/Odyssey-bootstrap/raw/master/org.swift.libswift_5.0-electra2_iphoneos-arm.deb 113 | if [ ! "${ARM}" = yes ]; then 114 | echo "(2) Copying resources to your device..." 115 | echo "Default password is: alpine" 116 | 117 | # Older versions of scp do not support the -O option, but newer ones require it 118 | # to fall back to the legacy SCP protocol, so we need to check and use the option 119 | # only if it exists. 120 | scp_opts=-q 121 | if scp -O /dev/null /dev/zero >/dev/null 2>&1; then 122 | scp_opts="${scp_opts}O" 123 | fi 124 | 125 | scp "$scp_opts" -P28605 -o "StrictHostKeyChecking no" -o "UserKnownHostsFile=/dev/null" bootstrap_1500.tar.gz \ 126 | bootstrap_1600.tar.gz bootstrap_1700.tar.gz \ 127 | org.coolstar.sileo_2.3_iphoneos-arm.deb \ 128 | org.swift.libswift_5.0-electra2_iphoneos-arm.deb \ 129 | odysseyra1n-install.bash \ 130 | root@127.0.0.1:/var/root/ 131 | fi 132 | echo "(3) Bootstrapping your device..." 133 | if [ "${ARM}" = yes ]; then 134 | bash odysseyra1n-install.bash 135 | else 136 | echo "Default password is: alpine" 137 | ssh -qp28605 -o "StrictHostKeyChecking no" -o "UserKnownHostsFile=/dev/null" root@127.0.0.1 "bash /var/root/odysseyra1n-install.bash" 138 | kill "$IPROXY" 139 | cd "$CURRENTDIR" 140 | rm -rf "$ODYSSEYDIR" 141 | fi 142 | --------------------------------------------------------------------------------