From e5aea82b6fddd028be7fc5e7e16037a42c8afd6c Mon Sep 17 00:00:00 2001
From: Mykola Grymalyuk <48863253+khronokernel@users.noreply.github.com>
Date: Sun, 2 May 2021 22:59:13 -0600
Subject: [PATCH] Add Sidecar support
---
CHANGELOG.md | 3 +++
Resources/Build.py | 2 ++
Resources/Constants.py | 3 +++
Resources/ModelArray.py | 17 +++++++++++++++++
docs/BENIFITS.md | 5 +++--
payloads/Config/config.plist | 18 ++++++++++++++++++
.../Kexts/Acidanthera/SidecarFixup-v1.0.0.zip | Bin 0 -> 15942 bytes
7 files changed, 46 insertions(+), 2 deletions(-)
create mode 100644 payloads/Kexts/Acidanthera/SidecarFixup-v1.0.0.zip
diff --git a/CHANGELOG.md b/CHANGELOG.md
index edad5da213..e57ef5767e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -21,6 +21,9 @@
- RestrictEvents 9e2bb0f (1.0.1 rolling - 05-01-2021)
- Allow CPUFriend on all El-Capitan Era Macs
- Fix UEFI 2.0 Application support on upgraded Nvidia GPUs
+- Add Sidecar support
+ - Requires Mac with Metal Intel iGPU and the iPad to be directly plugged in, wireless highly unstable
+ - SidecarFixup efdf11c (1.0.0 release - 05-02-2021)
## 0.1.1
- Fix iMac11,3 GFX0 pathing
diff --git a/Resources/Build.py b/Resources/Build.py
index 38c3711994..6cf410dae5 100644
--- a/Resources/Build.py
+++ b/Resources/Build.py
@@ -128,6 +128,8 @@ def build_efi(self):
("AppleALC.kext", self.constants.applealc_version, self.constants.applealc_path, lambda: self.model in ModelArray.LegacyAudio or self.model in ModelArray.MacPro71),
# IDE patch
("AppleIntelPIIXATA.kext", self.constants.piixata_version, self.constants.piixata_path, lambda: self.model in ModelArray.IDEPatch),
+ # Misc
+ ("SidecarFixup.kext", self.constants.sidecarfixup_version, self.constants.sidecarfixup_path, lambda: self.model in ModelArray.SidecarPatch),
]:
self.enable_kext(name, version, path, check)
diff --git a/Resources/Constants.py b/Resources/Constants.py
index 6611bd0d22..3dbf2cbf49 100644
--- a/Resources/Constants.py
+++ b/Resources/Constants.py
@@ -36,6 +36,7 @@ def __init__(self):
self.cputscsync = "1.0.3"
self.hibernationfixup = "1.3.9"
self.nvmefix_version = "1.0.7"
+ self.sidecarfixup_version = "1.0.0"
self.payload_version = "0.0.4"
# Get resource path
@@ -187,6 +188,8 @@ def hibernationfixup_path(self): return self.payload_kexts_path / Path(f"Acidant
@property
def nvmefix_path(self): return self.payload_kexts_path / Path(f"Acidanthera/NVMeFix-v{self.nvmefix_version}.zip")
@property
+ def sidecarfixup_path(self): return self.payload_kexts_path / Path(f"Acidanthera/SidecarFixup-v{self.sidecarfixup_version}.zip")
+ @property
def plist_folder_path(self): return self.payload_kexts_path / Path(f"Plists")
@property
def platform_plugin_plist_path(self): return self.plist_folder_path / Path(f"PlatformPlugin")
diff --git a/Resources/ModelArray.py b/Resources/ModelArray.py
index 9f91c330c9..e3246e8154 100644
--- a/Resources/ModelArray.py
+++ b/Resources/ModelArray.py
@@ -443,20 +443,37 @@
]
SidecarPatch = [
+ "MacBook8,1",
"MacBookAir5,1",
"MacBookAir5,2",
+ "MacBookAir6,1",
+ "MacBookAir6,2",
+ "MacBookAir7,1",
+ "MacBookAir7,2",
"MacBookPro9,1",
"MacBookPro9,2",
"MacBookPro10,1",
"MacBookPro10,2",
+ "MacBookPro11,1",
+ "MacBookPro11,2",
+ "MacBookPro11,3",
+ "MacBookPro11,4",
+ "MacBookPro11,5",
+ "MacBookPro12,1",
"Macmini6,1",
"Macmini6,2",
+ "Macmini7,1",
"iMac13,1",
"iMac13,2",
"iMac13,3",
"iMac14,1",
"iMac14,2",
"iMac14,3",
+ "iMac15,1",
+ "iMac16,1",
+ "iMac16,2",
+ "MacPro5,1",
+ "MacPro6,1",
"Dortania1,1"
]
diff --git a/docs/BENIFITS.md b/docs/BENIFITS.md
index 9a9bbb9d7e..c1020343f0 100644
--- a/docs/BENIFITS.md
+++ b/docs/BENIFITS.md
@@ -14,8 +14,9 @@ With OpenCore Legacy Patcher we recommend users go through the below table to un
| BootCamp Switching | Requires EFI Conversion for Start Disk support, otherwise still supported | Native |
| Brightness Control on Legacy GPUs | Supported | Supported |
| Legacy GPU Acceleration | In active development, see Acceleration Progress Tracker: [Link](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108) | Currently not researching |
-| WPA Wifi Support | Native, stable | Unstable |
+| WPA Wifi and Personal Hotspot Support | Native, stable | Unstable |
| HEVC/H.265 Support for Mac Pros and iMacs with Polaris+ GPUs | Supported | Not supported |
| Big Sur-styled Boot Picker | Available | Not available |
| El Capitan-era Wifi cards | Supported | Not supported |
-| Hibernation Support | Supports 3rd party SATA SSDs in addition to stock models | Only supports stock drives |
\ No newline at end of file
+| Hibernation Support | Supports 3rd party SATA SSDs in addition to stock models | Only supports stock drives |
+| Sidecar Support | Supports any Mac with Metal Intel iGPU | Not supported at all |
\ No newline at end of file
diff --git a/payloads/Config/config.plist b/payloads/Config/config.plist
index c44e3898fd..50ddc0a4af 100644
--- a/payloads/Config/config.plist
+++ b/payloads/Config/config.plist
@@ -806,6 +806,24 @@
PlistPath
Contents/Info.plist
+
+ Arch
+ x86_64
+ Comment
+ SidecarFixup
+ Enabled
+
+ MaxKernel
+
+ MinKernel
+ 19.0.0
+ BundlePath
+ SidecarFixup.kext
+ ExecutablePath
+ Contents/MacOS/SidecarFixup
+ PlistPath
+ Contents/Info.plist
+
Block
diff --git a/payloads/Kexts/Acidanthera/SidecarFixup-v1.0.0.zip b/payloads/Kexts/Acidanthera/SidecarFixup-v1.0.0.zip
new file mode 100644
index 0000000000000000000000000000000000000000..edcf12d4b6543a632d6efeb57869fcd689c83817
GIT binary patch
literal 15942
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
literal 0
HcmV?d00001