Initial support for macOS High Sierra

mine
Dhiru Kholia 7 years ago committed by Dhiru Kholia
parent af92fb163e
commit 861bac4742

Binary file not shown.

@ -0,0 +1,139 @@
### Notes
* Enoch bootloader is not used for macOS High Sierra. Clover is used instead.
### Host System Details
Known to work on:
* Fedora 25 running on i7-6600U CPU.
* Ubuntu 17.04 running on i5-6500 CPU.
Tested with QEMU >= 2.10 (with an out-of-tree patch) and Linux 4.10.x / 4.12.x.
A CPU with SSE4.1 support is required for macOS High Sierra. Intel VT-x / AMD
SVM is required.
### Installation Preparation
#### Preparation steps on your current macOS installation
* Download macOS High Sierra installer from Apple App Store.
* Clone this repository. Files included in this repository are needed for ISO
creation.
```
git clone https://github.com/kholia/OSX-KVM.git
```
* Run the ISO creation script `create_iso_highsierra.sh` included in this
folder. Run it with `sudo`.
* Copy the generated ISO image from your Mac's Desktop to your QEMU/KVM machine.
#### Preparation steps on your QEMU system
* Clone this repository again on your QEMU system. Files from this repository are used in the following steps.
* Install required software packages.
```
sudo apt-get install qemu uml-utilities libguestfs-tools
```
* Build and use QEMU from source. See http://wiki.qemu-project.org/Hosts/Linux for help.
```
# First edit /etc/apt/sources.list to add/uncomment deb-src lines
sudo apt-get update
sudo apt-get build-dep qemu
git clone https://github.com/kholia/qemu.git
cd qemu
git checkout macOS
git submodule init
git submodule update --recursive
./configure --prefix=/home/$(whoami)/QEMU --target-list=x86_64-softmmu --audio-drv-list=pa
$ make clean; make -j8; make install
```
This step is not optional and is required.
* See [networking notes](../networking-qemu-kvm-howto.txt) to setup guest networking.
* Create a virtual HDD image where macOS will be installed.
```
qemu-img create -f qcow2 mac_hdd.img 128G
```
* Create bootable Clover disk.
```
sudo ./clover-image.sh --iso Clover-v2.4k-4233-X64.iso --cfg clover/config.plist.stripped.qemu --img Clover.qcow2
```
Instead of building your own bootable Clover disk, you may use the included `Clover.qcow2` disk image.
### Installation
To install macOS High Sierra, use the included `boot-macOS-HS.sh` script.
Note: Ensure that the OVMF resolution is set to 1024x768. This can be done via
the OVMF menu, which you can reach with a press of the ESC button during the
OVMF boot logo. In the OVMF menu settings, set Device Manager -> OVMF Platform
Configuration -> Change Preferred Resolution for Next Boot to 1024x768 . Commit
changes and exit the OVMF menu. Relaunch the `boot-macOS-HS.sh` script.
#### Installer Steps
* After booting, the initial language selection should show up.
* After selecting the language, fire-up the Terminal program and prepare the
hard drive for installation.
```
diskutil list
diskutil eraseDisk JHFS+ macOS disk0 # adapt this according to your system
```
High Sierra's Disk Utility does not recognize unformatted disks, unless you
click View > Show All Devices, quit Disk Utility, then relaunch it.
Thanks to https://tinyapps.org/blog/mac/ and xenadu02 for this tip.
* When done, quit Terminal.
* Now, you can continue with the installation as usual.
* When finished, the VM will reboot automatically and the first time setup continues as usual.
#### Post-Installation Recommendations
* Install Clover to the main hard drive where macOS High Sierra was installed
in previous steps. See [UEFI notes](../UEFI/README.md) for details.
* For debugging and general tips, see the main [README.md](../README.md) file
and [notes.md](../notes.md) file.
### Credits
* Nicholas Sherlock (http://www.nicksherlock.com)
* https://www.kraxel.org/blog/2017/09/running-macos-as-guest-in-kvm/
* https://sourceforge.net/projects/cloverefiboot/files/Bootable_ISO/

Binary file not shown.

@ -0,0 +1,160 @@
#!/bin/bash
# https://github.com/kraxel/imagefish
######################################################################
# defaults
iso=""
img=""
cfg=""
######################################################################
# create work dir
function msg() {
local txt="$1"
local bold="\x1b[1m"
local normal="\x1b[0m"
echo -e "${bold}### ${txt}${normal}"
}
function do_cleanup() {
msg "cleaning up ..."
if test "$GUESTFISH_PID" != ""; then
guestfish --remote -- exit >/dev/null 2>&1 || true
fi
sudo rm -rf "$WORK"
}
WORK="${TMPDIR-/var/tmp}/${0##*/}-$$"
mkdir "$WORK" || exit 1
trap 'do_cleanup' EXIT
BASE="$(dirname $0)"
######################################################################
# parse args
function print_help() {
cat <<EOF
usage: $0 [ options ]
options:
--iso <iso-image>
--img <disk-image>
--cfg <clover-config>
EOF
}
while test "$1" != ""; do
case "$1" in
--iso)
iso="$2"
shift; shift
;;
--img)
img="$2"
shift; shift
;;
--cfg)
cfg="$2"
shift; shift
;;
esac
done
######################################################################
# guestfish script helpers
function fish() {
echo "#" "$@"
guestfish --remote -- "$@" || exit 1
}
function fish_init() {
local format
case "$img" in
*.raw) format="raw" ;;
*) format="qcow2";;
esac
msg "creating and adding disk image"
fish disk-create $img $format 256M
fish add $img
fish run
}
function fish_fini() {
fish umount-all
}
######################################################################
# sanity checks
if test ! -f "$iso"; then
echo "ERROR: iso not found: $iso"
exit 1
fi
if test ! -f "$cfg"; then
echo "ERROR: cfg not found: $cfg"
exit 1
fi
if test -f "$img"; then
if test "$allow_override" = "yes"; then
rm -f "$img"
else
echo "ERROR: image exists: $img"
exit 1
fi
fi
######################################################################
# go!
msg "copy files from iso"
guestfish -a "$iso" -m "/dev/sda:/:norock" <<EOF || exit 1
copy-out /EFI $WORK
EOF
#msg "[debug] list drivers in EFI/CLOVER"
#(cd $WORK/EFI/CLOVER; find driver* -print)
export LIBGUESTFS_BACKEND=direct
eval $(guestfish --listen)
if test "$GUESTFISH_PID" = ""; then
echo "ERROR: starting guestfish failed"
exit 1
fi
fish_init
msg "partition disk image"
fish part-init /dev/sda gpt
fish part-add /dev/sda p 2048 200000
fish part-add /dev/sda p 202048 -2048
fish part-set-gpt-type /dev/sda 1 C12A7328-F81F-11D2-BA4B-00A0C93EC93B
fish part-set-bootable /dev/sda 1 true
fish mkfs vfat /dev/sda1 label:EFI
fish mkfs vfat /dev/sda2 label:clover
fish mount /dev/sda2 /
fish mkdir /ESP
fish mount /dev/sda1 /ESP
msg "copy files to disk image"
cp -v "$cfg" $WORK/config.plist
fish mkdir /ESP/EFI
fish mkdir /ESP/EFI/CLOVER
fish copy-in $WORK/EFI/BOOT /ESP/EFI
fish copy-in $WORK/EFI/CLOVER/CLOVERX64.efi /ESP/EFI/CLOVER
fish copy-in $WORK/EFI/CLOVER/drivers64UEFI /ESP/EFI/CLOVER
fish copy-in $WORK/EFI/CLOVER/drivers-Off/drivers64UEFI/OsxAptioFix2Drv-64.efi \
/ESP/EFI/CLOVER/drivers64UEFI
fish copy-in $WORK/EFI/CLOVER/drivers-Off/drivers64UEFI/PartitionDxe-64.efi \
/ESP/EFI/CLOVER/drivers64UEFI
fish copy-in apfs.efi \
/ESP/EFI/CLOVER/drivers64UEFI
fish copy-in $WORK/EFI/CLOVER/tools /ESP/EFI/CLOVER
fish copy-in $WORK/config.plist /ESP/EFI/CLOVER
fish_fini

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Boot</key>
<dict>
<key>Arguments</key>
<string></string>
<key>DefaultVolume</key>
<string>system</string>
<key>Log</key>
<true/>
<key>Secure</key>
<false/>
<key>Timeout</key>
<integer>5</integer>
</dict>
<key>GUI</key>
<dict>
<key>Scan</key>
<dict>
<key>Entries</key>
<true/>
<key>Tool</key>
<true/>
</dict>
<key>ScreenResolution</key>
<string>1920x1080</string>
<key>Theme</key>
<string>embedded</string>
</dict>
<key>RtVariables</key>
<dict>
<key>BooterConfig</key>
<string>0x28</string>
<key>CsrActiveConfig</key>
<string>0x3</string>
</dict>
<key>SMBIOS</key>
<dict>
<key>BiosReleaseDate</key>
<string>10/23/12</string>
<key>BiosVendor</key>
<string>Apple Inc.</string>
<key>BiosVersion</key>
<string>MM61.88Z.0106.B00.1208091121</string>
<key>Board-ID</key>
<string>Mac-F65AE981FFA204ED</string>
<key>BoardManufacturer</key>
<string>Apple Inc.</string>
<key>BoardType</key>
<integer>10</integer>
<key>ChassisAssetTag</key>
<string>Mini-Aluminum</string>
<key>ChassisManufacturer</key>
<string>Apple Inc.</string>
<key>ChassisType</key>
<string>16</string>
<key>Family</key>
<string>Mac mini</string>
<key>Manufacturer</key>
<string>Apple Inc.</string>
<key>Mobile</key>
<false/>
<key>ProductName</key>
<string>Macmini6,2</string>
<key>SerialNumber</key>
<string>C02L5LZLDWYN</string>
<key>Trust</key>
<false/>
<key>Version</key>
<string>1.0</string>
</dict>
<key>SystemParameters</key>
<dict>
<key>InjectKexts</key>
<false/>
<key>InjectSystemID</key>
<true/>
</dict>
</dict>
</plist>

