A ARM macOS Virtual Machine, using macOS 12's new Virtualization framework.

Overview

macOS Virtual Machine

A ARM macOS Virtual Machine, using macOS 12's new Virtualization framework.
I copied KhaosT's code from here, all I did is change some path, add some entitlements and add a simple GUI.

I successfully created a macOS 12 Virtual Machine!
Thanks @KhaosT for sharing his code, he make this possible. pic.twitter.com/nDD5IMzhlb

— Ming Chang (@mingchang137) June 29, 2021

Screen Shot 2021-06-30 at 3 04 50 PM

Requirements

  • Apple Silicon Mac (running macOS 12)
  • Xcode 13
  • Apple Configurator 2
  • macOS 12 IPSW
  • a empty dmg image (This will be your system storage, name it disk.dmg, you can create it from Disk Utility)

First Time Setup

  1. Clone this project
  2. Run (This project works on my Mac but might not run on yours)
  3. Quit the app when "Virtual Machine" window showed up, move disk.dmg into the app's container
  4. Run it again
  5. Open Apple Configurator 2, if everything works, There should have a VirtualMac in DFU mode
  6. Temporary disable macOS Firewall and iCloud Private Relay (Apple Configurator 2 can't restore VM with those features enabled)
  7. Drag macOS 12 IPSW file into Apple Configurator 2, click Restore to install macOS
  8. When it's done, you should see a purple window greeting to you. Bon Appétit!

It's not working / Apple Configurator 2 keeps failing!

Try removing aux.img in the app's container, restart the app and using "Start Virtual Machine Manually" function in the menu bar before restoring.

Special thanks to KhaosT, his code make this possible, here is the project made by him, provides better GUI.

You might also like...
Tutorials from sparrowcode.io website. You can add new, translate or fix typos. Also you can add your apps from App Store for free.

Страницы доступны на sparrowcode.io/en & sparrowcode.io/ru Как добавить свое приложение Добавьте элемент в json /ru/apps/apps.json. Если ваше приложен

A simple framework to output to a file, url, the console, or even register notification using UserNotifications

o is a simple framework to output to a file, url, the console, or even register notification using UserNotifications. o can also get input from a file, url, or console.

A Swift wrapper around the CoreSymbolication private framework on macOS.

CoreSymbolication provides a very powerful system for looking up and extracting symbolic information from mach-o executables, dyld shared caches, and dSYMs.

Swift sample app for running privileged operations on macOS using a helper tool
Swift sample app for running privileged operations on macOS using a helper tool

SwiftAuthorizationSample demonstrates how to run privileged operations on macOS using a helper tool managed by launchd. This sample was created with t

A simple program to fix doubled key presses on macOS using just software

Untap A simple program to fix doubled key presses on macOS using just software. Installation Download this GitHub repo, cd to its folder in Terminal,

Start your next Open-Source Swift Framework 📦
Start your next Open-Source Swift Framework 📦

SwiftKit enables you to easily generate a cross platform Swift Framework from your command line. It is the best way to start your next Open-Source Swi

Easily generate cross platform Swift framework projects from the command line
Easily generate cross platform Swift framework projects from the command line

SwiftPlate Easily generate cross platform Swift framework projects from the command line. SwiftPlate will generate Xcode projects for you in seconds,

ConfettiKit is a custom framework used to add Confetti on your iOS/iPadOS projects.
ConfettiKit is a custom framework used to add Confetti on your iOS/iPadOS projects.

ConfettiKit is a custom framework used to add Confetti on your iOS/iPadOS projects. The kit provides variety of customisations inorder to design a confetti which matches your project's UI. ConfettiKit makes your work of adding Confetti on your project with just one line of code.

Alchemy, an elegant, batteries included backend framework for Swift.
Alchemy, an elegant, batteries included backend framework for Swift.

Elegant, batteries included web framework for Swift.

Comments
  • Blank screen after attempting to install another OS

    Blank screen after attempting to install another OS

    Thank you for putting this solution together and thanks to Mrmacintosh for the great YouTube walkthrough.

    I got a Monterey VM set up, and I thought I would also setup Big Sur VM. I knew I would need the macos Virtual Machine folder in the Library/Containers folder to be freed up for me to go through the DFU, firmware installation, and OS installation process again, so I attempted to rename it to Library/Containers/macos monterey virtual machine.

    I also modified the plist.info file in the .app package generated by the xcode build so that it would look for disk.img in the renamed folder.

    However, the screen just boots up a black screen. I put everything back to how it was and am still getting the black screen.

    There is nothing important on the VM, but I would love to learn more about this process and am wondering what modifying Info.plist did to the VM? Did this somehow mess with the signing process? I have modified info.plist files before when creating apps. I only changed CFBundleName and CFBundleExecutable, and when it didn't work, I changed them back to the original values.

    opened by jamesmortensen 4
  • README: remove the line for setting signing URL

    README: remove the line for setting signing URL

    The signing URL only needs to be overridden when using VZMacOSInstaller to perform the DFU restore (which doesn't seem to work anyways, even after overriding the URL, due to sandboxing?) Since we're using Configurator 2, remove the step.

    opened by zhuowei 0
Owner
Ming Chang
Ming Chang
Running GUI Linux in a virtual machine on a Mac

Running GUI Linux in a virtual machine on a Mac Install and run GUI Linux in a virtual machine using the Virtualization framework. การ build และใช้งาน

MrChoke 3 Jul 12, 2022
Useless tools for exploring Virtualization.framework

Tools for exploring the internals of Virtualization.framework's Mac virtualization support. I made this since I don't have an Apple Silicon Mac but st

null 18 Aug 9, 2022
PlayCover is a project that allows you to sideload iOS apps on macOS( currently arm, Intel support will be tested.

PlayCover is a project that allows you to sideload iOS apps on macOS( currently arm, Intel support will be tested.

Alexandr 4k Jul 8, 2022
Docker images for Swift on Raspberry Pi and other ARM devices from balena's base images.

Swift on Balena Welcome to Swift on Balena – a set of Docker images for Swift on Raspberry Pi and other ARM devices. These images are based on balena'

Will Lisac 173 Dec 5, 2022
A Swift library for hardware projects on Linux/ARM boards with support for GPIOs/SPI/I2C/PWM/UART/1Wire.

A Swift library for hardware projects on Linux/ARM boards with support for GPIOs/SPI/I2C/PWM/UART/1Wire. Summary This library provides an easy way to

uraimo 1.3k Dec 26, 2022
Multiple Arcade Machine Emulator for iOS, iPadOS, tvOS, macOS (Catalyst)

MAME4iOS Original Author: David Valdeita (Seleuco) This is a port of MAME for iOS, iPadOS, tvOS and macOS. MAME4iOS is designed to run for modern iOS

null 438 Jan 4, 2023
A very simplistic state machine system for Swift while mainly used with Raylib on Swift

A very simplistic state machine system for Swift while mainly used with Raylib on Swift

Conifer Coniferoslav 2 Dec 12, 2022
macOS SwiftUI manager new window's life

WindowManager macOS swiftUI manager window's life cycle Usage // open DocumentsView WindowUtil.makeWindow(MyDocumentsView.self, viewType: .document)

Daniel 4 Oct 26, 2022
A Swift playground that comes pre-loaded with Plot, that can be used to explore the new component API.

PlotPlayground A Swift playground that comes pre-loaded with Plot, so that you can quickly try out the library and its new, SwiftUI-like API for build

John Sundell 48 Jan 5, 2023
Tutorials from sparrowcode.io website. You can add new, translate or fix typos. Also you can add your apps from App Store for free.

Tutorials from sparrowcode.io website. You can add new, translate or fix typos. Also you can add your apps from App Store for free.

Sparrow Code 31 Jan 3, 2023