From 6b7563538cfbf76981624f027870b03c39dbdf6c Mon Sep 17 00:00:00 2001 From: Cory Bennett Date: Mon, 25 Mar 2024 00:19:29 -0500 Subject: [PATCH] Add support for macOS Sonoma (#53) * Docs: Add README resources for Sonoma * README: Update build instructions, fix Continuity features list * Add AirportItlwm versions for Sonoma * Bumped OpenCore to v0.9.9 * Fix HDMI audio (#51) --- docs/README.md | 83 ++++++++++++++++++++++------------ docs/assets/README/sonoma.png | Bin 0 -> 55034 bytes scripts/build.ps1 | 17 +++++++ src/build.lock | 57 +++++++++++++++-------- src/build.yml | 10 ++++ src/config.yml | 2 +- 6 files changed, 118 insertions(+), 51 deletions(-) create mode 100644 docs/assets/README/sonoma.png create mode 100644 scripts/build.ps1 diff --git a/docs/README.md b/docs/README.md index 799449e..40cc5ec 100755 --- a/docs/README.md +++ b/docs/README.md @@ -16,7 +16,7 @@ ![License](https://img.shields.io/github/license/Qonfused/ASUS-ZenBook-Duo-14-UX481-Hackintosh?label=⚖%20License&labelColor=3f4551&color=9dc4d0) ![SemVer](https://img.shields.io/badge/SemVer-v0.6.0-important?logo=SemVer&labelColor=3f4551) ![Supported Models](https://img.shields.io/badge/Supported%20Models-UX481FA%20%7C%20UX481FL-important?labelColor=3f4551) - ![OpenCore](https://img.shields.io/badge/OpenCore-0.9.8-0c7dbe?logo=Osano&logoColor=0298e1&labelColor=3f4451) + ![OpenCore](https://img.shields.io/badge/OpenCore-0.9.9-0c7dbe?logo=Osano&logoColor=0298e1&labelColor=3f4451) ![OCE Build](https://github.com/Qonfused/ASUS-ZenBook-Duo-14-UX481-Hackintosh/actions/workflows/oce-build.yml/badge.svg?branch=main) @@ -55,6 +55,22 @@ Refer to the [CHANGELOG](/docs/CHANGELOG.md) or [SemVer board](https://github.co + + + + + Sonoma + + 🚧 + Untested. + (None) + (Latest) + @@ -271,13 +287,18 @@ Refer to the [CHANGELOG](/docs/CHANGELOG.md) or [SemVer board](https://github.co Continuity - Airplay to Mac + AirDrop + ❌ + Unsupported. + + + AirPlay to Mac ✅ Supported. Sidecar - ✅ - Supported. + ❌ + Unsupported. Handoff ✅ @@ -285,8 +306,8 @@ Refer to the [CHANGELOG](/docs/CHANGELOG.md) or [SemVer board](https://github.co Continuity Camera - 🚧 - Untested. + ❌ + Unsupported. Universal Clipboard @@ -295,8 +316,8 @@ Refer to the [CHANGELOG](/docs/CHANGELOG.md) or [SemVer board](https://github.co Universal Control - ✅ - Supported. + ❌ + Unsupported. @@ -323,7 +344,7 @@ Refer to the [CHANGELOG](/docs/CHANGELOG.md) or [SemVer board](https://github.co ### 1. Clone this repository using Git -To clone this repository locally with submodules, run the below commands: +To clone this repository locally, run the below command: ```sh git clone https://github.com/Qonfused/ASUS-ZenBook-Duo-14-UX481-Hackintosh cd ASUS-ZenBook-Duo-14-UX481-Hackintosh @@ -331,33 +352,35 @@ cd ASUS-ZenBook-Duo-14-UX481-Hackintosh ### 2. Build this repository using OCE-Build -To build this project's EFI, run the below command at the root of the project: -```sh -# Run build pipeline for the UX481FA/FL EFI -bash scripts/build.sh +This project uses [OCE-Build](https://github.com/Qonfused/OCE-Build) to automatically version and build this repository's EFI. + +To build this project's EFI, run either of the below commands at the root of the project: +```powershell +# In PowerShell +scripts/build.ps1 + +# In Bash/WSL +scripts/build.sh ``` -You can also manually download [OCE Build](https://github.com/Qonfused/OCE-Build/releases) and run the `ocebuild build` command from the root of the project. +> [!IMPORTANT] +> To run powershell scripts, you may need to set your execution policy using: +> ```powershell +> Set-ExecutionPolicy RemoteSigned +> ``` -> [!NOTE] -> For Windows users, running Bash scripts requires a Linux environment (provided by [Cygwin](https://www.cygwin.com/), [MinGW](https://www.mingw-w64.org/), [Git Bash](https://gitforwindows.org/), or [WSL](https://learn.microsoft.com/en-us/windows/wsl/about)). -> -> Refer to [aka.ms/wslinstall](aka.ms/wslinstall) and [aka.ms/wsl2](aka.ms/wsl2) for instructions on installing wsl and upgrading to the wsl2 kernel (recommended). -> - You can install a Linux distribution directly from the Microsoft Store (e.g. [Ubuntu 20.04.5 LTS](https://apps.microsoft.com/store/detail/ubuntu-20045-lts/9MTTCL66CPXJ)). -> - Alternatively, you can [setup devcontainers](https://code.visualstudio.com/docs/devcontainers/containers#_installation) with Docker and VSCode to run a containerized Linux environment on top of wsl. The [devcontainer](/.devcontainer/devcontainer.json) for this project will setup and build the project automatically upon container creation. +You can also download [OCE-Build](https://github.com/Qonfused/OCE-Build/releases) and run the `ocebuild build` command from the root of the project. ### 3. Using this EFI with macOS -Refer to the [Install Guide](https://github.com/Qonfused/ASUS-ZenBook-Duo-14-UX481-Hackintosh/wiki/Install-Guide) and [Post-Install Guide](https://github.com/Qonfused/ASUS-ZenBook-Duo-14-UX481-Hackintosh/wiki/Post-Install-Guide) for installation instructions. -> [!NOTE] -> To enable **iServices** functionality, download [GenSMBIOS](https://github.com/corpnewt/GenSMBIOS) follow the [iServices guide](https://dortania.github.io/OpenCore-Post-Install/universal/iservices.html#using-gensmbios) to generate new SMBIOS data for your machine to be applied before running the build script. You'll then need to store your SMBIOS data in a new **.serialdata** file: -> ```yaml -> MLB: String | "M0000000000000001" -> ROM: Data | <112233445566> -> SystemProductName: String | "MacBookPro16,3" -> SystemSerialNumber: String | "W00000000001" -> SystemUUID: String | "00000000-0000-0000-0000-000000000000" -> ``` +To enable **iServices** functionality, you can: +1. Generate SMBIOS data with [GenSMBIOS](https://github.com/corpnewt/GenSMBIOS) + - Follow the Dortania [iServices guide](https://dortania.github.io/OpenCore-Post-Install/universal/iservices.html#using-gensmbios) to generate new SMBIOS data for your machine. +2. For local builds of this EFI, patch *existing* SMBIOS data automatically. + - This is automatically patched each time you run a build using the **.serialdata** file (using existing data or data generated by GenSMBIOS). + - Refer to the [**.serialdata.example**](/src/.serialdata.example) file for an example of the entry format. + +Refer to the [Install Guide](https://github.com/Qonfused/ASUS-ZenBook-Duo-14-UX481-Hackintosh/wiki/Install-Guide) and [Post-Install Guide](https://github.com/Qonfused/ASUS-ZenBook-Duo-14-UX481-Hackintosh/wiki/Post-Install-Guide) for installation instructions. ## 🔥 Contributing Contributions of any size to this project are always welcome! diff --git a/docs/assets/README/sonoma.png b/docs/assets/README/sonoma.png new file mode 100644 index 0000000000000000000000000000000000000000..9f2478a27a0b382f7e3b7fe41f93659b6300557f GIT binary patch literal 55034 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 Ujg-mQOEj%Ky2Ue#q#E7ffI~d*{V6qx zGq%S5?LGR6MkcAg*`dr-((1P9jSTu0hWhn8h-^>w+Y`k}u)el_<^Ma!?GHDAB7M}xMvr`4o3bA9S$tBD z_~;oJy@n&j5VnCa`CZ2fv!Vh$aNc9NGHiiBx<;Y@OK(hcB`@eifB zO@I&oQ;39m1cmAa2`4?mNt1L!lC{)z9A8Jq&{i17^ zsgDjejxe!puF@0R8&tx81d~Q1uhG~Qq~9mbq3IMFv9a-4vmz2b66Q1s=z!!70o%4K zfpndIqf};FKTbubD~)XnnJ_E4sx%fxjtQBnNQ5rkdW&#sJpwu%t?H56t__3O!c?D4 zTUpnV{ppBWGHGv(jNRkmaJUl5uaAgFe|nElk@V5mFiA!7v$h~3P>{nmov2&Z%1%nu zYNN9)b~FhtK_)jaeHwcB`+DTIVkR1iObUw+^#O|=6-wLY&>0Z5!%=&~D*=p8bP0TZ z{0BT>aN?8JMJ7?oiNu}$7<;G=r2gPYDj|xY23Z)p zO5*ew?QLKJT{lsL_=W~ozL83U5-kit%+mbT6SZ(5pp$g-;&3tz$|CP39YlG{^6!es zsg$HyE~EF(19YCH2?Vmm`S%P9Q`*h)yw@v=vh2Gde2rE31O8l=MbYc!dDcyxJ(l8) zx=<`nX%|jGDn~*1HFw^0(=;)448t%C!!QiPFbu;m48t%C!!QiPFbu;m48t%C!!Rz1 Z{{VB%ujsz1ot^*y002ovPDHLkV1jc><-q^| literal 0 HcmV?d00001 diff --git a/scripts/build.ps1 b/scripts/build.ps1 new file mode 100644 index 0000000..e8956b9 --- /dev/null +++ b/scripts/build.ps1 @@ -0,0 +1,17 @@ +## @file +# EFI build script for the UX481FA/UX481FL +# +# Copyright (c) 2023, Cory Bennett. All rights reserved. +# SPDX-License-Identifier: BSD-3-Clause +## + +[CmdletBinding(PositionalBinding=$false)] +param ( + [string]$pwd = "$((Get-Item "$PSScriptRoot\..").FullName)", + # Script arguments + [parameter(ValueFromRemainingArguments)][string[]]$arguments +) + +icm ` + -ScriptBlock $([Scriptblock]::Create($(iwr 'https://raw.githubusercontent.com/Qonfused/OCE-Build/main/ci/bootstrap.ps1'))) ` + -ArgumentList (@("build -c $pwd $patches") + $arguments) diff --git a/src/build.lock b/src/build.lock index 25901fd..3879ed4 100644 --- a/src/build.lock +++ b/src/build.lock @@ -90,35 +90,52 @@ dependencies: AirportItlwm-BigSur: build: DEBUG version: 2.3.0 - url: 'https://github.com/OpenIntelWireless/itlwm/releases/download/v2.3.0-alpha/AirportItlwm-Big_Sur-v2.3.0-DEBUG-alpha-3e1624d.zip' - resolution: 'OpenIntelWireless/itlwm@github:2.3.0#commit=3e1624df2168594ac15bbfe539c751deeedf24cb' + url: 'https://github.com/OpenIntelWireless/itlwm/releases/download/v2.3.0-alpha/AirportItlwm-Big_Sur-v2.3.0-DEBUG-alpha-e886ebb.zip' + resolution: 'OpenIntelWireless/itlwm@github:2.3.0#commit=e886ebb06658d6aee70f87e30a6bbbd0acad1f57' specifier: 'OpenIntelWireless/itlwm@github:^2.0.0' kind: Kext - revision: '{ SHA1: 3e1624df2168594ac15bbfe539c751deeedf24cb }' + revision: '{ SHA1: e886ebb06658d6aee70f87e30a6bbbd0acad1f57 }' AirportItlwm-Catalina: build: DEBUG version: 2.3.0 - url: 'https://github.com/OpenIntelWireless/itlwm/releases/download/v2.3.0-alpha/AirportItlwm-Catalina-v2.3.0-DEBUG-alpha-3e1624d.zip' - resolution: 'OpenIntelWireless/itlwm@github:2.3.0#commit=3e1624df2168594ac15bbfe539c751deeedf24cb' + url: 'https://github.com/OpenIntelWireless/itlwm/releases/download/v2.3.0-alpha/AirportItlwm-Catalina-v2.3.0-DEBUG-alpha-e886ebb.zip' + resolution: 'OpenIntelWireless/itlwm@github:2.3.0#commit=e886ebb06658d6aee70f87e30a6bbbd0acad1f57' specifier: 'OpenIntelWireless/itlwm@github:^2.0.0' kind: Kext - revision: '{ SHA1: 3e1624df2168594ac15bbfe539c751deeedf24cb }' + revision: '{ SHA1: e886ebb06658d6aee70f87e30a6bbbd0acad1f57 }' AirportItlwm-Monterey: build: DEBUG version: 2.3.0 - url: 'https://github.com/OpenIntelWireless/itlwm/releases/download/v2.3.0-alpha/AirportItlwm-Monterey-v2.3.0-DEBUG-alpha-3e1624d.zip' - resolution: 'OpenIntelWireless/itlwm@github:2.3.0#commit=3e1624df2168594ac15bbfe539c751deeedf24cb' + url: 'https://github.com/OpenIntelWireless/itlwm/releases/download/v2.3.0-alpha/AirportItlwm-Monterey-v2.3.0-DEBUG-alpha-e886ebb.zip' + resolution: 'OpenIntelWireless/itlwm@github:2.3.0#commit=e886ebb06658d6aee70f87e30a6bbbd0acad1f57' specifier: 'OpenIntelWireless/itlwm@github:^2.0.0' kind: Kext - revision: '{ SHA1: 3e1624df2168594ac15bbfe539c751deeedf24cb }' + revision: '{ SHA1: e886ebb06658d6aee70f87e30a6bbbd0acad1f57 }' + AirportItlwm-Sonoma-14: + 0: + build: DEBUG + version: 2.3.0 + url: 'https://github.com/OpenIntelWireless/itlwm/releases/download/v2.3.0-alpha/AirportItlwm-Sonoma14.0-v2.3.0-DEBUG-alpha-e886ebb.zip' + resolution: 'OpenIntelWireless/itlwm@github:2.3.0#commit=e886ebb06658d6aee70f87e30a6bbbd0acad1f57' + specifier: 'OpenIntelWireless/itlwm@github:^2.3.0-alpha' + kind: Kext + revision: '{ SHA1: e886ebb06658d6aee70f87e30a6bbbd0acad1f57 }' + 4: + build: DEBUG + version: 2.3.0 + url: 'https://github.com/OpenIntelWireless/itlwm/releases/download/v2.3.0-alpha/AirportItlwm-Sonoma14.4-v2.3.0-DEBUG-alpha-e886ebb.zip' + resolution: 'OpenIntelWireless/itlwm@github:2.3.0#commit=e886ebb06658d6aee70f87e30a6bbbd0acad1f57' + specifier: 'OpenIntelWireless/itlwm@github:^2.3.0-alpha' + kind: Kext + revision: '{ SHA1: e886ebb06658d6aee70f87e30a6bbbd0acad1f57 }' AirportItlwm-Ventura: build: DEBUG version: 2.3.0 - url: 'https://github.com/OpenIntelWireless/itlwm/releases/download/v2.3.0-alpha/AirportItlwm-Ventura-v2.3.0-DEBUG-alpha-3e1624d.zip' - resolution: 'OpenIntelWireless/itlwm@github:2.3.0#commit=3e1624df2168594ac15bbfe539c751deeedf24cb' + url: 'https://github.com/OpenIntelWireless/itlwm/releases/download/v2.3.0-alpha/AirportItlwm-Ventura-v2.3.0-DEBUG-alpha-e886ebb.zip' + resolution: 'OpenIntelWireless/itlwm@github:2.3.0#commit=e886ebb06658d6aee70f87e30a6bbbd0acad1f57' specifier: 'OpenIntelWireless/itlwm@github:^2.2.0' kind: Kext - revision: '{ SHA1: 3e1624df2168594ac15bbfe539c751deeedf24cb }' + revision: '{ SHA1: e886ebb06658d6aee70f87e30a6bbbd0acad1f57 }' AppleALC: build: DEBUG version: 1.9.0 @@ -185,12 +202,12 @@ dependencies: revision: '{ SHA1: 1eb0ddb6cd7b2cd0a72e157a15e8833399afe7e8 }' IntelBluetoothFirmware: build: DEBUG - version: 2.3.0 - url: 'https://github.com/OpenIntelWireless/IntelBluetoothFirmware/releases/download/v2.3.0/IntelBluetooth-v2.3.0.zip' - resolution: 'OpenIntelWireless/IntelBluetoothFirmware@github:2.3.0#commit=592507aa8cb3d0df3e524bb869f2836271e4fb48' + version: 2.4.0 + url: 'https://github.com/OpenIntelWireless/IntelBluetoothFirmware/releases/download/v2.4.0/IntelBluetooth-v2.4.0.zip' + resolution: 'OpenIntelWireless/IntelBluetoothFirmware@github:2.4.0#commit=b9127f5e1ede477577470cc4d4f55134a2901f5b' specifier: 'OpenIntelWireless/IntelBluetoothFirmware@github:latest' kind: Kext - revision: '{ SHA1: 592507aa8cb3d0df3e524bb869f2836271e4fb48 }' + revision: '{ SHA1: b9127f5e1ede477577470cc4d4f55134a2901f5b }' Lilu: build: DEBUG version: 1.6.8 @@ -301,9 +318,9 @@ dependencies: revision: '{ SHA1: af09b0bf763363ec9f4ecdbbe2f0adeb970948d8 }' OpenCore: build: DEBUG - version: 0.9.8 - url: 'https://github.com/acidanthera/OpenCorePkg/releases/download/0.9.8/OpenCore-0.9.8-DEBUG.zip' - resolution: 'acidanthera/OpenCorePkg@github:0.9.8#commit=7a3f8cc4269a2f176969534c036b3951c07c3a26' + version: 0.9.9 + url: 'https://github.com/acidanthera/OpenCorePkg/releases/download/0.9.9/OpenCore-0.9.9-DEBUG.zip' + resolution: 'acidanthera/OpenCorePkg@github:0.9.9#commit=9b5fb72da3a38446417a7577f8e5e293fdad672e' specifier: 'acidanthera/OpenCorePkg@github:latest' kind: Binary - revision: '{ SHA1: 7a3f8cc4269a2f176969534c036b3951c07c3a26 }' \ No newline at end of file + revision: '{ SHA1: 9b5fb72da3a38446417a7577f8e5e293fdad672e }' \ No newline at end of file diff --git a/src/build.yml b/src/build.yml index 17e9fc2..7f82101 100644 --- a/src/build.yml +++ b/src/build.yml @@ -37,6 +37,16 @@ Kexts: SMCProcessor: "*" SMCSuperIO: "*" # Wi-Fi / Bluetooth + AirportItlwm-Sonoma-14.4: + specifier: OpenIntelWireless/itlwm=^2.3.0-alpha + properties: + MaxKernel: "23.99.99" + MinKernel: "23.4.0" + AirportItlwm-Sonoma-14.0: + specifier: OpenIntelWireless/itlwm=^2.3.0-alpha + properties: + MaxKernel: "23.3.99" + MinKernel: "23.0.0" AirportItlwm-Ventura: specifier: OpenIntelWireless/itlwm=^2.2.0 properties: diff --git a/src/config.yml b/src/config.yml index 43ba550..8c9c7a9 100644 --- a/src/config.yml +++ b/src/config.yml @@ -270,7 +270,7 @@ DeviceProperties: enable-backlight-smoother: Boolean | true # Framebuffer connector patches. # - con0 [eDP] Primary Display - framebuffer-con0-alldata: Data | <00000800 02000000 98000000> + framebuffer-con0-alldata: Data | <00000800 02000000 98010000> framebuffer-con0-enable: Data | <01000000> # - con1 [DP] ScreenPad-Plus framebuffer-con1-alldata: Data | <01010900 00040000 C7030000>