@ -0,0 +1,247 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ACPI</key>
<dict>
<key>DSDT</key>
<dict>
<key>Debug</key>
<false/>
<key>DropOEM_DSM</key>
<false/>
<key>Fixes</key>
<dict>
<key>AddDTGP_0001</key>
<false/>
<key>AddHDMI_8000000</key>
<false/>
<key>AddIMEI_80000</key>
<false/>
<key>AddMCHC_0008</key>
<false/>
<key>AddPNLF_1000000</key>
<false/>
<key>DeleteUnused_400000</key>
<false/>
<key>FIX_ACST_4000000</key>
<false/>
<key>FIX_ADP1_800000</key>
<false/>
<key>FIX_INTELGFX_100000</key>
<false/>
<key>FIX_RTC_20000</key>
<false/>
<key>FIX_S3D_2000000</key>
<false/>
<key>FakeLPC_0020</key>
<false/>
<key>FiX_TMR_40000</key>
<false/>
<key>FiX_WAK_200000</key>
<false/>
<key>FixAirport_4000</key>
<false/>
<key>FixDarwin_0002</key>
<false/>
<key>FixDisplay_0100</key>
<false/>
<key>FixFirewire_0800</key>
<false/>
<key>FixHDA_8000</key>
<false/>
<key>FixHPET_0010</key>
<false/>
<key>FixIDE_0200</key>
<false/>
<key>FixIPIC_0040</key>
<false/>
<key>FixLAN_2000</key>
<false/>
<key>FixRegions_10000000</key>
<false/>
<key>FixSATA_0400</key>
<false/>
<key>FixSBUS_0080</key>
<false/>
<key>FixShutdown_0004</key>
<false/>
<key>FixUSB_1000</key>
<false/>
<key>NewWay_80000000</key>
<false/>
</dict>
<key>Name</key>
<string>DSDT.aml</string>
<key>ReuseFFFF</key>
<false/>
</dict>
<key>HaltEnabler</key>
<false/>
<key>SSDT</key>
<dict>
<key>DropOem</key>
<false/>
<key>Generate</key>
<dict>
<key>CStates</key>
<false/>
<key>PStates</key>
<false/>
</dict>
</dict>
</dict>
<key>Boot</key>
<dict>
<key>Arguments</key>
<string>dart=0</string>
<key>DefaultVolume</key>
<string>clover</string>
<key>Legacy</key>
<string>PBR</string>
<key>Log</key>
<true/>
<key>Secure</key>
<false/>
<key>Timeout</key>
<integer>3</integer>
<key>XMPDetection</key>
<string>NO</string>
</dict>
<key>Devices</key>
<dict>
<key>Audio</key>
<dict>
<key>Inject</key>
<string>1</string>
</dict>
<key>FakeID</key>
<dict>
<key>ATI</key>
<string>0x0</string>
<key>IMEI</key>
<string>0x0</string>
<key>IntelGFX</key>
<string>0x0</string>
<key>LAN</key>
<string>0x0</string>
<key>NVidia</key>
<string>0x0</string>
<key>SATA</key>
<string>0x0</string>
<key>WIFI</key>
<string>0x0</string>
<key>XHCI</key>
<string>0x0</string>
</dict>
<key>USB</key>
<dict>
<key>FixOwnership</key>
<false/>
<key>Inject</key>
<false/>
</dict>
<key>UseIntelHDMI</key>
<false/>
</dict>
<key>DisableDrivers</key>
<array>
<string>Nothing</string>
</array>
<key>GUI</key>
<dict>
<key>Hide</key>
<array>
<string>Windows</string>
<string>\EFI\BOOT\BOOTX64.EFI</string>
</array>
<key>Language</key>
<string>en:0</string>
<key>Mouse</key>
<dict>
<key>Enabled</key>
<true/>
<key>Speed</key>
<integer>8</integer>
</dict>
<key>Scan</key>
<dict>
<key>Entries</key>
<true/>
<key>Legacy</key>
<string>First</string>
<key>Tool</key>
<true/>
</dict>
<key>ScreenResolution</key>
<string>1024x768</string>
<key>Theme</key>
<string>embedded</string>
</dict>
<key>Graphics</key>
<dict>
<key>Inject</key>
<dict>
<key>ATI</key>
<false/>
<key>Intel</key>
<false/>
<key>NVidia</key>
<false/>
</dict>
</dict>
<key>KernelAndKextPatches</key>
<dict>
<key>AppleRTC</key>
<true/>
<key>AsusAICPUPM</key>
<true/>
<key>KernelCpu</key>
<false/>
<key>KernelHaswellE</key>
<false/>
<key>KernelLapic</key>
<false/>
<key>KernelPm</key>
<true/>
<key>KextsToPatch</key>
<array>
<dict>
<key>Comment</key>
<string>External icons patch</string>
<key>Find</key>
<data>
RXh0ZXJuYWw=
</data>
<key>Name</key>
<string>AppleAHCIPort</string>
<key>Replace</key>
<data>
SW50ZXJuYWw=
</data>
</dict>
</array>
</dict>
<key>RtVariables</key>
<dict>
<key>BooterConfig</key>
<string>0x28</string>
<key>CsrActiveConfig</key>
<string>0x3</string>
</dict>
<key>SMBIOS</key>
<dict>
<key>Trust</key>
<false/>
</dict>
<key>SystemParameters</key>
<dict>
<key>InjectKexts</key>
<string>Detect</string>
<key>InjectSystemID</key>
<true/>
<key>NvidiaWeb</key>
<false/>
</dict>
</dict>
</plist>

