{"id":13622812,"url":"https://github.com/sickcodes/osx-serial-generator","last_synced_at":"2025-05-14T13:09:16.071Z","repository":{"id":38850141,"uuid":"344693546","full_name":"sickcodes/osx-serial-generator","owner":"sickcodes","description":"Mac Serial Generator - Generate complete sets of Serial Numbers for OSX-KVM, Docker-OSX and of course, OpenCore.","archived":false,"fork":false,"pushed_at":"2025-03-30T11:00:06.000Z","size":678,"stargazers_count":1631,"open_issues_count":11,"forks_count":162,"subscribers_count":99,"default_branch":"master","last_synced_at":"2025-05-07T21:52:06.065Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sickcodes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"sickcodes"}},"created_at":"2021-03-05T04:26:22.000Z","updated_at":"2025-05-02T01:13:29.000Z","dependencies_parsed_at":"2025-04-15T03:37:24.612Z","dependency_job_id":"e4f243ca-aacd-4f60-973d-f0fe69a8c9a2","html_url":"https://github.com/sickcodes/osx-serial-generator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sickcodes%2Fosx-serial-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sickcodes%2Fosx-serial-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sickcodes%2Fosx-serial-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sickcodes%2Fosx-serial-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sickcodes","download_url":"https://codeload.github.com/sickcodes/osx-serial-generator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254149975,"owners_count":22022852,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T21:01:24.370Z","updated_at":"2025-05-14T13:09:11.047Z","avatar_url":"https://github.com/sickcodes.png","language":"Shell","funding_links":["https://github.com/sponsors/sickcodes"],"categories":["Shell","HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"# OSX Serial Generator\n\n![Running mac osx in a docker container](/running-mac-inside-docker-qemu.png?raw=true \"OSX KVM DOCKER\")\n\nGenerate macOS valid serials, uuids, and board serials for good-faith Security Research \u0026 Apple Bug Bounty Research.\n\nThis project provides two tools for generating serial numbers for Hackintosh, [OpenCore](https://github.com/acidanthera/OpenCorePkg), [Docker-OSX](https://github.com/sickcodes/Docker-OSX) and [OSX-KVM](https://github.com/kholia/OSX-KVM).\n\nAuthor: Sick.Codes https://github.com/sickcodes | https://sick.codes | https://twitter.com/sickcodes\n\n### Follow @sickcodes on Twitter for updates! [https://twitter.com/sickcodes](https://twitter.com/sickcodes)\n\nTerms \u0026 Conditions: Manipulation of serial numbers are an important aspect of conducting Cyber Security Research into the iMessage \u0026 Facetime frameworks. Finding and reporting vulnerabilities in Apple software before Threat Actors do is important. To use this project to find \u0026 discover vulnerabilities in said protocols, you should agree to [Apple's Security Bounty program](https://developer.apple.com/security-bounty/requirements/).\n\n### Upstream Thanks\n\nThis project was created for use with [Docker-OSX](https://github.com/sickcodes/Docker-OSX) and uses `config.plist` files from [@Kholia](https://github.com/kholia)'s project https://github.com/kholia/OSX-KVM.\n\nThe `config.plist` files are also curated and maintained upstream by [@thenickdude](https://github.com/thenickdude) and we thank both of them for their excellent work. Upstream KVM changes are made at: [https://github.com/thenickdude/KVM-Opencore](https://github.com/thenickdude/KVM-Opencore)\n\nThis project is a wrapper for the [OpenCore project](https://dortania.github.io/getting-started/) bootloader's fantastic tool called [macserial](https://github.com/acidanthera/OpenCorePkg/tree/master/Utilities/macserial).\n\nMany thanks to the [OpenCore Project](https://dortania.github.io/getting-started/) for providing `macserial`.\n\nSee the project which drives Hackintosh: [https://github.com/acidanthera/OpenCorePkg](https://github.com/acidanthera/OpenCorePkg)\n\nAs seen on Vice: [Open-Source App Lets Anyone Create a Virtual Army of Hackintoshes](https://www.vice.com/en/article/akdmb8/open-source-app-lets-anyone-create-a-virtual-army-of-hackintoshes)\n\n### PR \u0026 Contributor Credits\n\nhttps://github.com/sickcodes/osx-serial-generator/blob/master/CREDITS.md\n\n## Related\n\n- [Docker-OSX](https://github.com/sickcodes/Docker-OSX)\n- [OSX-KVM](https://github.com/kholia/OSX-KVM)\n- [KVM-Opencore](https://github.com/thenickdude/KVM-Opencore)\n- [OpenCore](https://github.com/acidanthera/OpenCorePkg)\n- [Hackintosh](https://www.reddit.com/r/hackintosh/)\n\n# Purpose\n\nThese shell scripts were written by [@sickcodes](https://github.com/sickcodes) [https://twitter.com/sickcodes](https://twitter.com/sickcodes) and were created for automating the generation of unique \u0026 valid values at runtime in [Docker-OSX](https://github.com/sickcodes/Docker-OSX).\n\nThis is for generating sets of serial numbers that simply work.\n\nIf this is your first time, just `bash ./generate-unique-machine-values.sh` and you will be given 1 complete serial number set.\n\nWith your new serial numbers, you can:\n- put them in your existing `config.plist` and reboot\n- tell the script to make a new `OpenCore.qcow2`\n- output as TSV and CSV, and more!\n- use `--help` to see all available goodies\n\nUsed at runtime in [Docker-OSX](https://github.com/sickcodes/Docker-OSX).\n\n- [https://github.com/kholia/OSX-KVM](https://github.com/kholia/OSX-KVM): \"Run macOS on QEMU/KVM. With OpenCore + Big Sur support now! Only commercial (paid) support is available.\"\n\n- [https://github.com/sickcodes/Docker-OSX](https://github.com/sickcodes/Docker-OSX): \"Run Mac in a Docker! Run near native OSX-KVM in Docker! X11 Forwarding! CI/CD for OS X!\"\n\n- [https://github.com/thenickdude/KVM-Opencore](https://github.com/thenickdude/KVM-Opencore): \"OpenCore disk image for Proxmox/QEMU\"\n\n# Requirements\n\n```bash\n# Ubuntu, Debian, Pop\nsudo apt update -y\nsudo apt install libguestfs-tools build-essential wget git linux-generic gcc uuid-runtime sudo -y\n\n# Fedora, RHEL, CentOS\nsudo yum install libguestfs libguestfs-tools wget git kernel-devel gcc sudo -y\nsudo yum groupinstall 'Development Tools' -y\n\n# Arch, Manjaro\nsudo pacman -Sy libguestfs wget git base-devel linux gcc sudo\n\n```\n\n# Generating New Unique Serial Numbers\n\nExample \n\n```bash\n# make 1 full serial set \n./generate-unique-machine-values.sh \\\n    -c 1 \\\n    --model=\"iMacPro1,1\"\n```\n\nDone!\n\nCSV file and TSV file should be saved in your current working directory.\n\nSlip those values into your config.plist and reboot!\n\n## Extended options  - Automation?\n\n### Need more serials?\n\n```bash\ngit clone https://github.com/sickcodes/osx-serial-generator\ncd osx-serial-generator\n\n# make 100 serial sets\n./generate-unique-machine-values.sh \\\n    -c 100 \\\n    --model=\"iMacPro1,1\"\n```\n\n### Want to make 50 OpenCore bootdisks AND 50 output plists?\n\n```bash\n# make 5 serial sets\n# but also make config.plist for each set\n# and OpenCore-nopicker.qcow2 for each serial set.\n./generate-unique-machine-values.sh \\\n    -c 50 \\\n    --create-plists \\\n    --create-bootdisks\n```\n\n## Already have your own `config.plist`?\n\nIf you want to automate creating the qcow bootdisk each time, you can use placeholders and let this script build the image each time you change anything.\n\nIf you want to use placeholders, you can supply that to either of the scripts in this repo and use:\n\n`--custom-plist=./my_config.plist`\n\n```bash\n# make 5 serial sets\n# but also use my config.plist for each set\n# AND make qcow2 image for each set!\n./generate-unique-machine-values.sh \\\n    -c 5 \\\n    --custom-plist=./my_config.plist \\\n    --create-bootdisks\n```\n\nYou can also use an URL for the input plist using:\n\n`--master-plist-url`.\n\nOr you can manually enter the values generated above:\n\n```xml\n    \u003ckey\u003eMLB\u003c/key\u003e\n    \u003cstring\u003e{{BOARD_SERIAL}}\u003c/string\u003e\n    \u003ckey\u003eROM\u003c/key\u003e\n    \u003cdata\u003e{{ROM}}\u003c/data\u003e\n    \u003ckey\u003eSpoofVendor\u003c/key\u003e\n    \u003ctrue/\u003e\n    \u003ckey\u003eSystemProductName\u003c/key\u003e\n    \u003cstring\u003e{{DEVICE_MODEL}}\u003c/string\u003e\n    \u003ckey\u003eSystemSerialNumber\u003c/key\u003e\n    \u003cstring\u003e{{SERIAL}}\u003c/string\u003e\n    \u003ckey\u003eSystemUUID\u003c/key\u003e\n    \u003cstring\u003e{{UUID}}\u003c/string\u003e\n    ...\n    ...\n    ...\n    \u003cstring\u003e{{WIDTH}}x{{HEIGHT}}@32\u003c/string\u003e\n    ...\n    ...\n    ...\n    \u003ckey\u003eboot-args\u003c/key\u003e\n    \u003cstring\u003e-v keepsyms=1 tlbto_us=0 vti=9 {{KERNEL_ARGS}}\u003c/string\u003e\n\n```\n```\n    {{DEVICE_MODEL}}, {{SERIAL}}, {{BOARD_SERIAL}},\n    {{UUID}}, {{ROM}}, {{WIDTH}}, {{HEIGHT}}, {{KERNEL_ARGS}}\n```\n\n```bash\nGeneral options:\n    --count, -n, -c \u003ccount\u003e         Number of serials to generate\n    --model, -m \u003cmodel\u003e             Device model, e.g. 'iMacPro1,1'\n    --csv \u003cfilename\u003e                Optionally change the CSV output filename\n    --tsv \u003cfilename\u003e                Optionally change the TSV output filename\n    --output-dir \u003cdirectory\u003e        Optionally change the script output location\n    --width \u003cstring\u003e                Resolution x axis length in px, default 1920\n    --height \u003cstring\u003e               Resolution y axis length in px, default 1080\n    --kernel-args \u003cstring\u003e          Additional boot-args\n    --master-plist-url \u003curl\u003e        Specify an alternative master plist, via URL\n    --master-plist \u003cfilename\u003e       Optionally change the input plist\n    --custom-plist \u003cfilename\u003e       Same as --master-plist\n    --output-bootdisk \u003cfilename\u003e    Optionally change the bootdisk filename\n    --envs                          Create all corresponding sourcable envs\n    --plists                        Create all corresponding config.plists\n    --bootdisks                     Create all corresponding bootdisks [SLOW]\n    --help, -h, help                Display this help and exit\n\nAdditional options only if you are creating ONE serial set:\n    --output-bootdisk \u003cfilename\u003e    Optionally change the bootdisk filename\n    --output-env \u003cfilename\u003e         Optionally change the serials env filename\n\nCustom plist placeholders:\n    {{DEVICE_MODEL}}, {{SERIAL}}, {{BOARD_SERIAL}},\n    {{UUID}}, {{ROM}}, {{WIDTH}}, {{HEIGHT}}, {{KERNEL_ARGS}}\n\nExample:\n    ./generate-unique-machine-values.sh --count 1 --plists --bootdisks --envs\n\nDefaults:\n    - One serial, for 'iMacPro1,1', in the current working directory\n    - CSV and TSV output\n    - plists in ./plists/ \u0026 bootdisks in ./bootdisks/ \u0026 envs in ./envs\n    - if you set --bootdisk name, --bootdisks is assumed\n    - if you set --custom-plist, --plists is assumed\n    - if you set --output-env, --envs is assumed\n\n```\n\n# Generating A Bootdisk Using Specific Serial Numbers\n\nIf you already know the serial numbers, or you've generated them above in the past, then you can use this script:\n\n```bash\n\nRequired options:\n    --model \u003cstring\u003e                Device model, e.g. 'iMacPro1,1'\n    --serial \u003cstring\u003e               Device Serial number\n    --board-serial \u003cstring\u003e         Main Logic Board Serial number (MLB)\n    --uuid \u003cstring\u003e                 SMBIOS UUID (SmUUID)\n    --mac-address \u003cstring\u003e          Used for both the MAC address and to set ROM\n                                    ROM is lowercased sans any colons\nOptional options:\n    --width \u003cinteger\u003e               Resolution x axis length in px, default 1920\n    --height \u003cinteger\u003e              Resolution y axis length in px, default 1080\n    --kernel-args \u003cstring\u003e          Additional boot-args\n    --master-plist-url \u003curl\u003e        Specify an alternative master plist, via URL\n    --custom-plist \u003cfilename\u003e       \n       || --master-plist \u003cfilename\u003e Optionally change the input plist.\n    --output-bootdisk \u003cfilename\u003e    Optionally change the bootdisk filename\n    --output-plist \u003cfilename\u003e       Optionally change the output plist filename\n    --help, -h, help                Display this help and exit\n\nPlaceholders:   {{DEVICE_MODEL}}, {{SERIAL}}, {{BOARD_SERIAL}}, {{UUID}},\n                {{ROM}}, {{WIDTH}}, {{HEIGHT}}, {{KERNEL_ARGS}}\n```\n\nExample using your serials generated earlier:\n\n```bash\nCUSTOM_PLIST=https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-nopicker-custom.plist\n\n./generate-specific-bootdisk.sh \\\n    --input-plist-url=\"${CUSTOM_PLIST}\" \\\n    --model iMacPro1,1 \\\n    --serial C02TW0WAHX87 \\\n    --board-serial C027251024NJG36UE \\\n    --uuid 5CCB366D-9118-4C61-A00A-E5BAF3BED451 \\\n    --mac-address A8:5C:2C:9A:46:2F \\\n    --output-bootdisk ./OpenCore-nopicker.qcow2 \\\n    --width 1920 \\\n    --height 1080 \\\n    --kernel-args \"-pmap_trace\"\n```\n\n\n# Examples from Docker-OSX\n\nIn the case example of why these scripts were written is:\n\n`GENERATE_UNIQUE` is used as a Docker argument to randomly generate 1 set at runtime, for every new container.\n\n`GENERATE_SPECIFIC` is used to specify an already known model, serial, board-serial, uuid and MAC address.\n\n```bash\n[[ \"${GENERATE_UNIQUE}\" == true ]] \u0026\u0026 { \\\n    ./Docker-OSX/custom/generate-unique-machine-values.sh \\\n        --master-plist-url=\"${MASTER_PLIST_URL}\" \\\n        --count 1 \\\n        --tsv ./serial.tsv \\\n        --bootdisks \\\n        --width \"${WIDTH:-1920}\" \\\n        --height \"${HEIGHT:-1080}\" \\\n        --output-bootdisk \"${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}\" \\\n        --output-env \"${ENV:=/env}\" \\\n; } \\\n; [[ \"${GENERATE_SPECIFIC}\" == true ]] \u0026\u0026 { \\\n        source \"${ENV:=/env}\" 2\u003e/dev/null \\\n        ; ./Docker-OSX/custom/generate-specific-bootdisk.sh \\\n        --master-plist-url=\"${MASTER_PLIST_URL}\" \\\n        --model \"${DEVICE_MODEL}\" \\\n        --serial \"${SERIAL}\" \\\n        --board-serial \"${BOARD_SERIAL}\" \\\n        --uuid \"${UUID}\" \\\n        --mac-address \"${MAC_ADDRESS}\" \\\n        --width \"${WIDTH:-1920}\" \\\n        --height \"${HEIGHT:-1080}\" \\\n        --output-bootdisk \"${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}\"\n```\n\n\n# Special Update Notes\n\n2021-10-28 - `OpenCore-Catalina/OpenCore.qcow2` was moved to `OpenCore/OpenCore.qcow2` in [https://github.com/kholia/OSX-KVM/commit/1cc6430f96b452cb78b9a079c34bb9933144ce18](https://github.com/kholia/OSX-KVM/commit/1cc6430f96b452cb78b9a079c34bb9933144ce18)\n\n\n2021-06-15 - On June 15th 2021 we updated the config.plist from v12 to v13 via [@thenickdude](https://github.com/thenickdude)'s upstream `config.plist` files from [KVM-Opencore](https://github.com/thenickdude/KVM-Opencore).\n\n\n```bash\nwget https://github.com/thenickdude/KVM-Opencore/compare/v12...v13.patch\n\npatch -F 10 -p1 --verbose config-nopicker-custom.plist v12...v13.patch\n\npatch -F 10 -p1 --verbose config-custom.plist v12...v13.patch\n\n```\n\nRejected patch lines:\n```patch\n--- EFI/OC/config.plist\n+++ EFI/OC/config.plist\n@@ -644,43 +644,6 @@\n        \u003c/array\u003e\n        \u003ckey\u003ePatch\u003c/key\u003e\n        \u003carray\u003e\n-           \u003cdict\u003e\n-               \u003ckey\u003eArch\u003c/key\u003e\n-               \u003cstring\u003eAny\u003c/string\u003e\n-               \u003ckey\u003eBase\u003c/key\u003e\n-               \u003cstring\u003e_cpu_topology_sort\u003c/string\u003e\n-               \u003ckey\u003eComment\u003c/key\u003e\n-               \u003cstring\u003ealgrey - cpu_topology_sort -disable _x86_validate_topology\u003c/string\u003e\n-               \u003ckey\u003eCount\u003c/key\u003e\n-               \u003cinteger\u003e1\u003c/integer\u003e\n-               \u003ckey\u003eEnabled\u003c/key\u003e\n-               \u003ctrue/\u003e\n-               \u003ckey\u003eFind\u003c/key\u003e\n-               \u003cdata\u003e\n-               6AAA//8=\n-               \u003c/data\u003e\n-               \u003ckey\u003eIdentifier\u003c/key\u003e\n-               \u003cstring\u003ekernel\u003c/string\u003e\n-               \u003ckey\u003eLimit\u003c/key\u003e\n-               \u003cinteger\u003e0\u003c/integer\u003e\n-               \u003ckey\u003eMask\u003c/key\u003e\n-               \u003cdata\u003e\n-               /wAA//8=\n-               \u003c/data\u003e\n-               \u003ckey\u003eMaxKernel\u003c/key\u003e\n-               \u003cstring\u003e20.99.99\u003c/string\u003e\n-               \u003ckey\u003eMinKernel\u003c/key\u003e\n-               \u003cstring\u003e17.0.0\u003c/string\u003e\n-               \u003ckey\u003eReplace\u003c/key\u003e\n-               \u003cdata\u003e\n-               Dx9EAAA=\n-               \u003c/data\u003e\n-               \u003ckey\u003eReplaceMask\u003c/key\u003e\n-               \u003cdata\u003e\n-               \u003c/data\u003e\n-               \u003ckey\u003eSkip\u003c/key\u003e\n-               \u003cinteger\u003e0\u003c/integer\u003e\n-           \u003c/dict\u003e\n            \u003cdict\u003e\n                \u003ckey\u003eArch\u003c/key\u003e\n                \u003cstring\u003eAny\u003c/string\u003e\n@@ -922,17 +891,19 @@\n                \u003ckey\u003eArguments\u003c/key\u003e\n                \u003cstring\u003e\u003c/string\u003e\n                \u003ckey\u003eAuxiliary\u003c/key\u003e\n-               \u003cfalse/\u003e\n+               \u003ctrue/\u003e\n                \u003ckey\u003eComment\u003c/key\u003e\n                \u003cstring\u003eMemory testing utility\u003c/string\u003e\n                \u003ckey\u003eEnabled\u003c/key\u003e\n                \u003cfalse/\u003e\n+               \u003ckey\u003eFlavour\u003c/key\u003e\n+               \u003cstring\u003eMemTest\u003c/string\u003e\n                \u003ckey\u003eName\u003c/key\u003e\n-               \u003cstring\u003ememcheck\u003c/string\u003e\n+               \u003cstring\u003ememtest86\u003c/string\u003e\n                \u003ckey\u003ePath\u003c/key\u003e\n-               \u003cstring\u003ememcheck/memcheck.efi\u003c/string\u003e\n+               \u003cstring\u003ememtest86/BOOTX64.efi\u003c/string\u003e\n                \u003ckey\u003eRealPath\u003c/key\u003e\n-               \u003cfalse/\u003e\n+               \u003ctrue/\u003e\n                \u003ckey\u003eTextMode\u003c/key\u003e\n                \u003cfalse/\u003e\n            \u003c/dict\u003e\n@@ -981,11 +954,13 @@\n                \u003ckey\u003eboot-args\u003c/key\u003e\n                \u003cstring\u003ekeepsyms=1\u003c/string\u003e\n                \u003ckey\u003ecsr-active-config\u003c/key\u003e\n-               \u003cdata\u003eAAAAAA==\u003c/data\u003e\n+               \u003cdata\u003eJg8=\u003c/data\u003e\n                \u003ckey\u003eprev-lang:kbd\u003c/key\u003e\n                \u003cdata\u003eZW4tVVM6MA==\u003c/data\u003e\n                \u003ckey\u003erun-efi-updater\u003c/key\u003e\n                \u003cstring\u003eNo\u003c/string\u003e\n+               \u003ckey\u003eForceDisplayRotationInEFI\u003c/key\u003e\n+               \u003cinteger\u003e0\u003c/integer\u003e\n            \u003c/dict\u003e\n        \u003c/dict\u003e\n        \u003ckey\u003eDelete\u003c/key\u003e\n--- Makefile\n+++ Makefile\n@@ -63,7 +63,7 @@ OpenCore-$(RELEASE_VERSION).iso : OpenCore-$(RELEASE_VERSION).dmg\n \n OpenCoreEFIFolder-$(RELEASE_VERSION).zip : Makefile $(EFI_FILES)\n    rm -f $@\n-   zip -r $@ EFI\n+   zip -X -r $@ EFI\n \n %.gz : %\n    gzip -f --keep $\u003c\n--- src/AppleALC\n+++ src/AppleALC\n@@ -1 +1 @@\n-Subproject commit 3c2f6315e6aed0cc3c45a9f01f84ef42fb497044\n+Subproject commit 93be275a4495a1bdb7ff2c3238053f66b9c5195d\n--- src/Lilu\n+++ src/Lilu\n@@ -1 +1 @@\n-Subproject commit 5aeba9f98106a5a8a3057712b74e1608faf5e276\n+Subproject commit 614712caa9d84b6e90305839bd74f3872a44a522\n--- src/MacKernelSDK\n+++ src/MacKernelSDK\n@@ -1 +1 @@\n-Subproject commit 2b584e8e2081ed22fc619151518921c8636d4639\n+Subproject commit e73a6fcd42c94b6a908ad9fe197034c8f4bf442a\n--- src/OcBinaryData\n+++ src/OcBinaryData\n@@ -1 +1 @@\n-Subproject commit ccf3d0c36784100293ccfb2865e10cd37f7a78ee\n+Subproject commit 6dd2d92383edee522052ebbe2c634c92894b37e6\n--- src/OpenCorePkg\n+++ src/OpenCorePkg\n@@ -1 +1 @@\n-Subproject commit 5668fb62b50e8141d93ae6fce3e3fe238822f6ef\n+Subproject commit ae515dd0b1efe79940ce94bfd235399ba873a3f0\n--- src/VirtualSMC\n+++ src/VirtualSMC\n@@ -1 +1 @@\n-Subproject commit 2a7455daf65c356c867a1d65b8f2520ae575ee3e\n+Subproject commit 30a3fa2bd920a15e41ef1439585bcc19885b89e3\n--- src/WhateverGreen\n+++ src/WhateverGreen\n@@ -1 +1 @@\n-Subproject commit 1daa2563b5e6e40f195aba5dc006e14c1d55dfd6\n+Subproject commit 79efd986ac5f4f17e09b880f25ea45be64863b2f\n```\n\nDelete lines 641 - 675 in both `config-custom.plist` and `config-nopicker-custom.plist` which is `_cpu_topology_sort`.\n\nAdd \n\n```diff\n+               \u003ckey\u003eForceDisplayRotationInEFI\u003c/key\u003e\n+               \u003cinteger\u003e0\u003c/integer\u003e\n```\n\n\n-----------------\n\n2021-05-04 - On May 4th 2021 we updated from v11 to v12 via [@thenickdude](https://github.com/thenickdude)'s upstream `config.plist` files from [KVM-Opencore](https://github.com/thenickdude/KVM-Opencore).\n\nAs seen in a PR to OSX-KVM upstream: [https://github.com/kholia/OSX-KVM/pull/173](https://github.com/kholia/OSX-KVM/pull/173)\n\n```bash\nwget https://github.com/thenickdude/KVM-Opencore/compare/v11...v12.patch\n\npatch -F 10 -p1 --verbose config-nopicker-custom.plist v11...v12.patch\n\npatch -F 10 -p1 --verbose config-custom.plist v11...v12.patch\n```\n\nRejected patch lines:\n```patch\n--- EFI/OC/config.plist\n+++ EFI/OC/config.plist\n@@ -224,17 +344,17 @@\n            \u003c/dict\u003e\n            \u003cdict\u003e\n                \u003ckey\u003eBase\u003c/key\u003e\n-               \u003cstring\u003e\u003c/string\u003e\n+               \u003cstring\u003e\\_SB.PCI0.LPCB.HPET\u003c/string\u003e\n                \u003ckey\u003eBaseSkip\u003c/key\u003e\n                \u003cinteger\u003e0\u003c/integer\u003e\n                \u003ckey\u003eComment\u003c/key\u003e\n-               \u003cstring\u003e_Q12 to XQ12\u003c/string\u003e\n+               \u003cstring\u003eHPET _CRS to XCRS\u003c/string\u003e\n                \u003ckey\u003eCount\u003c/key\u003e\n                \u003cinteger\u003e1\u003c/integer\u003e\n                \u003ckey\u003eEnabled\u003c/key\u003e\n                \u003cfalse/\u003e\n                \u003ckey\u003eFind\u003c/key\u003e\n-               \u003cdata\u003eX1ExMg==\u003c/data\u003e\n+               \u003cdata\u003eX0NSUw==\u003c/data\u003e\n                \u003ckey\u003eLimit\u003c/key\u003e\n                \u003cinteger\u003e0\u003c/integer\u003e\n                \u003ckey\u003eMask\u003c/key\u003e\n@@ -1056,9 +1302,9 @@\n            \u003ckey\u003eAppleEvent\u003c/key\u003e\n            \u003cstring\u003eBuiltin\u003c/string\u003e\n            \u003ckey\u003eCustomDelays\u003c/key\u003e\n-           \u003cstring\u003eAuto\u003c/string\u003e\n+           \u003cfalse/\u003e\n            \u003ckey\u003eKeyInitialDelay\u003c/key\u003e\n-           \u003cinteger\u003e0\u003c/integer\u003e\n+           \u003cinteger\u003e50\u003c/integer\u003e\n            \u003ckey\u003eKeySubsequentDelay\u003c/key\u003e\n            \u003cinteger\u003e5\u003c/integer\u003e\n            \u003ckey\u003ePointerSpeedDiv\u003c/key\u003e\n--- src/OpenCorePkg\n+++ src/OpenCorePkg\n@@ -1 +1 @@\n-Subproject commit 5cd223f03dd555c2ad0c6f45181808a5105bb605\n+Subproject commit 5668fb62b50e8141d93ae6fce3e3fe238822f6ef\n```\n\n\n\nReplaced\n```xml\n                \u003ckey\u003eComment\u003c/key\u003e\n                \u003cstring\u003e_Q12 to XQ12\u003c/string\u003e\n\n```\nwith\n```xml\n                \u003ckey\u003eBase\u003c/key\u003e\n                \u003cstring\u003e\\_SB.PCI0.LPCB.HPET\u003c/string\u003e\n                \u003ckey\u003eBaseSkip\u003c/key\u003e\n                \u003cinteger\u003e0\u003c/integer\u003e\n                \u003ckey\u003eComment\u003c/key\u003e\n                \u003cstring\u003eHPET _CRS to XCRS\u003c/string\u003e\n```\n\nand\n```diff\n-               \u003cdata\u003eX1ExMg==\u003c/data\u003e\n+               \u003cdata\u003eX0NSUw==\u003c/data\u003e\n```\n\n\nIgnored:\n```diff\n@@ -1056,9 +1302,9 @@\n            \u003ckey\u003eAppleEvent\u003c/key\u003e\n            \u003cstring\u003eBuiltin\u003c/string\u003e\n            \u003ckey\u003eCustomDelays\u003c/key\u003e\n-           \u003cstring\u003eAuto\u003c/string\u003e\n+           \u003cfalse/\u003e\n            \u003ckey\u003eKeyInitialDelay\u003c/key\u003e\n-           \u003cinteger\u003e0\u003c/integer\u003e\n+           \u003cinteger\u003e50\u003c/integer\u003e\n            \u003ckey\u003eKeySubsequentDelay\u003c/key\u003e\n            \u003cinteger\u003e5\u003c/integer\u003e\n            \u003ckey\u003ePointerSpeedDiv\u003c/key\u003e\n```\n\n-----------------\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsickcodes%2Fosx-serial-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsickcodes%2Fosx-serial-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsickcodes%2Fosx-serial-generator/lists"}