apiVersion: v1 kind: ConfigMap metadata: name: {{ template "docker-osx.fullname" . }}-boot-components data: config.plist: |- <?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>EnĂ¥abled</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> {{- if .Values.qemu.hardwareGpu.enabled }} <dict> <key>BundlePath</key> <string>mXHCD.kext</string> <key>Comment</key> <string>Hello There</string> <key>Enabled</key> <true/> <key>ExecutablePath</key> <string>Contents/MacOS/mXHCD</string> <key>MaxKernel</key> <string></string> <key>MinKernel</key> <string></string> <key>PlistPath</key> <string>Contents/Info.plist</string> </dict> {{- end }} <dict> <key>Arch</key> <string>x86_64</string> <key>BundlePath</key> <string>VoodooHDA.kext</string> <key>Comment</key> <string>Patch engine</string> {{- if .Values.qemu.audio.enabled }} <key>Enabled</key> {{- else -}} <key>Disabled</key> {{- end }} <false/> <key>ExecutablePath</key> <string>Contents/MacOS/VoodooHDA</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>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>Arch</key> <string>x86_64</string> <key>BundlePath</key> <string>AppleALC.kext</string> <key>Comment</key> <string>Audio patches</string> <key>Enabled</key> <true/> <key>ExecutablePath</key> <string>Contents/MacOS/AppleALC</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> {{- if .Values.macos.kexts.add }} {{- range .Values.macos.kexts.kextsToAdd }} <dict> <key>Arch</key> <string>Any</string> <key>BundlePath</key> <string>{{ .name }}</string> <key>Comment</key> <string></string> <key>Enabled</key> <true/> <key>ExecutablePath</key> <string>{{ .executablePath }}</string> <key>MaxKernel</key> <string></string> <key>MinKernel</key> <string></string> <key>PlistPath</key> <string>{{ .plistPath }}</string> </dict> {{- end }} {{- end }} </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> {{- if .Values.qemu.hardwareGpu.enabled }} <key>Cpuid1Data</key> <data> VwYFAAAAAAAAAAAAAAAAAA== </data> <key>Cpuid1Mask</key> <data> /////wAAAAAAAAAAAAAAAA== </data> {{- else -}} <key>Cpuid1Data</key> <data> VAYFAAAAAAAAAAAAAAAAAA== </data> <key>Cpuid1Mask</key> <data> ////AAAAAAAAAAAAAAAAAA== </data> {{- end }} </dict> <key>Force</key> <array> {{- if .Values.qemu.hardwareGpu.enabled }} <dict> <key>Base</key> <string></string> <key>Comment</key> <string>algrey - cpuid_set_generic_info - disable check to allow leaf7</string> <key>Count</key> <integer>1</integer> <key>Enabled</key> <true/> <key>Find</key> <data>ADoPgg==</data> <key>Identifier</key> <string>kernel</string> <key>Limit</key> <integer>0</integer> <key>Mask</key> <data></data> <key>MaxKernel</key> <string>19.99.99</string> <key>MinKernel</key> <string>17.0.0</string> <key>Replace</key> <data>AAAPgg==</data> <key>ReplaceMask</key> <data></data> <key>Skip</key> <integer>0</integer> </dict> {{- else -}} <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> {{- end }} </array> <key>Patch</key> <array> {{- if .Values.qemu.hardwareGpu.enabled }} <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>19.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> {{- else -}} <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> {{- end }} <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/> {{- if .Values.qemu.hardwareGpu.enabled }} <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> {{- else -}} <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> {{- end }} <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> {{- if .Values.qemu.hardwareGpu.enabled }} <dict> <key>Base</key> <string></string> <key>Comment</key> <string>algrey - - skip cpuid_cores_per_package test -10.15</string> <key>Count</key> <integer>0</integer> <key>Enabled</key> <true/> <key>Find</key> <data>gz0AAAAAAA8AAAAAAItdvA==</data> <key>Identifier</key> <string>kernel</string> <key>Limit</key> <integer>0</integer> <key>Mask</key> <data>//8AAAD///8AAAAA/////w==</data> <key>MaxKernel</key> <string>19.99.99</string> <key>MinKernel</key> <string>19.0.0</string> <key>Replace</key> <data>AAAAAAAAAQAAAAAAAAAAAA==</data> <key>ReplaceMask</key> <data>AAAAAAAADwAAAAAAAAAAAA==</data> <key>Skip</key> <integer>0</integer> </dict> <dict> <key>Base</key> <string></string> <key>Comment</key> <string>algrey - - skip cpuid_cores_per_package test</string> <key>Count</key> <integer>0</integer> <key>Enabled</key> <true/> <key>Find</key> <data>gz0AAAAAAHQAi128</data> <key>Identifier</key> <string>kernel</string> <key>Limit</key> <integer>0</integer> <key>Mask</key> <data>//8AAAD///8A////</data> <key>MaxKernel</key> <string>18.99.99</string> <key>MinKernel</key> <string>17.0.0</string> <key>Replace</key> <data>AAAAAAAAAQAAAAAA</data> <key>ReplaceMask</key> <data>AAAAAAAADwAAAAAA</data> <key>Skip</key> <integer>0</integer> </dict> {{- end }} </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> {{- if not .Values.qemu.hardwareGpu.enabled }} <dict> <key>FuzzyMatch</key> <true/> <key>KernelArch</key> <string>x86_64</string> <key>KernelCache</key> <string>Auto</string> </dict> {{- end }} </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>PickerVariant</key> <string>Modern</string> <key>PickerAudioAssist</key> <false/> <key>PickerMode</key> <string>External</string> <key>PollAppleHotKeys</key> <true/> <key>ShowPicker</key> <true/> <key>TakeoffDelay</key> <integer>0</integer> <key>Timeout</key> <integer>{{ .Values.macos.openCore.boot.timeout }}</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>{{ .Values.macos.configPlist.bootArgs }}</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>{{ .Values.macos.configPlist.MLB }}</string> <key>ROM</key> <data> m7zhIYfl </data> <key>SpoofVendor</key> <true/> <key>SystemProductName</key> <string>{{ .Values.macos.configPlist.SystemProductName }}</string> <key>SystemSerialNumber</key> <string>{{ .Values.macos.configPlist.SystemSerialNumber }}</string> <key>SystemUUID</key> <string>{{ .Values.macos.configPlist.SystemUUID }}</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> <true/> <key>JumpstartHotPlug</key> <false/> <key>MinDate</key> <integer>-1</integer> <key>MinVersion</key> <integer>-1</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>{{ .Values.vnc.resolution }}</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>DeduplicateBootOrder</key> <true/> <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> <false/> </dict> </dict> </dict> </plist> Launch_custom.sh: |- #/bin/sh # Add extra kexts to EFI/OC/kexts {{- if .Values.macos.kexts.add }} {{- range .Values.macos.kexts.kextsToAdd }} {{- $rangeItem := . -}} {{- with $ }} echo 'Installing kext {{ $rangeItem.name }}..' cp -r "{{ .Values.macos.kexts.path }}/{{ $rangeItem.name }}" /home/{{ .Values.image.userName }}/OSX-KVM/OpenCore-Catalina/EFI/OC/Kexts/ sudo chmod 755 /home/{{ .Values.image.userName }}/OSX-KVM/OpenCore-Catalina/EFI/OC/Kexts/{{ $rangeItem.name }} {{- end }} {{- end }} {{- end }} # Rebuild Opencore.qcow2 after making changes to config.plist and etc.. {{- if .Values.macos.openCore.rebuild }} echo 'Building new Opencore.qcow2..' pushd OpenCore-Catalina/ mkdir -p EFI/OC/Resources rm -f OpenCore.qcow2 sudo ./opencore-image-ng.sh \ --cfg config.plist \ --img OpenCore.qcow2 sudo chown {{ .Values.image.userName }}:{{ .Values.image.userName }} OpenCore.qcow2 popd {{- end }} if ! [ -d "{{ .Values.macos.installerSettings.path }}" ]; then mkdir -p {{ .Values.macos.installerSettings.path }} fi if ! [ -d "/system_image/{{ .Values.serverName }}" ]; then mkdir -p "/system_image/{{ .Values.serverName }}" fi # Download and build installer image if no system drive found.. if ! [ -f "{{ .Values.macos.installerSettings.path }}/BaseSystem{{ .Values.macos.installerSettings.version }}.img" ]; then echo "Downloading {{ .Values.macos.installerSettings.version }} base image.." python fetch-macOS.py --version {{ .Values.macos.installerSettings.version }} echo 'Converting downloaded BaseSystem.dmg into BaseSystem{{ .Values.macos.installerSettings.version }}.img and saving in {{ .Values.qemu.systemInstaller.path }}' qemu-img convert BaseSystem.dmg -O qcow2 -p -c {{ .Values.macos.installerSettings.path }}/BaseSystem{{ .Values.qemu.systemInstaller.version }}.img rm -f BaseSystem.dmg else echo 'Base Image downloaded and converted into img already..' fi if ! [ -f "/system_image/{{ .Values.serverName }}/mac_hdd_ng.img" ]; then echo "Creating a {{ .Values.qemu.systemDisk.size }} /system_image/{{ .Values.serverName }}/mac_hdd_ng.img for system partition.." qemu-img create -f qcow2 /system_image/{{ .Values.serverName }}/mac_hdd_ng.img "{{ .Values.qemu.systemDisk.size }}" echo 'Finished creating system partition!' else echo 'Image already created. Skipping creation..' fi # # Fix permissions on usb devices.. # {{- if .Values.qemu.usb }} # {{- range .Values.qemu.usb }} # echo "Updating permissions to r/w for /dev/bus/usb/$(lsusb | grep {{ .vendorId}}:{{ .productId }} | grep -o -P 'Bus.{0,4}' | tail -c 4)/$(lsusb | grep {{ .vendorId}}:{{ .productId }} | grep -o -P 'Device.{0,4}' | tail -c 4).." # sudo chmod 666 /dev/bus/usb/$(lsusb | grep {{ .vendorId}}:{{ .productId }} | grep -o -P 'Bus.{0,4}' | tail -c 4)/$(lsusb | grep {{ .vendorId}}:{{ .productId }} | grep -o -P 'Device.{0,4}' | tail -c 4) # {{- end }} # {{- end }} # Start VNC.. {{- if .Values.vnc.enabled }} echo 'geometry={{ .Values.vnc.resolution }} localhost alwaysshared' > ~/.vnc/config sudo rm -f /tmp/.X99-lock export DISPLAY=:99 vncpasswd -f < vncpasswd_file > ${HOME}/.vnc/passwd /usr/bin/Xvnc -geometry {{ .Values.vnc.resolution }} -rfbauth "${HOME}/.vnc/passwd" :99 &\ sudo chmod 600 ~/.vnc/passwd {{- end }} sudo chown {{ .Values.image.userName }}:{{ .Values.image.userName }} /dev/kvm {{- if .Values.qemu.hardwareGpu.enabled }} sudo chown {{ .Values.image.userName }}:{{ .Values.image.userName }} -R /dev/vfio {{- end }} # Start QEMU.. echo 'Starting QEMU..' set -eu sudo chown $(id -u):$(id -g) /dev/kvm 2>/dev/null || true sudo chown -R $(id -u):$(id -g) /dev/snd 2>/dev/null || true exec qemu-system-x86_64 -m {{ .Values.resources.requests.memory | trimSuffix "i" }} \ -cpu {{ .Values.qemu.cpu }} \ -machine q35,accel=kvm:tcg \ {{- if .Values.qemu.hardwareGpu.enabled }} -device pcie-root-port,bus=pcie.0,multifunction=on,port=1,chassis=1,id=port.1 \ {{- if .Values.qemu.hardwareGpu.romfile }} -device vfio-pci,host={{ .Values.qemu.hardwareGpu.hardwareId }}.0,bus=port.1,multifunction=on,romfile={{ .Values.qemu.hardwareGpu.romfile}} \ {{- else -}} -device vfio-pci,host={{ .Values.qemu.hardwareGpu.hardwareId }}.0,multifunction=on \ {{- end }} -device vfio-pci,host={{ .Values.qemu.hardwareGpu.hardwareId }}.1,bus=port.1 \ {{- else -}} -vga {{ .Values.qemu.softwareGpu }} \ {{- end }} -smp {{ .Values.resources.requests.cpu }},cores={{ .Values.resources.requests.cpu }} \ {{- if .Values.vnc.enabled }} -usb -device usb-kbd -device usb-tablet \ {{- else -}} -vga none \ -display none \ {{- end }} -device isa-applesmc,osk=ourhardworkbythesewordsguardedpleasedontsteal\(c\)AppleComputerInc \ -drive if=pflash,format=raw,readonly,file=/home/{{ .Values.image.userName }}/OSX-KVM/OVMF_CODE.fd \ -drive if=pflash,format=raw,file=/home/{{ .Values.image.userName }}/OSX-KVM/OVMF_VARS-1024x768.fd \ -smbios type=2 \ {{- if .Values.qemu.audio.enabled }} -audiodev {{ .Values.qemu.audio.driver }},id=hda \ -device ich9-intel-hda \ -device hda-duplex,audiodev=hda \ {{- end }} -device ich9-ahci,id=sata \ -drive id=OpenCoreBoot,if=none,snapshot=on,format=qcow2,file=/home/{{ .Values.image.userName }}/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2 \ -device ide-hd,bus=sata.2,drive=OpenCoreBoot \ {{- if .Values.qemu.systemInstaller.enabled }} -device ide-hd,bus=sata.3,drive=InstallMedia \ -drive id=InstallMedia,if=none,file={{ .Values.macos.installerSettings.path }}/BaseSystem{{ .Values.macos.installerSettings.version }}.img,format=qcow2 \ {{- end }} -drive id=MacHDD,if=none,file=/system_image/{{ .Values.serverName }}/mac_hdd_ng.img,format=qcow2 \ -device ide-hd,bus=sata.4,drive=MacHDD \ -netdev user,id=net0,hostfwd=tcp::${INTERNAL_SSH_PORT:-10022}-:22,hostfwd=tcp::${SCREEN_SHARE_PORT:-5900}-:5900,{{ .Values.qemu.netdev.extraPortForwarding }} \ -device e1000-82545em,netdev=net0,id=net0,mac=52:54:00:09:49:17 \ {{- range .Values.qemu.usb }} -usb -device usb-host,productid=0x{{ .productId }},vendorid=0x{{ .vendorId }} \ {{- end }} {{- range .Values.qemu.extraArgs }} {{ . }} \ {{- end }} ${EXTRA:-} vncpasswd_file: |- {{ .Values.vnc.password }} limits.conf: |- #This file sets the resource limits for the users logged in via PAM. #It does not affect resource limits of the system services. # #Also note that configuration files in /etc/security/limits.d directory, #which are read in alphabetical order, override the settings in this #file in case the domain is the same or more specific. #That means, for example, that setting a limit for wildcard domain here #can be overriden with a wildcard setting in a config file in the #subdirectory, but a user specific setting here can be overriden only #with a user specific setting in the subdirectory. # #Each line describes a limit for a user in the form: # #<domain> <type> <item> <value> # #Where: #<domain> can be: # - a user name # - a group name, with @group syntax # - the wildcard *, for default entry # - the wildcard %, can be also used with %group syntax, # for maxlogin limit # #<type> can have the two values: # - "soft" for enforcing the soft limits # - "hard" for enforcing hard limits # #<item> can be one of the following: # - core - limits the core file size (KB) # - data - max data size (KB) # - fsize - maximum filesize (KB) # - memlock - max locked-in-memory address space (KB) # - nofile - max number of open file descriptors # - rss - max resident set size (KB) # - stack - max stack size (KB) # - cpu - max CPU time (MIN) # - nproc - max number of processes # - as - address space limit (KB) # - maxlogins - max number of logins for this user # - maxsyslogins - max number of logins on the system # - priority - the priority to run user process with # - locks - max number of file locks the user can hold # - sigpending - max number of pending signals # - msgqueue - max memory used by POSIX message queues (bytes) # - nice - max nice priority allowed to raise to values: [-20, 19] # - rtprio - max realtime priority # #<domain> <type> <item> <value> # #* soft core 0 #* hard rss 10000 #@student hard nproc 20 #@faculty soft nproc 20 #@faculty hard nproc 50 #ftp hard nproc 0 #@student - maxlogins 4 @{{ .Values.image.userName }} soft memlock unlimited @{{ .Values.image.userName }} hard memlock unlimited # End of file