@ -0,0 +1,35 @@
<key>SMBIOS</key>
<dict>
<key>BiosReleaseDate</key>
<string>10/23/12</string>
<key>BiosVendor</key>
<string>Apple Inc.</string>
<key>BiosVersion</key>
<string>MM61.88Z.0106.B00.1208091121</string>
<key>Board-ID</key>
<string>Mac-F65AE981FFA204ED</string>
<key>BoardManufacturer</key>
<string>Apple Inc.</string>
<key>BoardType</key>
<integer>10</integer>
<key>ChassisAssetTag</key>
<string>Mini-Aluminum</string>
<key>ChassisManufacturer</key>
<string>Apple Inc.</string>
<key>ChassisType</key>
<string>16</string>
<key>Family</key>
<string>Mac mini</string>
<key>Manufacturer</key>
<string>Apple Inc.</string>
<key>Mobile</key>
<false/>
<key>ProductName</key>
<string>Macmini6,2</string>
<key>SerialNumber</key>
<string>C02L5LZLDWYN</string>
<key>Trust</key>
<false/>
<key>Version</key>
<string>1.0</string>
</dict>

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Boot</key>
<dict>
<key>Arguments</key>
<string></string>
<key>DefaultVolume</key>
<string>clover</string>
<key>Log</key>
<true/>
<key>Secure</key>
<false/>
<key>Timeout</key>
<integer>3</integer>
</dict>
<key>GUI</key>
<dict>
<key>Scan</key>
<dict>
<key>Entries</key>
<true/>
<key>Tool</key>
<true/>
</dict>
<key>ScreenResolution</key>
<string>1024x768</string>
<key>Theme</key>
<string>embedded</string>
</dict>
<key>RtVariables</key>
<dict>
<key>BooterConfig</key>
<string>0x28</string>
<key>CsrActiveConfig</key>
<string>0x3</string>
</dict>
<key>SMBIOS</key>
<dict>
<key>Trust</key>
<false/>
</dict>
<key>SystemParameters</key>
<dict>
<key>InjectKexts</key>
<false/>
<key>InjectSystemID</key>
<true/>
</dict>
</dict>
</plist>

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Boot</key>
<dict>
<key>Arguments</key>
<string></string>
<key>DefaultVolume</key>
<string>system</string>
<key>Log</key>
<true/>
<key>Secure</key>
<false/>
<key>Timeout</key>
<integer>5</integer>
</dict>
<key>GUI</key>
<dict>
<key>Scan</key>
<dict>
<key>Entries</key>
<true/>
<key>Tool</key>
<true/>
</dict>
<key>ScreenResolution</key>
<string>1280x800</string>
<key>Theme</key>
<string>embedded</string>
</dict>
<key>RtVariables</key>
<dict>
<key>BooterConfig</key>
<string>0x28</string>
<key>CsrActiveConfig</key>
<string>0x3</string>
</dict>
<key>SMBIOS</key>
<dict>
<key>Trust</key>
<false/>
</dict>
<key>SystemParameters</key>
<dict>
<key>InjectKexts</key>
<false/>
<key>InjectSystemID</key>
<true/>
</dict>
</dict>
</plist>

