aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsickcodes <[email protected]>2021-03-10 02:08:27 +0700
committerGitHub <[email protected]>2021-03-10 02:08:27 +0700
commite2bab5b7650f84d8de13f084da2ec1fba810eeb9 (patch)
tree3ab0b3768126d3389af8b545515cd7a49a118e1c
parentMerge pull request #172 from sickcodes/sickcodes-issue-template (diff)
parentosx-serial-generator submodule update (diff)
downloaddocker-osx-e2bab5b7650f84d8de13f084da2ec1fba810eeb9.tar.xz
docker-osx-e2bab5b7650f84d8de13f084da2ec1fba810eeb9.zip
Merge pull request #171 from sickcodes/move-custom-to-submodule
Move custom serial generator scripts to their own repo:
-rw-r--r--.gitmodules3
-rw-r--r--Dockerfile8
-rw-r--r--Dockerfile.auto6
-rw-r--r--Dockerfile.naked6
-rw-r--r--README.md52
l---------custom1
-rw-r--r--custom/config-nopicker-custom.plist885
-rwxr-xr-xcustom/generate-specific-bootdisk.sh254
-rwxr-xr-xcustom/generate-unique-machine-values.sh376
-rwxr-xr-xcustom/opencore-image-ng.sh164
m---------osx-serial-generator0
11 files changed, 40 insertions, 1715 deletions
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..66e60a1
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "osx-serial-generator"]
+ path = osx-serial-generator
+ url = https://github.com/sickcodes/osx-serial-generator.git
diff --git a/Dockerfile b/Dockerfile
index 72f249e..57f81f8 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -126,7 +126,7 @@ RUN tee -a sshd_config <<< 'AllowTcpForwarding yes' \
USER arch
# download OSX-KVM
-RUN git clone --depth 1 https://github.com/kholia/OSX-KVM.git /home/arch/OSX-KVM
+RUN git clone --recurse-submodules --depth 1 https://github.com/kholia/OSX-KVM.git /home/arch/OSX-KVM
# enable ssh
# docker exec .... ./enable-ssh.sh
@@ -201,7 +201,7 @@ RUN if [[ "${LINUX}" == true ]]; then \
# optional --build-arg to change branches for testing
ARG BRANCH=master
ARG REPO='https://github.com/sickcodes/Docker-OSX.git'
-RUN git clone --branch "${BRANCH}" "${REPO}"
+RUN git clone --recurse-submodules --depth 1 --branch "${BRANCH}" "${REPO}"
# env -e ADDITIONAL_PORTS with a comma
# for example, -e ADDITIONAL_PORTS=hostfwd=tcp::23-:23,
@@ -302,7 +302,7 @@ CMD sudo chown -R $(id -u):$(id -g) /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDIS
; } \
|| export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
; [[ "${GENERATE_UNIQUE}" == true ]] && { \
- ./Docker-OSX/custom/generate-unique-machine-values.sh \
+ ./Docker-OSX/osx-serial-generator/generate-unique-machine-values.sh \
--master-plist-url="${MASTER_PLIST_URL}" \
--count 1 \
--tsv ./serial.tsv \
@@ -314,7 +314,7 @@ CMD sudo chown -R $(id -u):$(id -g) /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDIS
; } \
; [[ "${GENERATE_SPECIFIC}" == true ]] && { \
source "${ENV:=/env}" 2>/dev/null \
- ; ./Docker-OSX/custom/generate-specific-bootdisk.sh \
+ ; ./Docker-OSX/osx-serial-generator/generate-specific-bootdisk.sh \
--master-plist-url="${MASTER_PLIST_URL}" \
--model "${DEVICE_MODEL}" \
--serial "${SERIAL}" \
diff --git a/Dockerfile.auto b/Dockerfile.auto
index a9cb6a5..65efef8 100644
--- a/Dockerfile.auto
+++ b/Dockerfile.auto
@@ -79,7 +79,7 @@ RUN patched_glibc=glibc-linux4-2.33-4-x86_64.pkg.tar.zst \
RUN pacman -Syu xorg-server-xvfb wget xterm xorg-xhost xorg-xrandr sshpass --noconfirm \
&& if [[ "${SCROT}" ]]; then \
pacman -Syu scrot base-devel --noconfirm \
- && git clone https://github.com/stolk/imcat.git \
+ && git clone --recurse-submodules --depth 1 https://github.com/stolk/imcat.git \
&& cd imcat \
&& make \
&& sudo cp imcat /usr/bin/imcat \
@@ -155,7 +155,7 @@ CMD echo "${BOILERPLATE}" \
; } \
|| export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
; [[ "${GENERATE_UNIQUE}" == true ]] && { \
- ./Docker-OSX/custom/generate-unique-machine-values.sh \
+ ./Docker-OSX/osx-serial-generator/generate-unique-machine-values.sh \
--master-plist-url="${MASTER_PLIST_URL}" \
--count 1 \
--tsv ./serial.tsv \
@@ -167,7 +167,7 @@ CMD echo "${BOILERPLATE}" \
; } \
; [[ "${GENERATE_SPECIFIC}" == true ]] && { \
source "${ENV:=/env}" 2>/dev/null \
- ; ./Docker-OSX/custom/generate-specific-bootdisk.sh \
+ ; ./Docker-OSX/osx-serial-generator/generate-specific-bootdisk.sh \
--master-plist-url="${MASTER_PLIST_URL}" \
--model "${DEVICE_MODEL}" \
--serial "${SERIAL}" \
diff --git a/Dockerfile.naked b/Dockerfile.naked
index 44fa0e4..bf006d7 100644
--- a/Dockerfile.naked
+++ b/Dockerfile.naked
@@ -68,7 +68,7 @@ ARG SCROT
RUN pacman -Syu xorg-server-xvfb wget xterm xorg-xhost xorg-xrandr sshpass --noconfirm \
&& if [[ "${SCROT}" ]]; then \
pacman -Syu scrot base-devel --noconfirm \
- && git clone https://github.com/stolk/imcat.git \
+ && git clone --recurse-submodules --depth 1 https://github.com/stolk/imcat.git \
&& cd imcat \
&& make \
&& sudo cp imcat /usr/bin/imcat \
@@ -125,7 +125,7 @@ CMD sudo chown -R $(id -u):$(id -g) /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDIS
; } \
|| export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
; [[ "${GENERATE_UNIQUE}" == true ]] && { \
- ./Docker-OSX/custom/generate-unique-machine-values.sh \
+ ./Docker-OSX/osx-serial-generator/generate-unique-machine-values.sh \
--master-plist-url="${MASTER_PLIST_URL}" \
--count 1 \
--tsv ./serial.tsv \
@@ -137,7 +137,7 @@ CMD sudo chown -R $(id -u):$(id -g) /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDIS
; } \
; [[ "${GENERATE_SPECIFIC}" == true ]] && { \
source "${ENV:=/env}" 2>/dev/null \
- ; ./Docker-OSX/custom/generate-specific-bootdisk.sh \
+ ; ./Docker-OSX/osx-serial-generator/generate-specific-bootdisk.sh \
--master-plist-url="${MASTER_PLIST_URL}" \
--model "${DEVICE_MODEL}" \
--serial "${SERIAL}" \
diff --git a/README.md b/README.md
index 9a2c07c..6b328d5 100644
--- a/README.md
+++ b/README.md
@@ -43,6 +43,32 @@ Thank you to @cephasara for this major contribution.
#### Follow [@sickcodes on Twitter](https://twitter.com/sickcodes) for updates or feature requests!
+# Basic Quick Start Docker-OSX
+
+```bash
+
+docker pull sickcodes/docker-osx:latest
+
+# Catalina
+docker run -it \
+ --device /dev/kvm \
+ -p 50922:10022 \
+ -v /tmp/.X11-unix:/tmp/.X11-unix \
+ -e "DISPLAY=${DISPLAY:-:0.0}" \
+ sickcodes/docker-osx:latest
+
+# Big Sur
+docker run -it \
+ --device /dev/kvm \
+ -p 50922:10022 \
+ -v /tmp/.X11-unix:/tmp/.X11-unix \
+ -e "DISPLAY=${DISPLAY:-:0.0}" \
+ sickcodes/docker-osx:big-sur
+
+# Wait 2-3 minutes until you see the logo.
+
+```
+
# How to use
### There are 3 images: **latest**, **auto** and **naked**.
@@ -80,32 +106,6 @@ Use `docker commit`, copy the ID, and then `docker start ID`
[Pull out the .img file](https://github.com/sickcodes/Docker-OSX#backup-the-disk-wheres-my-disk), and then use that [.img file with :naked](https://github.com/sickcodes/Docker-OSX#quick-start-own-image-naked-container-image)
-# Basic Quick Start Docker-OSX
-
-```bash
-
-docker pull sickcodes/docker-osx:latest
-
-# catalina
-docker run -it \
- --device /dev/kvm \
- -p 50922:10022 \
- -v /tmp/.X11-unix:/tmp/.X11-unix \
- -e "DISPLAY=${DISPLAY:-:0.0}" \
- sickcodes/docker-osx:latest
-
-# big sur
-docker run -it \
- --device /dev/kvm \
- -p 50922:10022 \
- -v /tmp/.X11-unix:/tmp/.X11-unix \
- -e "DISPLAY=${DISPLAY:-:0.0}" \
- sickcodes/docker-osx:big-sur
-
-# Wait 2-3 minutes until you see the logo.
-
-```
-
# Quick Start Large Pre-Made Image
Current large image size: 17.5GB
diff --git a/custom b/custom
new file mode 120000
index 0000000..07ee287
--- /dev/null
+++ b/custom
@@ -0,0 +1 @@
+osx-serial-generator/ \ No newline at end of file
diff --git a/custom/config-nopicker-custom.plist b/custom/config-nopicker-custom.plist
deleted file mode 100644
index aa60a39..0000000
--- a/custom/config-nopicker-custom.plist
+++ /dev/null
@@ -1,885 +0,0 @@
-<!-- This file is modified from https://github.com/kholia/OSX-KVM/tree/master/OpenCore-Catalina -->
-<!-- All credit for this file https://github.com/kholia/OSX-KVM/blob/master/CREDITS.md -->
-<?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>Add</key>
- <array>
- <dict>
- <key>Comment</key>
- <string>add DTGP method</string>
- <key>Enabled</key>
- <true/>
- <key>Path</key>
- <string>SSDT-DTGP.aml</string>
- </dict>
- <dict>
- <key>Comment</key>
- <string>Fake EC and USBX Power</string>
- <key>Enabled</key>
- <true/>
- <key>Path</key>
- <string>SSDT-EC.aml</string>
- </dict>
- <dict>
- <key>Comment</key>
- <string>USB 2.0 Injection</string>
- <key>Enabled</key>
- <true/>
- <key>Path</key>
- <string>SSDT-EHCI.aml</string>
- </dict>
- <dict>
- <key>Comment</key>
- <string>CPU AGPM Plugin=1</string>
- <key>Enabled</key>
- <true/>
- <key>Path</key>
- <string>SSDT-PLUG.aml</string>
- </dict>
- </array>
- <key>Delete</key>
- <array>
- <dict>
- <key>All</key>
- <false/>
- <key>Comment</key>
- <string>Delete CpuPm</string>
- <key>Enabled</key>
- <false/>
- <key>OemTableId</key>
- <data>Q3B1UG0AAAA=</data>
- <key>TableLength</key>
- <integer>0</integer>
- <key>TableSignature</key>
- <data>U1NEVA==</data>
- </dict>
- <dict>
- <key>All</key>
- <false/>
- <key>Comment</key>
- <string>Delete Cpu0Ist</string>
- <key>Enabled</key>
- <false/>
- <key>OemTableId</key>
- <data>Q3B1MElzdAA=</data>
- <key>TableLength</key>
- <integer>0</integer>
- <key>TableSignature</key>
- <data>U1NEVA==</data>
- </dict>
- </array>
- <key>Patch</key>
- <array>
- <dict>
- <key>Comment</key>
- <string>_Q11 to XQ11</string>
- <key>Count</key>
- <integer>1</integer>
- <key>Enabled</key>
- <false/>
- <key>Find</key>
- <data>X1ExMQ==</data>
- <key>Limit</key>
- <integer>0</integer>
- <key>Mask</key>
- <data></data>
- <key>OemTableId</key>
- <data></data>
- <key>Replace</key>
- <data>WFExMQ==</data>
- <key>ReplaceMask</key>
- <data></data>
- <key>Skip</key>
- <integer>0</integer>
- <key>TableLength</key>
- <integer>0</integer>
- <key>TableSignature</key>
- <data></data>
- </dict>
- <dict>
- <key>Comment</key>
- <string>_Q12 to XQ12</string>
- <key>Count</key>
- <integer>1</integer>
- <key>Enabled</key>
- <false/>
- <key>Find</key>
- <data>X1ExMg==</data>
- <key>Limit</key>
- <integer>0</integer>
- <key>Mask</key>
- <data></data>
- <key>OemTableId</key>
- <data></data>
- <key>Replace</key>
- <data>WFExMg==</data>
- <key>ReplaceMask</key>
- <data></data>
- <key>Skip</key>
- <integer>0</integer>
- <key>TableLength</key>
- <integer>0</integer>
- <key>TableSignature</key>
- <data></data>
- </dict>
- </array>
- <key>Quirks</key>
- <dict>
- <key>FadtEnableReset</key>
- <false/>
- <key>NormalizeHeaders</key>
- <false/>
- <key>RebaseRegions</key>
- <false/>
- <key>ResetHwSig</key>
- <false/>
- <key>ResetLogoStatus</key>
- <false/>
- </dict>
- </dict>
- <key>Booter</key>
- <dict>
- <key>MmioWhitelist</key>
- <array/>
- <key>Quirks</key>
- <dict>
- <key>AvoidRuntimeDefrag</key>
- <true/>
- <key>DevirtualiseMmio</key>
- <false/>
- <key>DisableSingleUser</key>
- <false/>
- <key>DisableVariableWrite</key>
- <false/>
- <key>DiscardHibernateMap</key>
- <false/>
- <key>EnableSafeModeSlide</key>
- <true/>
- <key>EnableWriteUnprotector</key>
- <true/>
- <key>ForceExitBootServices</key>
- <false/>
- <key>ProtectMemoryRegions</key>
- <false/>
- <key>ProtectSecureBoot</key>
- <false/>
- <key>ProtectUefiServices</key>
- <false/>
- <key>ProvideCustomSlide</key>
- <true/>
- <key>ProvideMaxSlide</key>
- <integer>0</integer>
- <key>RebuildAppleMemoryMap</key>
- <false/>
- <key>SetupVirtualMap</key>
- <false/>
- <key>SignalAppleOS</key>
- <false/>
- <key>SyncRuntimePermissions</key>
- <false/>
- </dict>
- </dict>
- <key>DeviceProperties</key>
- <dict>
- <key>Add</key>
- <dict>
- <key>PciRoot(0x1)/Pci(0x1F,0x0)</key>
- <dict>
- <key>compatible</key>
- <string>pci8086,2916</string>
- <key>device-id</key>
- <data>
- FikA
- </data>
- <key>name</key>
- <string>pci8086,2916</string>
- </dict>
- </dict>
- <key>Delete</key>
- <dict>
- <key>PciRoot(0x0)/Pci(0x1b,0x0)</key>
- <array>
- <string>MaximumBootBeepVolume</string>
- </array>
- </dict>
- </dict>
- <key>Kernel</key>
- <dict>
- <key>Add</key>
- <array>
- <dict>
- <key>Arch</key>
- <string>Any</string>
- <key>BundlePath</key>
- <string>VoodooHDA.kext</string>
- <key>Comment</key>
- <string></string>
- <key>Enabled</key>
- <true/>
- <key>ExecutablePath</key>
- <string>Contents/MacOS/VoodooHDA</string>
- <key>MaxKernel</key>
- <string></string>
- <key>MinKernel</key>
- <string></string>
- <key>PlistPath</key>
- <string>Contents/Info.plist</string>
- </dict>
- <dict>
- <key>Arch</key>
- <string>x86_64</string>
- <key>BundlePath</key>
- <string>Lilu.kext</string>
- <key>Comment</key>
- <string>Patch engine</string>
- <key>Enabled</key>
- <true/>
- <key>ExecutablePath</key>
- <string>Contents/MacOS/Lilu</string>
- <key>MaxKernel</key>
- <string></string>
- <key>MinKernel</key>
- <string>12.0.0</string>
- <key>PlistPath</key>
- <string>Contents/Info.plist</string>
- </dict>
- <dict>
- <key>Arch</key>
- <string>x86_64</string>
- <key>BundlePath</key>
- <string>VirtualSMC.kext</string>
- <key>Comment</key>
- <string>SMC emulator</string>
- <key>Enabled</key>
- <false/>
- <key>ExecutablePath</key>
- <string>Contents/MacOS/VirtualSMC</string>
- <key>MaxKernel</key>
- <string></string>
- <key>MinKernel</key>
- <string>12.0.0</string>
- <key>PlistPath</key>
- <string>Contents/Info.plist</string>
- </dict>
- <dict>
- <key>Arch</key>
- <string>x86_64</string>
- <key>BundlePath</key>
- <string>WhateverGreen.kext</string>
- <key>Comment</key>
- <string>Video patches</string>
- <key>Enabled</key>
- <true/>
- <key>ExecutablePath</key>
- <string>Contents/MacOS/WhateverGreen</string>
- <key>MaxKernel</key>
- <string></string>
- <key>MinKernel</key>
- <string>12.0.0</string>
- <key>PlistPath</key>
- <string>Contents/Info.plist</string>
- </dict>
- <dict>
- <key>BundlePath</key>
- <string>AGPMInjector.kext</string>
- <key>Comment</key>
- <string></string>
- <key>Enabled</key>
- <true/>
- <key>ExecutablePath</key>
- <string></string>
- <key>MaxKernel</key>
- <string></string>
- <key>MinKernel</key>
- <string></string>
- <key>PlistPath</key>
- <string>Contents/Info.plist</string>
- </dict>
- <dict>
- <key>BundlePath</key>
- <string>USBPorts.kext</string>
- <key>Comment</key>
- <string></string>
- <key>Enabled</key>
- <true/>
- <key>ExecutablePath</key>
- <string></string>
- <key>MaxKernel</key>
- <string></string>
- <key>MinKernel</key>
- <string></string>
- <key>PlistPath</key>
- <string>Contents/Info.plist</string>
- </dict>
- <dict>
- <key>Arch</key>
- <string>x86_64</string>
- <key>BundlePath</key>
- <string>MCEReporterDisabler.kext</string>
- <key>Comment</key>
- <string>AppleMCEReporter disabler</string>
- <key>Enabled</key>
- <true/>
- <key>ExecutablePath</key>
- <string></string>
- <key>MaxKernel</key>
- <string></string>
- <key>MinKernel</key>
- <string>19.0.0</string>
- <key>PlistPath</key>
- <string>Contents/Info.plist</string>
- </dict>
- </array>
- <key>Block</key>
- <array>
- <dict>
- <key>Arch</key>
- <string>Any</string>
- <key>Comment</key>
- <string></string>
- <key>Enabled</key>
- <false/>
- <key>Identifier</key>
- <string>com.apple.driver.AppleTyMCEDriver</string>
- <key>MaxKernel</key>
- <string></string>
- <key>MinKernel</key>
- <string></string>
- </dict>
- </array>
- <key>Emulate</key>
- <dict>
- <key>Cpuid1Data</key>
- <data>
- VAYFAAAAAAAAAAAAAAAAAA==
- </data>
- <key>Cpuid1Mask</key>
- <data>
- ////AAAAAAAAAAAAAAAAAA==
- </data>
- </dict>
- <key>Force</key>
- <array>
- <dict>
- <key>Arch</key>
- <string>Any</string>
- <key>BundlePath</key>
- <string>System/Library/Extensions/IONetworkingFamily.kext</string>
- <key>Comment</key>
- <string>Patch engine</string>
- <key>Enabled</key>
- <false/>
- <key>Identifier</key>
- <string>com.apple.iokit.IONetworkingFamily</string>
- <key>ExecutablePath</key>
- <string>Contents/MacOS/IONetworkingFamily</string>
- <key>MaxKernel</key>
- <string>13.99.99</string>
- <key>MinKernel</key>
- <string></string>
- <key>PlistPath</key>
- <string>Contents/Info.plist</string>
- </dict>
- </array>
- <key>Patch</key>
- <array>
- <dict>
- <key>Base</key>
- <string>_cpu_topology_sort</string>
- <key>Comment</key>
- <string>algrey - cpu_topology_sort -disable _x86_validate_topology</string>
- <key>Count</key>
- <integer>1</integer>
- <key>Enabled</key>
- <true/>
- <key>Find</key>
- <data>
- 6AAA//8=
- </data>
- <key>Identifier</key>
- <string>kernel</string>
- <key>Limit</key>
- <integer>0</integer>
- <key>Mask</key>
- <data>
- /wAA//8=
- </data>
- <key>MaxKernel</key>
- <string>20.99.99</string>
- <key>MinKernel</key>
- <string>17.0.0</string>
- <key>Replace</key>
- <data>
- Dx9EAAA=
- </data>
- <key>ReplaceMask</key>
- <data>
- </data>
- <key>Skip</key>
- <integer>0</integer>
- </dict>
- <dict>
- <key>Base</key>
- <string></string>
- <key>Comment</key>
- <string>algrey - cpuid_set_cpufamily - force CPUFAMILY_INTEL_PENRYN</string>
- <key>Count</key>
- <integer>1</integer>
- <key>Enabled</key>
- <true/>
- <key>Find</key>
- <data>
- MduAPQAAAAAGdQA=
- </data>
- <key>Identifier</key>
- <string>kernel</string>
- <key>Limit</key>
- <integer>0</integer>
- <key>Mask</key>
- <data>
- /////wAAAP///wA=
- </data>
- <key>MaxKernel</key>
- <string>20.99.99</string>
- <key>MinKernel</key>
- <string>17.0.0</string>
- <key>Replace</key>
- <data>
- u7xP6njpXQAAAJA=
- </data>
- <key>ReplaceMask</key>
- <data>
- </data>
- <key>Skip</key>
- <integer>0</integer>
- </dict>
- </array>
- <key>Quirks</key>
- <dict>
- <key>AppleCpuPmCfgLock</key>
- <false/>
- <key>AppleXcpmCfgLock</key>
- <false/>
- <key>AppleXcpmExtraMsrs</key>
- <false/>
- <key>AppleXcpmForceBoost</key>
- <false/>
- <key>CustomSMBIOSGuid</key>
- <false/>
- <key>DisableIoMapper</key>
- <false/>
- <key>DisableLinkeditJettison</key>
- <true/>
- <key>DisableRtcChecksum</key>
- <false/>
- <key>DummyPowerManagement</key>
- <true/>
- <key>ExternalDiskIcons</key>
- <false/>
- <key>IncreasePciBarSize</key>
- <false/>
- <key>LapicKernelPanic</key>
- <false/>
- <key>PanicNoKextDump</key>
- <false/>
- <key>PowerTimeoutKernelPanic</key>
- <false/>
- <key>ThirdPartyDrives</key>
- <false/>
- <key>XhciPortLimit</key>
- <false/>
- </dict>
- <key>Scheme</key>
- <dict>
- <key>FuzzyMatch</key>
- <true/>
- <key>KernelArch</key>
- <string>x86_64</string>
- <key>KernelCache</key>
- <string>Auto</string>
- </dict>
- </dict>
- <key>Misc</key>
- <dict>
- <key>BlessOverride</key>
- <array/>
- <key>Boot</key>
- <dict>
- <key>ConsoleAttributes</key>
- <integer>0</integer>
- <key>HibernateMode</key>
- <string>Auto</string>
- <key>HideAuxiliary</key>
- <false/>
- <key>PickerAttributes</key>
- <integer>1</integer>
- <key>PickerAudioAssist</key>
- <false/>
- <key>PickerMode</key>
- <string>External</string>
- <key>PollAppleHotKeys</key>
- <true/>
- <key>ShowPicker</key>
- <false/>
- <key>TakeoffDelay</key>
- <integer>0</integer>
- <key>Timeout</key>
- <integer>0</integer>
- </dict>
- <key>Debug</key>
- <dict>
- <key>AppleDebug</key>
- <false/>
- <key>ApplePanic</key>
- <false/>
- <key>DisableWatchDog</key>
- <false/>
- <key>DisplayDelay</key>
- <integer>0</integer>
- <key>DisplayLevel</key>
- <integer>2147483650</integer>
- <key>SerialInit</key>
- <false/>
- <key>SysReport</key>
- <false/>
- <key>Target</key>
- <integer>3</integer>
- </dict>
- <key>Entries</key>
- <array/>
- <key>Security</key>
- <dict>
- <key>AllowNvramReset</key>
- <true/>
- <key>AllowSetDefault</key>
- <false/>
- <key>ApECID</key>
- <integer>0</integer>
- <key>AuthRestart</key>
- <false/>
- <key>BootProtect</key>
- <string>None</string>
- <key>DmgLoading</key>
- <string>Signed</string>
- <key>EnablePassword</key>
- <false/>
- <key>ExposeSensitiveData</key>
- <integer>6</integer>
- <key>HaltLevel</key>
- <integer>2147483648</integer>
- <key>PasswordHash</key>
- <data></data>
- <key>PasswordSalt</key>
- <data></data>
- <key>ScanPolicy</key>
- <integer>0</integer>
- <key>SecureBootModel</key>
- <string>Disabled</string>
- <key>Vault</key>
- <string>Optional</string>
- </dict>
- <key>Tools</key>
- <array>
- <dict>
- <key>Arguments</key>
- <string></string>
- <key>Auxiliary</key>
- <false/>
- <key>Comment</key>
- <string>Not signed for security reasons</string>
- <key>Enabled</key>
- <true/>
- <key>Name</key>
- <string>UEFI Shell</string>
- <key>Path</key>
- <string>OpenShell.efi</string>
- </dict>
- <dict>
- <key>Arguments</key>
- <string>Shutdown</string>
- <key>Auxiliary</key>
- <true/>
- <key>Comment</key>
- <string>Perform shutdown</string>
- <key>Enabled</key>
- <true/>
- <key>Name</key>
- <string>Shutdown</string>
- <key>Path</key>
- <string>ResetSystem.efi</string>
- </dict>
- </array>
- </dict>
- <key>NVRAM</key>
- <dict>
- <key>Add</key>
- <dict>
- <key>4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14</key>
- <dict>
- <key>DefaultBackgroundColor</key>
- <data>AAAAAA==</data>
- <key>UIScale</key>
- <data>AQ==</data>
- </dict>
- <key>4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102</key>
- <dict>
- <key>rtc-blacklist</key>
- <data></data>
- </dict>
- <key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
- <dict>
- <key>SystemAudioVolume</key>
- <data>Rg==</data>
- <key>boot-args</key>
- <string>-v keepsyms=1 tlbto_us=0 vti=9</string>
- <key>run-efi-updater</key>
- <string>No</string>
- <key>csr-active-config</key>
- <data>ZwAAAA==</data>
- <key>prev-lang:kbd</key>
- <data>ZW4tVVM6MA==</data>
- </dict>
- </dict>
- <key>Delete</key>
- <dict>
- <key>4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14</key>
- <array>
- <string>UIScale</string>
- <string>DefaultBackgroundColor</string>
- </array>
- <key>4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102</key>
- <array>
- <string>rtc-blacklist</string>
- </array>
- <key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
- <array>
- <string>boot-args</string>
- </array>
- </dict>
- <key>LegacyEnable</key>
- <false/>
- <key>LegacyOverwrite</key>
- <false/>
- <key>LegacySchema</key>
- <dict>
- <key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
- <array>
- <string>EFILoginHiDPI</string>
- <string>EFIBluetoothDelay</string>
- <string>LocationServicesEnabled</string>
- <string>SystemAudioVolume</string>
- <string>SystemAudioVolumeDB</string>
- <string>SystemAudioVolumeSaved</string>
- <string>bluetoothActiveControllerInfo</string>
- <string>bluetoothInternalControllerInfo</string>
- <string>flagstate</string>
- <string>fmm-computer-name</string>
- <string>nvda_drv</string>
- <string>prev-lang:kbd</string>
- </array>
- <key>8BE4DF61-93CA-11D2-AA0D-00E098032B8C</key>
- <array>
- <string>Boot0080</string>
- <string>Boot0081</string>
- <string>Boot0082</string>
- <string>BootNext</string>
- <string>BootOrder</string>
- </array>
- </dict>
- <key>WriteFlash</key>
- <true/>
- </dict>
- <key>PlatformInfo</key>
- <dict>
- <key>Automatic</key>
- <true/>
- <key>Generic</key>
- <dict>
- <key>AdviseWindows</key>
- <false/>
- <key>MLB</key>
- <string>{{BOARD_SERIAL}}</string>
- <key>ROM</key>
- <data>
- {{ROM}}
- </data>
- <key>SpoofVendor</key>
- <true/>
- <key>SystemProductName</key>
- <string>{{DEVICE_MODEL}}</string>
- <key>SystemSerialNumber</key>
- <string>{{SERIAL}}</string>
- <key>SystemUUID</key>
- <string>{{UUID}}</string>
- </dict>
- <key>UpdateDataHub</key>
- <true/>
- <key>UpdateNVRAM</key>
- <true/>
- <key>UpdateSMBIOS</key>
- <true/>
- <key>UpdateSMBIOSMode</key>
- <string>Create</string>
- </dict>
- <key>UEFI</key>
- <dict>
- <key>APFS</key>
- <dict>
- <key>EnableJumpstart</key>
- <true/>
- <key>GlobalConnect</key>
- <false/>
- <key>HideVerbose</key>
- <false/>
- <key>JumpstartHotPlug</key>
- <true/>
- <key>MinDate</key>
- <integer>0</integer>
- <key>MinVersion</key>
- <integer>0</integer>
- </dict>
- <key>Audio</key>
- <dict>
- <key>AudioCodec</key>
- <integer>0</integer>
- <key>AudioDevice</key>
- <string>PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x1)</string>
- <key>AudioOut</key>
- <integer>0</integer>
- <key>AudioSupport</key>
- <false/>
- <key>MinimumVolume</key>
- <integer>20</integer>
- <key>PlayChime</key>
- <false/>
- <key>VolumeAmplifier</key>
- <integer>0</integer>
- </dict>
- <key>ConnectDrivers</key>
- <true/>
- <key>Drivers</key>
- <array>
- <string>VBoxHfs.efi</string>
- <string>OpenRuntime.efi</string>
- <string>OpenCanopy.efi</string>
- <string>#AudioDxe.efi</string>
- <string>#OpenUsbKbDxe.efi</string>
- <string>#UsbMouseDxe.efi</string>
- <string>#Ps2KeyboardDxe.efi</string>
- <string>#Ps2MouseDxe.efi</string>
- <string>#HiiDatabase.efi</string>
- <string>#NvmExpressDxe.efi</string>
- <string>#XhciDxe.efi</string>
- <string>#ExFatDxe.efi</string>
- <string>#PartitionDxe.efi</string>
- <string>#CrScreenshotDxe.efi</string>
- </array>
- <key>Input</key>
- <dict>
- <key>KeyFiltering</key>
- <false/>
- <key>KeyForgetThreshold</key>
- <integer>5</integer>
- <key>KeyMergeThreshold</key>
- <integer>2</integer>
- <key>KeySupport</key>
- <true/>
- <key>KeySupportMode</key>
- <string>Auto</string>
- <key>KeySwap</key>
- <false/>
- <key>PointerSupport</key>
- <false/>
- <key>PointerSupportMode</key>
- <string>ASUS</string>
- <key>TimerResolution</key>
- <integer>50000</integer>
- </dict>
- <key>Output</key>
- <dict>
- <key>ClearScreenOnModeSwitch</key>
- <false/>
- <key>ConsoleMode</key>
- <string></string>
- <key>DirectGopRendering</key>
- <false/>
- <key>IgnoreTextInGraphics</key>
- <false/>
- <key>ProvideConsoleGop</key>
- <true/>
- <key>ReconnectOnResChange</key>
- <false/>
- <key>ReplaceTabWithSpace</key>
- <false/>
- <key>Resolution</key>
- <string>{{WIDTH}}x{{HEIGHT}}@32</string>
- <key>SanitiseClearScreen</key>
- <false/>
- <key>TextRenderer</key>
- <string>BuiltinGraphics</string>
- <key>UgaPassThrough</key>
- <false/>
- </dict>
- <key>ProtocolOverrides</key>
- <dict>
- <key>AppleAudio</key>
- <false/>
- <key>AppleBootPolicy</key>
- <false/>
- <key>AppleDebugLog</key>
- <false/>
- <key>AppleEvent</key>
- <false/>
- <key>AppleFramebufferInfo</key>
- <false/>
- <key>AppleImageConversion</key>
- <false/>
- <key>AppleImg4Verification</key>
- <false/>
- <key>AppleKeyMap</key>
- <false/>
- <key>AppleRtcRam</key>
- <false/>
- <key>AppleSecureBoot</key>
- <false/>
- <key>AppleSmcIo</key>
- <false/>
- <key>AppleUserInterfaceTheme</key>
- <false/>
- <key>DataHub</key>
- <false/>
- <key>DeviceProperties</key>
- <false/>
- <key>FirmwareVolume</key>
- <false/>
- <key>HashServices</key>
- <false/>
- <key>OSInfo</key>
- <false/>
- <key>UnicodeCollation</key>
- <false/>
- </dict>
- <key>Quirks</key>
- <dict>
- <key>ExitBootServicesDelay</key>
- <integer>0</integer>
- <key>IgnoreInvalidFlexRatio</key>
- <false/>
- <key>ReleaseUsbOwnership</key>
- <false/>
- <key>RequestBootVarRouting</key>
- <true/>
- <key>TscSyncTimeout</key>
- <integer>0</integer>
- <key>UnblockFsConnect</key>
- <true/>
- <key>ConnectDrivers</key>
- <true/>
- </dict>
- </dict>
-</dict>
-</plist>
diff --git a/custom/generate-specific-bootdisk.sh b/custom/generate-specific-bootdisk.sh
deleted file mode 100755
index b847a50..0000000
--- a/custom/generate-specific-bootdisk.sh
+++ /dev/null
@@ -1,254 +0,0 @@
-#!/bin/bash
-# ____ __ ____ ______ __
-# / __ \____ _____/ /_____ _____/ __ \/ ___/ |/ /
-# / / / / __ \/ ___/ //_/ _ \/ ___/ / / /\__ \| /
-# / /_/ / /_/ / /__/ ,< / __/ / / /_/ /___/ / |
-# /_____/\____/\___/_/|_|\___/_/ \____//____/_/|_| GEN BOOT DISK
-#
-# Repo: https://github.com/sickcodes/Docker-OSX/
-# Title: Mac on Docker (Docker-OSX)
-# Author: Sick.Codes https://sick.codes/
-# Version: 3.1
-# License: GPLv3+
-
-help_text="Usage: generate-specific-bootdisk.sh
-
-General options:
- --model <string> Device model, e.g. 'iMacPro1,1'
- --serial <filename> Device Serial number
- --board-serial <filename> Board Serial number
- --uuid <filename> SmUUID
- --mac-address <string> Used to set the ROM value; lowercased and without a colon
- --width <string> Resolution x axis length in pixels (default 1920)
- --height <string> Resolution y axis length in pixels (default 1080
- --output-bootdisk <filename> Optionally change the bootdisk output filename
-
- --master-plist-url <url> Specify an alternative master plist, via URL.
- --custom-plist | --master-plist <filename>
- Optionally change the input plist. Placeholders:
- {{DEVICE_MODEL}}, {{SERIAL}}, {{BOARD_SERIAL}},
- {{UUID}}, {{ROM}}, {{WIDTH}}, {{HEIGHT}}
-
- --help, -h, help Display this help and exit
-
-Example:
- ./generate-specific-bootdisk.sh \
- --model iMacPro1,1 \
- --serial C02TW0WAHX87 \
- --board-serial C027251024NJG36UE \
- --uuid 5CCB366D-9118-4C61-A00A-E5BAF3BED451 \
- --mac-address A8:5C:2C:9A:46:2F \
- --output-bootdisk OpenCore-nopicker.qcow2 \
- --widht 1920 \
- --height 1080
-
-Author: Sick.Codes https://sick.codes/
-Project: https://github.com/sickcodes/Docker-OSX/
-"
-
-PLIST_MASTER=config-nopicker-custom.plist
-
-# gather arguments
-while (( "$#" )); do
- case "${1}" in
-
- --help | -h | h | help )
- echo "${help_text}" && exit 0
- ;;
-
- --model=* | -m=* )
- export DEVICE_MODEL="${1#*=}"
- shift
- ;;
- --model* | -m* )
- export DEVICE_MODEL="${2}"
- shift
- shift
- ;;
-
- --serial=* )
- export SERIAL="${1#*=}"
- shift
- ;;
- --serial* )
- export SERIAL="${2}"
- shift
- shift
- ;;
-
- --board-serial=* )
- export BOARD_SERIAL="${1#*=}"
- shift
- ;;
- --board-serial* )
- export BOARD_SERIAL="${2}"
- shift
- shift
- ;;
-
- --uuid=* )
- export UUID="${1#*=}"
- shift
- ;;
- --uuid* )
- export UUID="${2}"
- shift
- shift
- ;;
-
- --mac-address=* )
- export MAC_ADDRESS="${1#*=}"
- shift
- ;;
- --mac-address* )
- export MAC_ADDRESS="${2}"
- shift
- shift
- ;;
-
- --width=* )
- export WIDTH="${1#*=}"
- shift
- ;;
- --width* )
- export WIDTH="${2}"
- shift
- shift
- ;;
-
- --height=* )
- export HEIGHT="${1#*=}"
- shift
- ;;
- --height* )
- export HEIGHT="${2}"
- shift
- shift
- ;;
-
- --output-bootdisk=* )
- export OUTPUT_QCOW="${1#*=}"
- shift
- ;;
- --output-bootdisk* )
- export OUTPUT_QCOW="${2}"
- shift
- shift
- ;;
-
- --master-plist-url=* )
- export MASTER_PLIST_URL="${1#*=}"
- shift
- ;;
-
- --master-plist-url* )
- export MASTER_PLIST_URL="${2}"
- shift
- shift
- ;;
-
- --master-plist=* )
- export MASTER_PLIST="${1#*=}"
- shift
- ;;
- --master-plist* )
- export MASTER_PLIST="${2}"
- shift
- shift
- ;;
-
- --custom-plist=* )
- export MASTER_PLIST="${1#*=}"
- shift
- ;;
- --custom-plist* )
- export MASTER_PLIST="${2}"
- shift
- shift
- ;;
-
- *)
- echo "Invalid option. Running with default values..."
- shift
- ;;
- esac
-done
-
-
-download_qcow_efi_folder () {
- git clone --depth 1 https://github.com/kholia/OSX-KVM.git
- cp -ra ./OSX-KVM/OpenCore-Catalina/EFI .
- mkdir -p ./EFI/OC/Resources
- # clone some Apple drivers
- git clone --depth 1 https://github.com/acidanthera/OcBinaryData.git
- # copy said drivers into EFI/OC/Resources
- cp -a ./OcBinaryData/Resources/* ./EFI/OC/Resources
- # EFI Shell commands
- touch startup.nsh && echo 'fs0:\EFI\BOOT\BOOTx64.efi' > startup.nsh
-}
-
-generate_bootdisk () {
-
- if [[ "${MASTER_PLIST}" ]]; then
- [[ -e "${MASTER_PLIST}" ]] || echo "Could not find: ${MASTER_PLIST}"
- elif [[ "${MASTER_PLIST}" ]] && [[ "${MASTER_PLIST_URL}" ]]; then
- echo 'You specified both a custom plist file AND a custom plist url. Use one or the other.'
- elif [[ "${MASTER_PLIST_URL}" ]]; then
- wget -O "${MASTER_PLIST:=./config-custom.plist}" "${MASTER_PLIST_URL}" \
- || { echo "Could not download ${MASTER_PLIST_URL}" && exit 1 ; }
- else
- MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/Docker-OSX/master/custom/config-nopicker-custom.plist'
- wget -O "${MASTER_PLIST:=./config-nopicker-custom.plist}" "${MASTER_PLIST_URL}" \
- || { echo "Could not download ${MASTER_PLIST_URL}" && exit 1 ; }
- fi
-
-
- [[ -e ./opencore-image-ng.sh ]] || wget https://raw.githubusercontent.com/sickcodes/Docker-OSX/master/custom/opencore-image-ng.sh && chmod +x opencore-image-ng.sh
-
- # plist required for bootdisks, so create anyway.
- if [[ "${DEVICE_MODEL}" ]] \
- && [[ "${SERIAL}" ]] \
- && [[ "${BOARD_SERIAL}" ]] \
- && [[ "${UUID}" ]] \
- && [[ "${MAC_ADDRESS}" ]]; then
- ROM="${MAC_ADDRESS//\:/}"
- ROM="${ROM,,}"
- sed -e s/{{DEVICE_MODEL}}/"${DEVICE_MODEL}"/g \
- -e s/{{SERIAL}}/"${SERIAL}"/g \
- -e s/{{BOARD_SERIAL}}/"${BOARD_SERIAL}"/g \
- -e s/{{UUID}}/"${UUID}"/g \
- -e s/{{ROM}}/"${ROM}"/g \
- -e s/{{WIDTH}}/"${WIDTH:-1920}"/g \
- -e s/{{HEIGHT}}/"${HEIGHT:-1080}"/g \
- "${MASTER_PLIST}" > ./tmp.config.plist || exit 1
- else
- cat <<EOF
-Error: one of the following values is missing:
-
---model "${DEVICE_MODEL:-MISSING}"
---serial "${SERIAL:-MISSING}"
---board-serial "${BOARD_SERIAL:-MISSING}"
---uuid "${UUID:-MISSING}"
---mac-address "${MAC_ADDRESS:-MISSING}"
-
---width "${WIDTH:-1920}"
---height "${HEIGHT:-1080}"
-
-EOF
- exit 1
- fi
-
- ./opencore-image-ng.sh \
- --cfg "./tmp.config.plist" \
- --img "${OUTPUT_QCOW:-./${SERIAL}.OpenCore-nopicker.qcow2}" || exit 1
- rm ./tmp.config.plist
-
-}
-
-main () {
- download_qcow_efi_folder
- generate_bootdisk
-}
-
-main
-
diff --git a/custom/generate-unique-machine-values.sh b/custom/generate-unique-machine-values.sh
deleted file mode 100755
index 0c006ba..0000000
--- a/custom/generate-unique-machine-values.sh
+++ /dev/null
@@ -1,376 +0,0 @@
-#!/bin/bash
-# ____ __ ____ ______ __
-# / __ \____ _____/ /_____ _____/ __ \/ ___/ |/ /
-# / / / / __ \/ ___/ //_/ _ \/ ___/ / / /\__ \| /
-# / /_/ / /_/ / /__/ ,< / __/ / / /_/ /___/ / |
-# /_____/\____/\___/_/|_|\___/_/ \____//____/_/|_| SERIALIZER
-#
-# Repo: https://github.com/sickcodes/Docker-OSX/
-# Title: Mac on Docker (Docker-OSX)
-# Author: Sick.Codes https://sick.codes/
-# Version: 3.1
-# License: GPLv3+
-
-help_text="Usage: ./generate-unique-machine-values.sh
-
-General options:
- --count, -n, -c <count> Number of serials to generate
- --model, -m <model> Device model, e.g. 'iMacPro1,1'
- --csv <filename> Optionally change the CSV output filename
- --tsv <filename> Optionally change the TSV output filename
- --output-dir <directory> Optionally change the script output location
- --width <string> Resolution x axis length in px, default 1920
- --height <string> Resolution y axis length in px, default 1080
- --master-plist-url <url> Specify an alternative master plist, via URL
- --master-plist <filename> Optionally change the input plist
- --custom-plist <filename> Same as --master-plist
- --output-bootdisk <filename> Optionally change the bootdisk filename
- --envs Create all corresponding sourcable envs
- --plists Create all corresponding config.plists
- --bootdisks Create all corresponding bootdisks [SLOW]
- --help, -h, help Display this help and exit
-
-Additional options only if you are creating only ONE serial set:
- --output-bootdisk <filename> Optionally change the bootdisk filename
- --output-env <filename> Optionally change the serials env filename
-
-Custom plist placeholders:
- {{DEVICE_MODEL}}, {{SERIAL}}, {{BOARD_SERIAL}},
- {{UUID}}, {{ROM}}, {{WIDTH}}, {{HEIGHT}}
-
-Example:
- ./generate-unique-machine-values.sh --count 1 --plists --bootdisks --envs
-
-Defaults:
- - One serial, for 'iMacPro1,1', in the current working directory
- - CSV and TSV output
- - plists in ./plists/ & bootdisks in ./bootdisks/ & envs in ./envs
- - if you set --bootdisk name, --bootdisks is assumed
- - if you set --custom-plist, --plists is assumed
- - if you set --output-env, --envs is assumed
-
-Author: Sick.Codes https://sick.codes/
-Project: https://github.com/sickcodes/Docker-OSX/
-"
-
-MACINFOPKG_VERSION=2.1.2
-OPENCORE_IMAGE_MAKER_URL='https://raw.githubusercontent.com/sickcodes/Docker-OSX/master/custom/opencore-image-ng.sh'
-
-# gather arguments
-while (( "$#" )); do
- case "${1}" in
-
- --help | -h | h | help )
- echo "${help_text}" && exit 0
- ;;
-
- --count=* | -c=* | -n=* )
- export SERIAL_SET_COUNT="${1#*=}"
- shift
- ;;
- --count* | -c* | -n* )
- export SERIAL_SET_COUNT="${2}"
- shift
- shift
- ;;
-
- --csv=* )
- export CSV_OUTPUT_FILENAME="${1#*=}"
- shift
- ;;
- --csv* )
- export CSV_OUTPUT_FILENAME="${2}"
- shift
- shift
- ;;
-
- --tsv=* )
- export TSV_OUTPUT_FILENAME="${1#*=}"
- shift
- ;;
- --tsv* )
- export TSV_OUTPUT_FILENAME="${2}"
- shift
- shift
- ;;
-
- --output-dir=* )
- export OUTPUT_DIRECTORY="${1#*=}"
- shift
- ;;
- --output-dir* )
- export OUTPUT_DIRECTORY="${2}"
- shift
- shift
- ;;
-
- --output-bootdisk=* )
- export OUTPUT_BOOTDISK="${1#*=}"
- shift
- ;;
- --output-bootdisk* )
- export OUTPUT_QCOW="${2}"
- shift
- shift
- ;;
-
- --output-env=* )
- export OUTPUT_ENV="${1#*=}"
- shift
- ;;
- --output-env* )
- export OUTPUT_ENV="${2}"
- shift
- shift
- ;;
-
- --model=* | -m=* )
- export DEVICE_MODEL="${1#*=}"
- shift
- ;;
- --model* | -m* )
- export DEVICE_MODEL="${2}"
- shift
- shift
- ;;
-
- --width=* )
- export WIDTH="${1#*=}"
- shift
- ;;
-
- --width* )
- export WIDTH="${2}"
- shift
- shift
- ;;
-
- --height=* )
- export HEIGHT="${1#*=}"
- shift
- ;;
- --height* )
- export HEIGHT="${2}"
- shift
- shift
- ;;
-
- --master-plist-url=* )
- export MASTER_PLIST_URL="${1#*=}"
- shift
- ;;
-
- --master-plist-url* )
- export MASTER_PLIST_URL="${2}"
- shift
- shift
- ;;
-
- --master-plist=* )
- export MASTER_PLIST="${1#*=}"
- shift
- ;;
-
- --master-plist* )
- export MASTER_PLIST="${2}"
- shift
- shift
- ;;
-
- --custom-plist=* )
- export MASTER_PLIST="${1#*=}"
- shift
- ;;
-
- --custom-plist* )
- export MASTER_PLIST="${2}"
- shift
- shift
- ;;
-
- --plists )
- export CREATE_PLISTS=1
- shift
- ;;
- --bootdisks )
- export CREATE_BOOTDISKS=1
- shift
- ;;
- --envs )
- export CREATE_ENVS=1
- shift
- ;;
-
- *)
- echo "Invalid option. Running with default values..."
- shift
- ;;
- esac
-done
-
-
-build_mac_serial () {
- export MACINFOPKG_VERSION="${MACINFOPKG_VERSION:=2.1.2}"
- wget -O "${TARBALL:=./MacInfoPkg.tar.gz}" \
- "https://github.com/acidanthera/MacInfoPkg/archive/${MACINFOPKG_VERSION}.tar.gz"
- tar -xzvf "${TARBALL}"
- cd "./MacInfoPkg-${MACINFOPKG_VERSION}/macserial" \
- && ./build.tool \
- && cd -
- mv "./MacInfoPkg-${MACINFOPKG_VERSION}/macserial/bin/macserial" .
- rm -f "${TARBALL}"
- rm -rf "./MacInfoPkg-${MACINFOPKG_VERSION}/"
- chmod +x ./macserial
- stat ./macserial
-}
-
-download_vendor_mac_addresses () {
- # download the MAC Address vendor list
- [[ -e "${MAC_ADDRESSES_FILE:=vendor_macs.tsv}" ]] || wget -O "${MAC_ADDRESSES_FILE}" https://gitlab.com/wireshark/wireshark/-/raw/master/manuf
-}
-
-download_qcow_efi_folder () {
- git clone --depth 1 https://github.com/kholia/OSX-KVM.git
- cp -ra ./OSX-KVM/OpenCore-Catalina/EFI .
- mkdir -p ./EFI/OC/Resources
- # clone some Apple drivers
- git clone --depth 1 https://github.com/acidanthera/OcBinaryData.git
- # copy said drivers into EFI/OC/Resources
- cp -a ./OcBinaryData/Resources/* ./EFI/OC/Resources
- # EFI Shell commands
- touch startup.nsh && echo 'fs0:\EFI\BOOT\BOOTx64.efi' > startup.nsh
-}
-
-
-generate_serial_sets () {
-
-
-
- if [[ "${CSV_OUTPUT_FILENAME}" ]]; then
- [[ ${CSV_OUTPUT_FILENAME} ]] && export CSV_SERIAL_SETS_FILE="${CSV_OUTPUT_FILENAME}"
- elif [[ "${TSV_OUTPUT_FILENAME}" ]]; then
- [[ ${TSV_OUTPUT_FILENAME} ]] && export TSV_SERIAL_SETS_FILE="${TSV_OUTPUT_FILENAME}"
- else
- export CSV_SERIAL_SETS_FILE="${OUTPUT_DIRECTORY}/serial_sets-${DATE_NOW}.csv"
- export TSV_SERIAL_SETS_FILE="${OUTPUT_DIRECTORY}/serial_sets-${DATE_NOW}.tsv"
- fi
-
- ./macserial \
- --num "${SERIAL_SET_COUNT}" \
- --model "${DEVICE_MODEL}" \
- | while IFS='\ \|\ ' read -r SERIAL BOARD_SERIAL; do
- # make a uuid...
- UUID="$(uuidgen)"
- UUID="${UUID^^}"
-
- # get a random vendor specific MAC address.
- RANDOM_MAC_PREFIX="$(grep -e "${VENDOR_REGEX}" < "${MAC_ADDRESSES_FILE:=vendor_macs.tsv}" | sort --random-sort | head -n1)"
- RANDOM_MAC_PREFIX="$(cut -d$'\t' -f1 <<< "${RANDOM_MAC_PREFIX}")"
- MAC_ADDRESS="$(printf "${RANDOM_MAC_PREFIX}:%02X:%02X:%02X" $[RANDOM%256] $[RANDOM%256] $[RANDOM%256])"
-
- [[ -z "${WIDTH}" ]] && WIDTH=1920
- [[ -z "${HEIGHT}" ]] && HEIGHT=1080
-
- # append to csv file
- cat <<EOF >> "${CSV_SERIAL_SETS_FILE}"
-"${DEVICE_MODEL}","${SERIAL}","${BOARD_SERIAL}","${UUID}","${MAC_ADDRESS}","${WIDTH}","${HEIGHT}"
-EOF
-
- # append to tsv file
- T=$'\t'
- cat <<EOF >> "${TSV_SERIAL_SETS_FILE}"
-${DEVICE_MODEL}${T}${SERIAL}${T}${BOARD_SERIAL}${T}${UUID}${T}${MAC_ADDRESS}${T}${WIDTH}${T}${HEIGHT}
-EOF
-
- # make envs if --envs, but also if you set the env filename it will switch on by itself
- if [[ "${CREATE_ENVS}" ]] || [[ "${OUTPUT_ENV}" ]]; then
- mkdir -p "${OUTPUT_DIRECTORY}/envs"
- OUTPUT_ENV_FILE="${OUTPUT_ENV:-"${OUTPUT_DIRECTORY}/envs/${SERIAL}.env.sh"}"
- touch "${OUTPUT_ENV_FILE}"
- cat <<EOF > "${OUTPUT_ENV_FILE}"
-export DEVICE_MODEL="${DEVICE_MODEL}"
-export SERIAL="${SERIAL}"
-export BOARD_SERIAL="${BOARD_SERIAL}"
-export UUID="${UUID}"
-export MAC_ADDRESS="${MAC_ADDRESS}"
-export WIDTH="${WIDTH}"
-export HEIGHT="${HEIGHT}"
-EOF
-
- fi
-
- # plist required for bootdisks, so create anyway.
- if [[ "${CREATE_PLISTS}" ]] || [[ "${CREATE_BOOTDISKS}" ]]; then
-
- # need a config.plist
- if [[ "${MASTER_PLIST}" ]]; then
- [[ -e "${MASTER_PLIST}" ]] || echo "Could not find: ${MASTER_PLIST}"
- elif [[ "${MASTER_PLIST}" ]] && [[ "${MASTER_PLIST_URL}" ]]; then
- echo 'You specified both a custom plist FILE AND a custom plist URL. Only use one of those options.'
- elif [[ "${MASTER_PLIST_URL}" ]]; then
- wget -O "${MASTER_PLIST:=./config-custom.plist}" "${MASTER_PLIST_URL}" \
- || { echo "Could not download ${MASTER_PLIST_URL}" && exit 1 ; }
- else
- MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/Docker-OSX/master/custom/config-nopicker-custom.plist'
- wget -O "${MASTER_PLIST:=./config-nopicker-custom.plist}" "${MASTER_PLIST_URL}" \
- || { echo "Could not download ${MASTER_PLIST_URL}" && exit 1 ; }
- fi
-
- mkdir -p "${OUTPUT_DIRECTORY}/plists"
- source "${OUTPUT_ENV_FILE}"
- ROM_VALUE="${MAC_ADDRESS//\:/}"
- ROM_VALUE="${ROM_VALUE,,}"
- sed -e s/{{DEVICE_MODEL}}/"${DEVICE_MODEL}"/g \
- -e s/{{SERIAL}}/"${SERIAL}"/g \
- -e s/{{BOARD_SERIAL}}/"${BOARD_SERIAL}"/g \
- -e s/{{UUID}}/"${UUID}"/g \
- -e s/{{ROM}}/"${ROM}"/g \
- -e s/{{WIDTH}}/"${WIDTH}"/g \
- -e s/{{HEIGHT}}/"${HEIGHT}"/g \
- "${MASTER_PLIST}" > "${OUTPUT_DIRECTORY}/plists/${SERIAL}.config.plist" || exit 1
- fi
-
- # make bootdisk qcow2 format if --bootdisks, but also if you set the bootdisk filename
- if [[ "${CREATE_BOOTDISKS}" ]] || [[ "${OUTPUT_BOOTDISK}" ]]; then
- [[ -e ./opencore-image-ng.sh ]] \
- || { wget "${OPENCORE_IMAGE_MAKER_URL}" \
- && chmod +x opencore-image-ng.sh ; }
- mkdir -p "${OUTPUT_DIRECTORY}/bootdisks"
- ./opencore-image-ng.sh \
- --cfg "${OUTPUT_DIRECTORY}/plists/${SERIAL}.config.plist" \
- --img "${OUTPUT_BOOTDISK:-${OUTPUT_DIRECTORY}/bootdisks/${SERIAL}.OpenCore-nopicker.qcow2}" || exit 1
- fi
-
- done
-
- [[ -e "${CSV_SERIAL_SETS_FILE}" ]] && \
- cat <(echo "DEVICE_MODEL,SERIAL,BOARD_SERIAL,UUID,MAC_ADDRESS") "${CSV_SERIAL_SETS_FILE}"
-
-
- [[ -e "${TSV_SERIAL_SETS_FILE}" ]] && \
- cat <(printf "DEVICE_MODEL\tSERIAL\tBOARD_SERIAL\tUUID\tMAC_ADDRESS\n") "${TSV_SERIAL_SETS_FILE}"
-
-}
-
-main () {
- # setting default variables if there are no options
- export DATE_NOW="$(date +%F-%T)"
- export DEVICE_MODEL="${DEVICE_MODEL:=iMacPro1,1}"
- export VENDOR_REGEX="${VENDOR_REGEX:=Apple, Inc.}"
- export SERIAL_SET_COUNT="${SERIAL_SET_COUNT:=1}"
- export OUTPUT_DIRECTORY="${OUTPUT_DIRECTORY:=.}"
- cat <<EOF
-DEVICE_MODEL: ${DEVICE_MODEL}
-SERIAL_SET_COUNT: ${SERIAL_SET_COUNT}
-OUTPUT_DIRECTORY: ${OUTPUT_DIRECTORY}
-EOF
- [[ -d "${OUTPUT_DIRECTORY}" ]] || mkdir -p "${OUTPUT_DIRECTORY}"
- [[ -e ./macserial ]] || build_mac_serial
- download_vendor_mac_addresses
- download_qcow_efi_folder
- generate_serial_sets
- echo "${SERIAL_SETS_FILE}"
-}
-
-main
-
diff --git a/custom/opencore-image-ng.sh b/custom/opencore-image-ng.sh
deleted file mode 100755
index 56eaa45..0000000
--- a/custom/opencore-image-ng.sh
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/usr/bin/env 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 384M
- fish add $img
- fish run
-}
-
-function fish_fini() {
- fish umount-all
-}
-
-# disabled by sick.codes to allow unattended image overwrites
-######################################################################
-# sanity checks
-
-# 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 local folder"
-BASE="$(dirname $0)"
-cp -a $BASE/EFI $WORK
-find "$WORK"
-
-#msg "[debug] list drivers in EFI/OC"
-#(cd $WORK/EFI/OC; 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 300000
-fish part-add /dev/sda p 302048 -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:OpenCoreBoo
-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/OC
-fish mkdir /ESP/EFI/OC/Kexts
-fish mkdir /ESP/EFI/OC/ACPI
-fish mkdir /ESP/EFI/OC/Resources
-fish mkdir /ESP/EFI/OC/Tools
-fish copy-in $WORK/EFI/BOOT /ESP/EFI
-fish copy-in $WORK/EFI/OC/OpenCore.efi /ESP/EFI/OC
-fish copy-in $WORK/EFI/OC/Drivers /ESP/EFI/OC/
-fish copy-in $WORK/EFI/OC/Kexts /ESP/EFI/OC/
-fish copy-in $WORK/EFI/OC/ACPI /ESP/EFI/OC/
-fish copy-in $WORK/EFI/OC/Resources /ESP/EFI/OC/
-fish copy-in $WORK/EFI/OC/Tools /ESP/EFI/OC/
-
-# Note
-fish copy-in startup.nsh /
-
-BASE="$(dirname $0)"
-fish copy-in "$WORK/config.plist" /ESP/EFI/OC/
-
-fish find /ESP/
-fish_fini
diff --git a/osx-serial-generator b/osx-serial-generator
new file mode 160000
+Subproject 0149015547a26b991fc6035972dae75357dc68a