Skip to content

Commit

Permalink
4.2.6: Added code to build a macOS recovery VMDK from Apple download
Browse files Browse the repository at this point in the history
  • Loading branch information
DrDonk committed Mar 2, 2023
1 parent f4582f9 commit 3e535b2
Show file tree
Hide file tree
Showing 5 changed files with 773 additions and 0 deletions.
75 changes: 75 additions & 0 deletions recovery-maker/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# OC4VM - macOS Recovery VMDK Maker

## Introduction
This is a utility to download the recovery image for macOS from Apple's servers and create a bootable
VMDK file that can be used to start an Internet installtion of macOS.

It also allows SIP and other recovery only mode commands to be used on an existing macOS guest.
This is needed due to a bug in VMware EFI implementation which stops the Recovery environment being
booted directly by using the CMD-R combination.

## Pre-requisites

### Python 3
The tool is written in Python 3 and so Python must be installed on the host computer. Python 3.10 was used for
the development of the tool.

* Linux - Use your distro package manager
* macOS - `brew install python3`
* Windows - Recommended way is to install Python 3.10 from the Microsoft App Store, or use Chocolatey or Scoop.

### qemu-img

You will need to have qemu-img utility, from QEMU, on the path.

* Linux - These can be installed from Linux repos, for example Debian based distros:

`sudo apt install -y qemu-utils`


* macOS - The [brew](https://brew.sh) package manager is the best way to install on macOS,
but the full Qemu package must be installed:

`brew install qemu`


* Windows - use [Chocolatey](https://chocolatey.org) or [Scoop](https://scoop.sh) to install the programs:

`choco/scoop install qemu`


## Instructions
1. Unzip the archive maintaining the folder structure
2. Open a console/shell in the folder with the tool
3. Run the tool: `python3 recovery_vmdk.py`
4. The menu will be displayed and just select the macOS version you want using the number on the menu.
```
OC4VM macOS Recovery VMDK Maker
===============================
(c) David Parsons 2022-23
Create a VMware VMDK Recovery Image
1. Catalina
2. Big Sur
3. Monterey
4. Ventura
Input menu number:
```
The tool will download the BaseSystem.dmg for the macOS version you selected and convert it to a VMDK.

Aftr the tool has finished there will be 3 files present in the folder. For example if downloading Ventura
there will be:

1. ventura.dmg
2. ventura.chunklist
3. ventura.vmdk

The .vmdk file is the only one needed for VMware. The .dmg and .chunklist files are the orginal files downloaded
from Apple and can be removed if not needed.

## Acknowledgements
This tool wraps several other great open source commands. Thanks to the authors of those tools.

* macrecovery.py - https://github.com/acidanthera/OpenCorePkg
* qemu - https://www.qemu.org
* qemu-img for Windows - https://cloudbase.it/qemu-img-windows
79 changes: 79 additions & 0 deletions recovery-maker/boards.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
{
"Mac-EE2EBD4B90B839A8": "latest",
"Mac-BE0E8AC46FE800CC": "11.7.1",
"Mac-9AE82516C7C6B903": "12.6.1",
"Mac-942452F5819B1C1B": "10.13.6",
"Mac-942C5DF58193131B": "10.13.6",
"Mac-C08A6BB70A942AC2": "10.13.6",
"Mac-742912EFDBEE19B3": "10.13.6",
"Mac-66F35F19FE2A0D05": "10.15.7",
"Mac-2E6FAB96566FE58C": "10.15.7",
"Mac-35C1E88140C3E6CF": "11.7.1",
"Mac-7DF21CB3ED6977E5": "11.7.1",
"Mac-9F18E312C5C2BF0B": "12.6.1",
"Mac-937CB26E2E02BB01": "12.6.1",
"Mac-827FAC58A8FDFA22": "latest",
"Mac-226CB3C6A851A671": "latest",
"Mac-0CFF9C7C2B63DF8D": "latest",
"Mac-C3EC7CD22292981F": "10.15.7",
"Mac-AFD8A9D944EA4843": "10.15.7",
"Mac-189A3D4F975D5FFC": "11.7.1",
"Mac-3CBD00234E554E41": "11.7.1",
"Mac-2BD1B31983FE1663": "11.7.1",
"Mac-06F11FD93F0323C5": "12.6.1",
"Mac-06F11F11946D27C5": "12.6.1",
"Mac-E43C1C25D4880AD6": "12.6.1",
"Mac-473D31EABEB93F9B": "12.6.1",
"Mac-66E35819EE2D0D05": "12.6.1",
"Mac-A5C67F76ED83108C": "12.6.1",
"Mac-B4831CEBD52A0C4C": "latest",
"Mac-CAD6701F7CEA0921": "latest",
"Mac-551B86E5744E2388": "latest",
"Mac-937A206F2EE63C01": "latest",
"Mac-827FB448E656EC26": "latest",
"Mac-1E7E29AD0135F9BC": "latest",
"Mac-53FDB3D8DB8CA971": "latest",
"Mac-E1008331FDC96864": "latest",
"Mac-5F9802EFE386AA28": "latest",
"Mac-E7203C0F68AA0004": "latest",
"Mac-A61BADE1FDAD7B05": "latest",
"Mac-F22589C8": "10.13.6",
"Mac-94245B3640C91C81": "10.13.6",
"Mac-94245A3940C91C80": "10.13.6",
"Mac-942459F5819B171B": "10.13.6",
"Mac-4B7AC7E43945597E": "10.15.7",
"Mac-6F01561E16C75D06": "10.15.7",
"Mac-F60DEB81FF30ACF6": "12.6.1",
"Mac-27AD2F918AE68F61": "latest",
"Mac-F2208EC8": "10.13.6",
"Mac-8ED6AF5B48C039E1": "10.13.6",
"Mac-4BC72D62AD45599E": "10.13.6",
"Mac-7BA5B2794B2CDB12": "10.13.6",
"Mac-031AEE4D24BFF0B1": "10.15.7",
"Mac-F65AE981FFA204ED": "10.15.7",
"Mac-35C5E08120C7EEAF": "12.6.1",
"Mac-7BA5B2DFE22DDD8C": "latest",
"Mac-942B5BF58194151B": "10.13.6",
"Mac-942B59F58194171B": "10.13.6",
"Mac-00BE6ED71E35EB86": "10.15.7",
"Mac-FC02E91DDD3FA6A4": "10.15.7",
"Mac-7DF2A3B5E5D671ED": "10.15.7",
"Mac-031B6874CF7F642A": "10.15.7",
"Mac-27ADBB7B4CEE8E61": "10.15.7",
"Mac-77EB7D7DAF985301": "10.15.7",
"Mac-81E3E92DD6088272": "11.7.1",
"Mac-42FD25EABCABB274": "11.7.1",
"Mac-A369DDC4E67F1C45": "12.6.1",
"Mac-FFE5EF870D7BA81A": "12.6.1",
"Mac-DB15BD556843C820": "12.6.1",
"Mac-65CE76090165799A": "12.6.1",
"Mac-B809C3757DA9BB8D": "12.6.1",
"Mac-4B682C642B45593E": "latest",
"Mac-77F17D7DA9285301": "latest",
"Mac-BE088AF8C5EB4FA2": "latest",
"Mac-AA95B1DDAB278B95": "latest",
"Mac-63001698E7A34814": "latest",
"Mac-CFF7D910A743CAAF": "latest",
"Mac-AF89B6D9451A490B": "latest",
"Mac-7BA5B2D9E42DDD94": "latest"
}
Loading

0 comments on commit 3e535b2

Please sign in to comment.