@ -0,0 +1,13 @@
#!/usr/bin/env bash
# Bail at first High Sierra ISO creation error
set -e
# Borrrowed from multiple internet sources
hdiutil create -o ~/Desktop/HighSierra.cdr -size 7316m -layout SPUD -fs HFS+J
hdiutil attach ~/Desktop/HighSierra.cdr.dmg -noverify -mountpoint /Volumes/install_build
sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/install_build --nointeraction
hdiutil detach "/Volumes/Install macOS High Sierra"
hdiutil convert ~/Desktop/HighSierra.cdr.dmg -format UDTO -o ~/Desktop/HighSierra.iso
mv ~/Desktop/HighSierra.iso.cdr ~/Desktop/HighSierra.iso
rm ~/Desktop/HighSierra.cdr.dmg

Binary file not shown.

After

Width:  |  Height:  |  Size: 982 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@ -12,7 +12,12 @@ The included blobs were built from commit 2913ebb2b550f50a.
Host OS
-------
OVMF blobs were built on Ubuntu 14.04.5 LTS (Trusty Tahr)
OVMF blobs (OVMF_CODE.fd, OVMF_VARS.fd) were built on Ubuntu 14.04.5 LTS
(Trusty Tahr).
OVMF_CODE-pure-efi.fd and OVMF_VARS-pure-efi.fd files come from the
"edk2.git-ovmf-x64-0-20170922.b3006.gfe4049471b.noarch.rpm" archive
downloaded from https://www.kraxel.org/repos/jenkins/edk2/ site.
References
----------

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -1,5 +1,8 @@
### Note
For macOS High Sierra, follow [README.md for High Sierra](HighSierra/README.md).
Consult this document for debugging and general tips.
See the [debugging section below](https://github.com/kholia/OSX-KVM#debugging)
and closed issues before opening a new issue.
@ -201,4 +204,6 @@ method or the following `virsh` method to install OS X / macOS.
* http://www.contrib.andrew.cmu.edu/~somlo/OSXKVM/
* https://www.kraxel.org/blog/2017/09/running-macos-as-guest-in-kvm/
* http://forge.voodooprojects.org/p/chameleon/source/changes/HEAD/ (Enoch source)

@ -1 +0,0 @@
MD5 (sym/Clover_v2.4k_r4152.pkg) = adf87b4a9aa182859216dee0722a4dff

@ -0,0 +1 @@
MD5 (sym/Clover_v2.4k_r4233.pkg) = d9e1f55d0b10cf2ac3cfbe80ab54f45b

@ -0,0 +1,29 @@
#!/bin/bash
# See https://www.mail-archive.com/qemu-devel@nongnu.org/msg471657.html thread.
#
# The "pc-q35-2.4" machine type was changed to "pc-q35-2.9" on 06-August-2017.
##################################################################################
# NOTE: Comment out the "MY_OPTIONS" line in case you are having booting problems!
##################################################################################
MY_OPTIONS="+aes,+xsave,+avx,+xsaveopt,avx2,+smep"
~/QEMU/bin/qemu-system-x86_64 -enable-kvm -m 3072 -cpu Penryn,kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,$MY_OPTIONS\
-machine pc-q35-2.9 \
-smp 4,cores=2 \
-usb -device usb-kbd -device usb-tablet \
-device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" \
-drive if=pflash,format=raw,readonly,file=OVMF_CODE-pure-efi.fd \
-drive if=pflash,format=raw,file=OVMF_VARS-pure-efi-1024x768.fd \
-smbios type=2 \
-device ich9-intel-hda -device hda-duplex \
-device ide-drive,bus=ide.2,drive=Clover \
-drive id=Clover,if=none,snapshot=on,format=qcow2,file=./'Clover.qcow2' \
-device ide-drive,bus=ide.1,drive=MacHDD \
-drive id=MacHDD,if=none,file=./mac_hdd.img,format=qcow2 \
-device ide-drive,bus=ide.0,drive=MacDVD \
-drive id=MacDVD,if=none,snapshot=on,media=cdrom,file=./'HighSierra.iso' \
-netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000-82545em,netdev=net0,id=net0,mac=52:54:00:c9:18:27 \
-monitor stdio

@ -23,7 +23,7 @@ qemu-system-x86_64 -enable-kvm -m 3072 -cpu Penryn,kvm=off,vendor=GenuineIntel \
-smp 4,cores=2 \
-usb -device usb-kbd -device usb-mouse \
-device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" \
-kernel ./enoch_rev2898_boot \
-kernel ./enoch_rev2902_boot \
-smbios type=2 \
-device ich9-intel-hda -device hda-duplex \
-device ide-drive,bus=ide.2,drive=MacHDD \

Binary file not shown.

Binary file not shown.

@ -308,3 +308,9 @@ Release Date: October 21, 2015
Move 'InstallESD.dmg' to '/Applications/Install OS X El Capitan.app/Contents/SharedSupport/InstallESD.dmg' location.
Move 'InstallESD.dmg' to '/Applications/Install macOS Sierra.app/Contents/SharedSupport/' location (for macOS Sierra).
### Clover References
* https://clover-wiki.zetam.org/Development
* https://sourceforge.net/p/cloverefiboot/code/HEAD/log/?path=

Loading…
Cancel
Save