mirror of
https://github.com/luchina-gabriel/OSX-PROXMOX.git
synced 2026-09-25 20:47:01 +00:00
Update OSX-PROXMOX to support macOS Tahoe/v26 and PVE 9.XX.XX
This commit is contained in:
Binary file not shown.
@@ -16,8 +16,7 @@ Easily install macOS on Proxmox VE with just a few steps! This guide provides th
|
|||||||
|
|
||||||
## 🛠 Installation Guide
|
## 🛠 Installation Guide
|
||||||
|
|
||||||
1. Install a **FRESH/CLEAN** version of Proxmox VE (v7.0.XX ~ 8.4.XX) - just follow the Next, Next & Finish (NNF) approach.
|
1. Install a **FRESH/CLEAN** version of Proxmox VE (v7.X.XX ~ 9.X.XX) - just follow the Next, Next & Finish (NNF) approach.
|
||||||
* Preliminary support for Proxmox VE V9.0.0 BETA.
|
|
||||||
2. Open the **Proxmox Web Console** → Navigate to `Datacenter > YOUR_HOST_NAME > Shell`.
|
2. Open the **Proxmox Web Console** → Navigate to `Datacenter > YOUR_HOST_NAME > Shell`.
|
||||||
3. Copy, paste, and execute the command below:
|
3. Copy, paste, and execute the command below:
|
||||||
|
|
||||||
@@ -48,14 +47,15 @@ sudo spctl --master-disable
|
|||||||
✅ macOS Ventura - 13
|
✅ macOS Ventura - 13
|
||||||
✅ macOS Sonoma - 14
|
✅ macOS Sonoma - 14
|
||||||
✅ macOS Sequoia - 15
|
✅ macOS Sequoia - 15
|
||||||
|
✅ macOS Tahoe - 26
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🖥 Proxmox VE Versions Supported
|
## 🖥 Proxmox VE Versions Supported
|
||||||
✅ v7.0.XX ~ 8.4.XX
|
✅ v7.XX.XX ~ 9.XX.XX
|
||||||
|
|
||||||
### 🔄 OpenCore Version
|
### 🔄 OpenCore Version
|
||||||
- **April/2025 - 1.0.4** → with SIP Enabled, DMG only signed by Apple and all features of securities
|
- **March/2026 - 1.0.7** → with SIP Enabled, DMG only signed by Apple and all features of securities
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
# Author: Gabriel Luchina
|
# Author: Gabriel Luchina
|
||||||
# https://luchina.com.br
|
# https://luchina.com.br
|
||||||
#
|
#
|
||||||
# COPYRIGHT - 2021, 2022
|
# COPYRIGHT - 2021 -> 2026
|
||||||
#
|
#
|
||||||
# All rights reserved - You may not copy, reproduce, distribute, publish, display, perform, modify,
|
# All rights reserved - You may not copy, reproduce, distribute, publish, display, perform, modify,
|
||||||
# create derivative works, transmit, or in any way exploit any such content, nor may you distribute
|
# create derivative works, transmit, or in any way exploit any such content, nor may you distribute
|
||||||
@@ -37,8 +37,8 @@ SCRIPT_DIR="/root/OSX-PROXMOX"
|
|||||||
LOGDIR="${SCRIPT_DIR}/logs"
|
LOGDIR="${SCRIPT_DIR}/logs"
|
||||||
MAIN_LOG="${LOGDIR}/main.log"
|
MAIN_LOG="${LOGDIR}/main.log"
|
||||||
TMPDIR="${SCRIPT_DIR}/tmp"
|
TMPDIR="${SCRIPT_DIR}/tmp"
|
||||||
HACKPXVERSION="2025.07.23"
|
HACKPXVERSION="2026.08.27"
|
||||||
OCVERSION="1.0.4"
|
OCVERSION="1.0.7"
|
||||||
DEFAULT_VM_PREFIX="HACK-"
|
DEFAULT_VM_PREFIX="HACK-"
|
||||||
BASE_RAM_SIZE=4096
|
BASE_RAM_SIZE=4096
|
||||||
RAM_PER_CORE=512
|
RAM_PER_CORE=512
|
||||||
@@ -60,6 +60,7 @@ declare -A MACOS_CONFIG=(
|
|||||||
["6"]="Ventura|13|Mac-B4831CEBD52A0C4C|00000000000000000|1024M|virtio0"
|
["6"]="Ventura|13|Mac-B4831CEBD52A0C4C|00000000000000000|1024M|virtio0"
|
||||||
["7"]="Sonoma|14|Mac-827FAC58A8FDFA22|00000000000000000|1450M|virtio0"
|
["7"]="Sonoma|14|Mac-827FAC58A8FDFA22|00000000000000000|1450M|virtio0"
|
||||||
["8"]="Sequoia|15|Mac-7BA5B2D9E42DDD94|00000000000000000|1450M|virtio0"
|
["8"]="Sequoia|15|Mac-7BA5B2D9E42DDD94|00000000000000000|1450M|virtio0"
|
||||||
|
["9"]="Tahoe|26|Mac-27AD2F918AE68F61|00000000000000000|1450M|virtio0"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Display and log function
|
# Display and log function
|
||||||
@@ -314,10 +315,10 @@ check_proxmox_version() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Warn about preliminary Proxmox 9 support
|
# Warn about preliminary Proxmox 9 support
|
||||||
if [[ "$version" == pve-manager/9.* ]]; then
|
# if [[ "$version" == pve-manager/9.* ]]; then
|
||||||
display_and_log "Proxmox 9 is in preliminary testing. Use at your own risk." "$log_file"
|
# display_and_log "Proxmox 9 is in preliminary testing. Use at your own risk." "$log_file"
|
||||||
sleep 5
|
# sleep 5
|
||||||
fi
|
# fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to detect CPU platform
|
# Function to detect CPU platform
|
||||||
@@ -378,7 +379,7 @@ download_recovery_image() {
|
|||||||
mount "$loopdev" /mnt/APPLE >>"$logfile" 2>&1 || log_and_exit "Failed to mount image" "$logfile"
|
mount "$loopdev" /mnt/APPLE >>"$logfile" 2>&1 || log_and_exit "Failed to mount image" "$logfile"
|
||||||
cd /mnt/APPLE
|
cd /mnt/APPLE
|
||||||
local recovery_args="-b $board_id -m $model_id download"
|
local recovery_args="-b $board_id -m $model_id download"
|
||||||
[[ "$version_name" == "Sequoia" ]] && recovery_args="$recovery_args -os latest"
|
[[ "$version_name" == "Tahoe" ]] && recovery_args="$recovery_args -os latest"
|
||||||
python3 "${SCRIPT_DIR}/tools/macrecovery/macrecovery.py" $recovery_args >>"$logfile" 2>&1 || log_and_exit "Failed to download recovery" "$logfile"
|
python3 "${SCRIPT_DIR}/tools/macrecovery/macrecovery.py" $recovery_args >>"$logfile" 2>&1 || log_and_exit "Failed to download recovery" "$logfile"
|
||||||
cd "$SCRIPT_DIR"
|
cd "$SCRIPT_DIR"
|
||||||
umount /mnt/APPLE >>"$logfile" 2>&1 || log_and_exit "Failed to unmount image" "$logfile"
|
umount /mnt/APPLE >>"$logfile" 2>&1 || log_and_exit "Failed to unmount image" "$logfile"
|
||||||
@@ -398,13 +399,13 @@ create_vm() {
|
|||||||
[[ ! -d "/sys/class/net/$bridge" ]] && log_and_exit "Bridge $bridge does not exist" "$logfile"
|
[[ ! -d "/sys/class/net/$bridge" ]] && log_and_exit "Bridge $bridge does not exist" "$logfile"
|
||||||
|
|
||||||
local cpu_args device_args='-device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2'
|
local cpu_args device_args='-device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2'
|
||||||
if [[ "$version_name" =~ ^(Sonoma|Sequoia)$ ]]; then
|
if [[ "$version_name" =~ ^(Sonoma|Sequoia|Tahoe)$ ]]; then
|
||||||
device_args="$device_args -device qemu-xhci -device usb-kbd -device usb-tablet -global nec-usb-xhci.msi=off"
|
device_args="$device_args -device qemu-xhci -device usb-kbd -device usb-tablet -global nec-usb-xhci.msi=off"
|
||||||
else
|
else
|
||||||
device_args="$device_args -device usb-kbd,bus=ehci.0,port=2 -device usb-mouse,bus=ehci.0,port=3"
|
device_args="$device_args -device usb-kbd,bus=ehci.0,port=2 -device usb-mouse,bus=ehci.0,port=3"
|
||||||
fi
|
fi
|
||||||
if [[ "$OSX_PLATFORM" == "AMD" ]]; then
|
if [[ "$OSX_PLATFORM" == "AMD" ]]; then
|
||||||
if [[ "$version_name" =~ ^(Ventura|Sonoma|Sequoia)$ ]]; then
|
if [[ "$version_name" =~ ^(Ventura|Sonoma|Sequoia|Tahoe)$ ]]; then
|
||||||
cpu_args="-cpu Cascadelake-Server,vendor=GenuineIntel,+invtsc,-pcid,-hle,-rtm,-avx512f,-avx512dq,-avx512cd,-avx512bw,-avx512vl,-avx512vnni,kvm=on,vmware-cpuid-freq=on"
|
cpu_args="-cpu Cascadelake-Server,vendor=GenuineIntel,+invtsc,-pcid,-hle,-rtm,-avx512f,-avx512dq,-avx512cd,-avx512bw,-avx512vl,-avx512vnni,kvm=on,vmware-cpuid-freq=on"
|
||||||
else
|
else
|
||||||
cpu_args="-cpu Penryn,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc,+ssse3,+sse4.2,+popcnt,+avx,+avx2,+aes,+fma,+bmi1,+bmi2,+xsave,+xsaveopt,check"
|
cpu_args="-cpu Penryn,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc,+ssse3,+sse4.2,+popcnt,+avx,+avx2,+aes,+fma,+bmi1,+bmi2,+xsave,+xsaveopt,check"
|
||||||
@@ -1415,7 +1416,7 @@ main_menu() {
|
|||||||
echo "$version|$key"
|
echo "$version|$key"
|
||||||
done | sort -t'|' -k1,1V | cut -d'|' -f2); do
|
done | sort -t'|' -k1,1V | cut -d'|' -f2); do
|
||||||
IFS='|' read -r name version _ _ _ _ <<< "${MACOS_CONFIG[$i]}"
|
IFS='|' read -r name version _ _ _ _ <<< "${MACOS_CONFIG[$i]}"
|
||||||
[[ "$name" == "Sequoia" ]] && display_name="macOS Sequoia" || display_name="$name"
|
[[ "$name" == "Tahoe" ]] && display_name="Tahoe" || display_name="$name"
|
||||||
echo " $i - $display_name - $version"
|
echo " $i - $display_name - $version"
|
||||||
done
|
done
|
||||||
echo
|
echo
|
||||||
@@ -1457,7 +1458,7 @@ set_isodir
|
|||||||
if [ ! -f "${ISODIR}/${OPENCORE_ISO}" ]; then
|
if [ ! -f "${ISODIR}/${OPENCORE_ISO}" ]; then
|
||||||
update_opencore_iso "0"
|
update_opencore_iso "0"
|
||||||
fi
|
fi
|
||||||
sleep 4
|
sleep 2
|
||||||
OSX_PLATFORM=$(detect_cpu_platform)
|
OSX_PLATFORM=$(detect_cpu_platform)
|
||||||
[[ ! -e /etc/pve/qemu-server/.osx-proxmox ]] && setup_prerequisites
|
[[ ! -e /etc/pve/qemu-server/.osx-proxmox ]] && setup_prerequisites
|
||||||
main_menu
|
main_menu
|
||||||
|
|||||||
@@ -1,79 +1,79 @@
|
|||||||
{
|
{
|
||||||
"Mac-EE2EBD4B90B839A8": "13.7",
|
"Mac-EE2EBD4B90B839A8": "13.7.8",
|
||||||
"Mac-BE0E8AC46FE800CC": "11.7.10",
|
"Mac-BE0E8AC46FE800CC": "11.7.11",
|
||||||
"Mac-9AE82516C7C6B903": "12.7.6",
|
"Mac-9AE82516C7C6B903": "12.7.6",
|
||||||
"Mac-942452F5819B1C1B": "10.13.6",
|
"Mac-942452F5819B1C1B": "10.13.6",
|
||||||
"Mac-942C5DF58193131B": "10.13.6",
|
"Mac-942C5DF58193131B": "10.13.6",
|
||||||
"Mac-C08A6BB70A942AC2": "10.13.6",
|
"Mac-C08A6BB70A942AC2": "10.13.6",
|
||||||
"Mac-742912EFDBEE19B3": "10.13.6",
|
"Mac-742912EFDBEE19B3": "10.13.6",
|
||||||
"Mac-66F35F19FE2A0D05": "10.15.7",
|
"Mac-66F35F19FE2A0D05": "10.15.8",
|
||||||
"Mac-2E6FAB96566FE58C": "10.15.7",
|
"Mac-2E6FAB96566FE58C": "10.15.8",
|
||||||
"Mac-35C1E88140C3E6CF": "11.7.10",
|
"Mac-35C1E88140C3E6CF": "11.7.11",
|
||||||
"Mac-7DF21CB3ED6977E5": "11.7.10",
|
"Mac-7DF21CB3ED6977E5": "11.7.11",
|
||||||
"Mac-9F18E312C5C2BF0B": "12.7.6",
|
"Mac-9F18E312C5C2BF0B": "12.7.6",
|
||||||
"Mac-937CB26E2E02BB01": "12.7.6",
|
"Mac-937CB26E2E02BB01": "12.7.6",
|
||||||
"Mac-827FAC58A8FDFA22": "14.7",
|
"Mac-827FAC58A8FDFA22": "14.8.4",
|
||||||
"Mac-226CB3C6A851A671": "14.7",
|
"Mac-226CB3C6A851A671": "14.8.4",
|
||||||
"Mac-0CFF9C7C2B63DF8D": "latest",
|
"Mac-0CFF9C7C2B63DF8D": "15.7.4",
|
||||||
"Mac-C3EC7CD22292981F": "10.15.7",
|
"Mac-C3EC7CD22292981F": "10.15.8",
|
||||||
"Mac-AFD8A9D944EA4843": "10.15.7",
|
"Mac-AFD8A9D944EA4843": "10.15.8",
|
||||||
"Mac-189A3D4F975D5FFC": "11.7.10",
|
"Mac-189A3D4F975D5FFC": "11.7.11",
|
||||||
"Mac-3CBD00234E554E41": "11.7.10",
|
"Mac-3CBD00234E554E41": "11.7.11",
|
||||||
"Mac-2BD1B31983FE1663": "11.7.10",
|
"Mac-2BD1B31983FE1663": "11.7.11",
|
||||||
"Mac-06F11FD93F0323C5": "12.7.6",
|
"Mac-06F11FD93F0323C5": "12.7.6",
|
||||||
"Mac-06F11F11946D27C5": "12.7.6",
|
"Mac-06F11F11946D27C5": "12.7.6",
|
||||||
"Mac-E43C1C25D4880AD6": "12.7.6",
|
"Mac-E43C1C25D4880AD6": "12.7.6",
|
||||||
"Mac-473D31EABEB93F9B": "12.7.6",
|
"Mac-473D31EABEB93F9B": "12.7.6",
|
||||||
"Mac-66E35819EE2D0D05": "12.7.6",
|
"Mac-66E35819EE2D0D05": "12.7.6",
|
||||||
"Mac-A5C67F76ED83108C": "12.7.6",
|
"Mac-A5C67F76ED83108C": "12.7.6",
|
||||||
"Mac-B4831CEBD52A0C4C": "13.7",
|
"Mac-B4831CEBD52A0C4C": "13.7.8",
|
||||||
"Mac-CAD6701F7CEA0921": "13.7",
|
"Mac-CAD6701F7CEA0921": "13.7.8",
|
||||||
"Mac-551B86E5744E2388": "13.7",
|
"Mac-551B86E5744E2388": "13.7.8",
|
||||||
"Mac-937A206F2EE63C01": "latest",
|
"Mac-937A206F2EE63C01": "15.7.4",
|
||||||
"Mac-827FB448E656EC26": "latest",
|
"Mac-827FB448E656EC26": "15.7.4",
|
||||||
"Mac-1E7E29AD0135F9BC": "latest",
|
"Mac-1E7E29AD0135F9BC": "15.7.4",
|
||||||
"Mac-53FDB3D8DB8CA971": "latest",
|
"Mac-53FDB3D8DB8CA971": "15.7.4",
|
||||||
"Mac-E1008331FDC96864": "latest",
|
"Mac-E1008331FDC96864": "latest",
|
||||||
"Mac-5F9802EFE386AA28": "latest",
|
"Mac-5F9802EFE386AA28": "latest",
|
||||||
"Mac-E7203C0F68AA0004": "latest",
|
"Mac-E7203C0F68AA0004": "15.7.4",
|
||||||
"Mac-A61BADE1FDAD7B05": "latest",
|
"Mac-A61BADE1FDAD7B05": "latest",
|
||||||
"Mac-F22589C8": "10.13.6",
|
"Mac-F22589C8": "10.13.6",
|
||||||
"Mac-94245B3640C91C81": "10.13.6",
|
"Mac-94245B3640C91C81": "10.13.6",
|
||||||
"Mac-94245A3940C91C80": "10.13.6",
|
"Mac-94245A3940C91C80": "10.13.6",
|
||||||
"Mac-942459F5819B171B": "10.13.6",
|
"Mac-942459F5819B171B": "10.13.6",
|
||||||
"Mac-4B7AC7E43945597E": "10.15.7",
|
"Mac-4B7AC7E43945597E": "10.15.8",
|
||||||
"Mac-6F01561E16C75D06": "10.15.7",
|
"Mac-6F01561E16C75D06": "10.15.8",
|
||||||
"Mac-F60DEB81FF30ACF6": "12.7.6",
|
"Mac-F60DEB81FF30ACF6": "12.7.6",
|
||||||
"Mac-27AD2F918AE68F61": "latest",
|
"Mac-27AD2F918AE68F61": "latest",
|
||||||
"Mac-F2208EC8": "10.13.6",
|
"Mac-F2208EC8": "10.13.6",
|
||||||
"Mac-8ED6AF5B48C039E1": "10.13.6",
|
"Mac-8ED6AF5B48C039E1": "10.13.6",
|
||||||
"Mac-4BC72D62AD45599E": "10.13.6",
|
"Mac-4BC72D62AD45599E": "10.13.6",
|
||||||
"Mac-7BA5B2794B2CDB12": "10.13.6",
|
"Mac-7BA5B2794B2CDB12": "10.13.6",
|
||||||
"Mac-031AEE4D24BFF0B1": "10.15.7",
|
"Mac-031AEE4D24BFF0B1": "10.15.8",
|
||||||
"Mac-F65AE981FFA204ED": "10.15.7",
|
"Mac-F65AE981FFA204ED": "10.15.8",
|
||||||
"Mac-35C5E08120C7EEAF": "12.7.6",
|
"Mac-35C5E08120C7EEAF": "12.7.6",
|
||||||
"Mac-7BA5B2DFE22DDD8C": "latest",
|
"Mac-7BA5B2DFE22DDD8C": "15.7.4",
|
||||||
"Mac-942B5BF58194151B": "10.13.6",
|
"Mac-942B5BF58194151B": "10.13.6",
|
||||||
"Mac-942B59F58194171B": "10.13.6",
|
"Mac-942B59F58194171B": "10.13.6",
|
||||||
"Mac-00BE6ED71E35EB86": "10.15.7",
|
"Mac-00BE6ED71E35EB86": "10.15.8",
|
||||||
"Mac-FC02E91DDD3FA6A4": "10.15.7",
|
"Mac-FC02E91DDD3FA6A4": "10.15.8",
|
||||||
"Mac-7DF2A3B5E5D671ED": "10.15.7",
|
"Mac-7DF2A3B5E5D671ED": "10.15.8",
|
||||||
"Mac-031B6874CF7F642A": "10.15.7",
|
"Mac-031B6874CF7F642A": "10.15.8",
|
||||||
"Mac-27ADBB7B4CEE8E61": "10.15.7",
|
"Mac-27ADBB7B4CEE8E61": "10.15.8",
|
||||||
"Mac-77EB7D7DAF985301": "10.15.7",
|
"Mac-77EB7D7DAF985301": "10.15.8",
|
||||||
"Mac-81E3E92DD6088272": "11.7.10",
|
"Mac-81E3E92DD6088272": "11.7.11",
|
||||||
"Mac-42FD25EABCABB274": "11.7.10",
|
"Mac-42FD25EABCABB274": "11.7.11",
|
||||||
"Mac-A369DDC4E67F1C45": "12.7.6",
|
"Mac-A369DDC4E67F1C45": "12.7.6",
|
||||||
"Mac-FFE5EF870D7BA81A": "12.7.6",
|
"Mac-FFE5EF870D7BA81A": "12.7.6",
|
||||||
"Mac-DB15BD556843C820": "12.7.6",
|
"Mac-DB15BD556843C820": "12.7.6",
|
||||||
"Mac-65CE76090165799A": "12.7.6",
|
"Mac-65CE76090165799A": "12.7.6",
|
||||||
"Mac-B809C3757DA9BB8D": "12.7.6",
|
"Mac-B809C3757DA9BB8D": "12.7.6",
|
||||||
"Mac-4B682C642B45593E": "13.7",
|
"Mac-4B682C642B45593E": "13.7.8",
|
||||||
"Mac-77F17D7DA9285301": "13.7",
|
"Mac-77F17D7DA9285301": "13.7.8",
|
||||||
"Mac-BE088AF8C5EB4FA2": "13.7",
|
"Mac-BE088AF8C5EB4FA2": "13.7.8",
|
||||||
"Mac-AA95B1DDAB278B95": "latest",
|
"Mac-AA95B1DDAB278B95": "15.7.4",
|
||||||
"Mac-63001698E7A34814": "latest",
|
"Mac-63001698E7A34814": "15.7.4",
|
||||||
"Mac-CFF7D910A743CAAF": "latest",
|
"Mac-CFF7D910A743CAAF": "latest",
|
||||||
"Mac-AF89B6D9451A490B": "latest",
|
"Mac-AF89B6D9451A490B": "latest",
|
||||||
"Mac-7BA5B2D9E42DDD94": "latest"
|
"Mac-7BA5B2D9E42DDD94": "15.7.4"
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,13 @@
|
|||||||
#!/bin/bash -e
|
#!/bin/bash -e
|
||||||
|
|
||||||
rm -rf Recovery.RO.dmg Recovery.RO.raw Recovery.dmg.sparseimage
|
if [ -z "$1" ]; then
|
||||||
hdiutil create -size 800m -layout "UNIVERSAL HD" -type SPARSE -o Recovery.dmg
|
FORMAT="raw"
|
||||||
|
else
|
||||||
|
FORMAT="${1}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf Recovery.RO.dmg Recovery.raw "Recovery.${FORMAT}" Recovery.dmg.sparseimage
|
||||||
|
hdiutil create -size 900m -layout "UNIVERSAL HD" -type SPARSE -o Recovery.dmg
|
||||||
newDevice=$(hdiutil attach -nomount Recovery.dmg.sparseimage | head -n 1 | awk '{print $1}')
|
newDevice=$(hdiutil attach -nomount Recovery.dmg.sparseimage | head -n 1 | awk '{print $1}')
|
||||||
echo newdevice "$newDevice"
|
echo newdevice "$newDevice"
|
||||||
diskutil partitionDisk "${newDevice}" 1 MBR fat32 RECOVERY R
|
diskutil partitionDisk "${newDevice}" 1 MBR fat32 RECOVERY R
|
||||||
@@ -14,5 +20,5 @@ diskutil umount disk"${N}"s1
|
|||||||
hdiutil detach "$newDevice"
|
hdiutil detach "$newDevice"
|
||||||
hdiutil convert -format UDZO Recovery.dmg.sparseimage -o Recovery.RO.dmg
|
hdiutil convert -format UDZO Recovery.dmg.sparseimage -o Recovery.RO.dmg
|
||||||
rm Recovery.dmg.sparseimage
|
rm Recovery.dmg.sparseimage
|
||||||
qemu-img convert -f dmg -O raw Recovery.RO.dmg Recovery.raw
|
qemu-img convert -f dmg -O "${FORMAT}" Recovery.RO.dmg "Recovery.${FORMAT}"
|
||||||
rm Recovery.RO.dmg
|
rm Recovery.RO.dmg
|
||||||
|
|||||||
@@ -225,7 +225,7 @@ def save_image(url, sess, filename='', directory=''):
|
|||||||
break
|
break
|
||||||
fh.write(chunk)
|
fh.write(chunk)
|
||||||
size += len(chunk)
|
size += len(chunk)
|
||||||
terminalsize = 80
|
terminalsize = max(os.get_terminal_size().columns - TERMINAL_MARGIN, 0)
|
||||||
if oldterminalsize != terminalsize:
|
if oldterminalsize != terminalsize:
|
||||||
print(f'\r{"":<{terminalsize}}', end='')
|
print(f'\r{"":<{terminalsize}}', end='')
|
||||||
oldterminalsize = terminalsize
|
oldterminalsize = terminalsize
|
||||||
@@ -250,7 +250,7 @@ def verify_image(dmgpath, cnkpath):
|
|||||||
|
|
||||||
with open(dmgpath, 'rb') as dmgf:
|
with open(dmgpath, 'rb') as dmgf:
|
||||||
for cnkcount, (cnksize, cnkhash) in enumerate(verify_chunklist(cnkpath), 1):
|
for cnkcount, (cnksize, cnkhash) in enumerate(verify_chunklist(cnkpath), 1):
|
||||||
terminalsize = 80
|
terminalsize = max(os.get_terminal_size().columns - TERMINAL_MARGIN, 0)
|
||||||
print(f'\r{f"Chunk {cnkcount} ({cnksize} bytes)":<{terminalsize}}', end='')
|
print(f'\r{f"Chunk {cnkcount} ({cnksize} bytes)":<{terminalsize}}', end='')
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
cnk = dmgf.read(cnksize)
|
cnk = dmgf.read(cnksize)
|
||||||
|
|||||||
@@ -1,54 +1,47 @@
|
|||||||
Lion
|
# Lion (10.7):
|
||||||
./macrecovery.py -b Mac-2E6FAB96566FE58C -m 00000000000F25Y00
|
python macrecovery.py -b Mac-2E6FAB96566FE58C -m 00000000000F25Y00 download
|
||||||
./macrecovery.py -b Mac-C3EC7CD22292981F -m 00000000000F0HM00
|
python macrecovery.py -b Mac-C3EC7CD22292981F -m 00000000000F0HM00 download
|
||||||
|
|
||||||
Mountain Lion:
|
# Mountain Lion (10.8):
|
||||||
./macrecovery.py -b Mac-7DF2A3B5E5D671ED -m 00000000000F65100
|
python macrecovery.py -b Mac-7DF2A3B5E5D671ED -m 00000000000F65100 download
|
||||||
|
|
||||||
Mavericks
|
# Mavericks (10.9):
|
||||||
./macrecovery.py -b Mac-F60DEB81FF30ACF6 -m 00000000000FNN100
|
python macrecovery.py -b Mac-F60DEB81FF30ACF6 -m 00000000000FNN100 download
|
||||||
|
|
||||||
Yosemite:
|
# Yosemite (10.10):
|
||||||
./macrecovery.py -b Mac-E43C1C25D4880AD6 -m 00000000000GDVW00
|
python macrecovery.py -b Mac-E43C1C25D4880AD6 -m 00000000000GDVW00 download
|
||||||
|
|
||||||
El Capitan
|
# El Capitan (10.11):
|
||||||
./macrecovery.py -b Mac-FFE5EF870D7BA81A -m 00000000000GQRX00
|
python macrecovery.py -b Mac-FFE5EF870D7BA81A -m 00000000000GQRX00 download
|
||||||
|
|
||||||
Sierra
|
# Sierra (10.12):
|
||||||
./macrecovery.py -b Mac-77F17D7DA9285301 -m 00000000000J0DX00
|
python macrecovery.py -b Mac-77F17D7DA9285301 -m 00000000000J0DX00 download
|
||||||
|
|
||||||
High Sierra
|
# High Sierra (10.13)
|
||||||
./macrecovery.py -b Mac-7BA5B2D9E42DDD94 -m 00000000000J80300
|
python macrecovery.py -b Mac-7BA5B2D9E42DDD94 -m 00000000000J80300 download
|
||||||
./macrecovery.py -b Mac-BE088AF8C5EB4FA2 -m 00000000000J80300
|
python macrecovery.py -b Mac-BE088AF8C5EB4FA2 -m 00000000000J80300 download
|
||||||
|
|
||||||
Mojave
|
# Mojave (10.14)
|
||||||
./macrecovery.py -b Mac-7BA5B2DFE22DDD8C -m 00000000000KXPG00
|
python macrecovery.py -b Mac-7BA5B2DFE22DDD8C -m 00000000000KXPG00 download
|
||||||
|
|
||||||
Catalina
|
# Catalina (10.15)
|
||||||
./macrecovery.py -b Mac-CFF7D910A743CAAF -m 00000000000PHCD00
|
python macrecovery.py -b Mac-00BE6ED71E35EB86 -m 00000000000000000 download
|
||||||
./macrecovery.py -b Mac-00BE6ED71E35EB86 -m 00000000000000000
|
|
||||||
|
|
||||||
Big Sur
|
# Big Sur (11)
|
||||||
./macrecovery.py -b Mac-2BD1B31983FE1663 -m 00000000000000000
|
python macrecovery.py -b Mac-42FD25EABCABB274 -m 00000000000000000 download
|
||||||
|
|
||||||
Monterey
|
# Monterey (12)
|
||||||
./macrecovery.py -b Mac-E43C1C25D4880AD6 -m 00000000000000000
|
python macrecovery.py -b Mac-E43C1C25D4880AD6 -m 00000000000000000 download
|
||||||
|
|
||||||
Ventura
|
# Ventura (13)
|
||||||
./macrecovery.py -b Mac-B4831CEBD52A0C4C -m 00000000000000000
|
python macrecovery.py -b Mac-EE2EBD4B90B839A8 -m 00000000000000000 download
|
||||||
|
|
||||||
Sonoma
|
# Sonoma (14)
|
||||||
./macrecovery.py -b Mac-827FAC58A8FDFA22 -m 00000000000000000
|
python macrecovery.py -b Mac-827FAC58A8FDFA22 -m 00000000000000000 download
|
||||||
|
|
||||||
Diagnostics
|
# Sequoia (15)
|
||||||
./macrecovery.py -b Mac-7BA5B2D9E42DDD94 -m 00000000000000000 -diag
|
python macrecovery.py -b Mac-7BA5B2D9E42DDD94 -m 00000000000000000 download
|
||||||
./macrecovery.py -b Mac-7BA5B2D9E42DDD94 -m 00000000000JG3600 -diag
|
|
||||||
./macrecovery.py -b Mac-7BA5B2D9E42DDD94 <real MLB> -diag
|
|
||||||
|
|
||||||
Default version
|
# Latest version
|
||||||
./macrecovery.py -b Mac-7BA5B2D9E42DDD94 -m 00000000000JG3600 (oldest)
|
# ie. Tahoe (26)
|
||||||
./macrecovery.py -b Mac-7BA5B2D9E42DDD94 -m <real MLB> -os default (newer)
|
python macrecovery.py -b Mac-27AD2F918AE68F61 -m 00000000000000000 -os latest download
|
||||||
|
|
||||||
Latest version
|
|
||||||
./macrecovery.py -b Mac-7BA5B2D9E42DDD94 -m 00000000000000000 -os latest
|
|
||||||
./macrecovery.py -b Mac-7BA5B2D9E42DDD94 -m <real MLB> -os latest
|
|
||||||
|
|||||||
Reference in New Issue
Block a user