diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f08f775..67b6a5b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,6 +43,17 @@ jobs: run: python3 tools/build.py --tag "$RELEASE_TAG" - name: Verify signatures, payloads and version selection run: python3 tools/test.py dist/WhateverXe-Graphics-*.pkg + - name: Build and verify automatic-installation pkg + run: | + python3 tools/build.py --autopkg + python3 tools/test.py dist/autopkg/AutoPkg-Assets.pkg + - uses: actions/upload-artifact@v4 + with: + name: AutoPkg-Assets + path: | + dist/autopkg/AutoPkg-Assets.pkg + dist/autopkg/SHA256SUMS + if-no-files-found: error - uses: actions/upload-artifact@v4 with: name: Packages @@ -67,6 +78,10 @@ jobs: with: name: Packages path: dist + - uses: actions/download-artifact@v4 + with: + name: AutoPkg-Assets + path: dist/autopkg - name: Upload release assets env: GH_TOKEN: ${{ github.token }} @@ -75,6 +90,8 @@ jobs: run: | python3 tools/release_notes.py "$RELEASE_TAG" > release-notes.md cd dist + cp autopkg/AutoPkg-Assets.pkg . + cat autopkg/SHA256SUMS >> SHA256SUMS sha256sum -c SHA256SUMS if gh release view "$RELEASE_TAG" --json isDraft --jq .isDraft > release-state; then test "$(cat release-state)" = true diff --git a/AGENTS.md b/AGENTS.md index f813602..42e3edb 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -11,7 +11,8 @@ Keep maintainer release procedures, unpublished implementation plans, release-preparation status, internal validation progress, host details and test captures outside this repository, including while the repository is private. -README describes the current state, not release-by-release changes. Recommend +README describes the current state, not release-by-release changes. Keep it concise; +installation uses released packages, not build scripts. Recommend latest component releases instead of accumulating per-version dependency tables. Use GPU family names rather than internal display-generation labels in README prose. CHANGELOG describes the affected behavior and OS range; applications used @@ -19,7 +20,7 @@ for validation are not the scope of a general fix. Credit reference repositories when their work informed a change. Build: python3 tools/build.py -Test: python3 tools/test.py dist/WhateverXe-Graphics-0.3.1.pkg +Test: python3 tools/test.py dist/WhateverXe-Graphics-0.4.0.pkg Dependency checks must pass before packaging and against the extracted pkg for every supported OS. Signature/hash checks do not establish dependency compatibility. @@ -30,14 +31,17 @@ Preserve signed payloads exactly unless deliberately updating and requalifying an asset. Never sign original Apple compiler backends again. Keep signed bundles whole. No keys, credentials, Apple original input caches or generated packages in Git. The checked-in final payloads are an explicit binary exception. -Installer scripts use standard payloads and AuxKC; do not add custom backup, +The normal installer uses standard payloads and AuxKC. AutoPkg may select and +copy private script resources during first boot; its --nopayload component leaves +no package receipt and uses the same AuxKC function. Do not add custom backup, manifest, hash-store or uninstall infrastructure to the installed system. Release versioning is independent from WEX. Use source commits for provenance, not a floating dependency on another repository's main branch. Build TGLCompat from one WEX commit for every OS; keep the single build in Common. If ABI differences require multiple outputs, build all variants from that same commit. -Release assets are the pkg and its checksum only. AMFIPass stays under extras/; +Release assets are the standard pkg, AutoPkg-Assets.pkg and their SHA256SUMS. +AMFIPass stays under extras/; the root uninstall.sh is a committed, standalone uninstaller for distributed graphics components. Keep removal targets tied to public package contents; retain obsolete paths only when needed to remove a previously published release. diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e835fc..be8ab84 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## 0.4.0 + +Use the latest [WhateverXe](https://github.com/b00t0x/WhateverXe/releases) release with this update. + +### Added + +- Add experimental automatic Graphics installation before Setup Assistant through upstream AutoPkgInstaller. + +### Fixed + +- Fix graphics initialization on systems using the new USB-C DisplayPort Alt Mode support. +- Extend driver matching and OpenGL, video and OpenCL acceleration to the additional GPU IDs accepted by WEX. +- Fix Metal and video compatibility with Sequoia and Tahoe updates without requiring an exact OS build match, and ensure the Metal driver can load its bundled dependencies on first use. + ## 0.3.2 - Fix OpenGL texture updates and missing geometry for the measured six-bank VS-only and VS/GS URB layouts on Big Sur–Tahoe. Handle all four measured layouts in one rule set while preserving the four/eight-bank corrections. diff --git a/README.md b/README.md index 59b2b11..14960e3 100644 --- a/README.md +++ b/README.md @@ -2,26 +2,13 @@ [日本語](README_ja.md) -Signed graphics payloads and a standard macOS installer for -[WhateverXe](https://github.com/b00t0x/WhateverXe). One pkg selects the payload -for the running macOS and installs it under `/Library`, then rebuilds AuxKC. -System files and snapshots are not patched. OpenCore/EFI configuration remains -separate. - -For supported GPUs, features, configuration and known issues, see -[WhateverXe](https://github.com/b00t0x/WhateverXe). WEX and this package have -independent release versions. AppleIntelTGLCompat is included in the package; -its source and shared headers remain in the WEX repository. One TGLCompat build -is shared by all supported macOS versions through the Common payload. - -See the [changelog](CHANGELOG.md) for changes in each package version. +Signed graphics drivers and a macOS installer for [WhateverXe](https://github.com/b00t0x/WhateverXe). The package installs under `/Library` and rebuilds AuxKC without patching System files or snapshots. +Use the latest WEX and Graphics releases together. See [WEX](https://github.com/b00t0x/WhateverXe) for supported GPUs, configuration and known issues, and [CHANGELOG](CHANGELOG.md) for package changes. ## Requirements -- Intel macOS, with the WEX/OpenCore configuration described in the WEX README. -- The latest WhateverXe release, with Lilu. -- [AMFIPass 1.4.1 Mod](extras/AMFIPass-v1.4.1-Mod-RELEASE.zip), loaded through OpenCore. The ordinary upstream AMFIPass is not a substitute for this signing chain. -- SIP configuration `csr-active-config=03080000` (value `0x803`). Full SIP is not supported by this package. +- OpenCore with Lilu, the latest WEX and [AMFIPass 1.4.1 Mod](extras/AMFIPass-v1.4.1-Mod-RELEASE.zip). Upstream AMFIPass is not a substitute. +- SIP setting `csr-active-config=03080000` (`0x803`). Full SIP is unsupported. | macOS | Required version | | --- | --- | @@ -32,71 +19,53 @@ See the [changelog](CHANGELOG.md) for changes in each package version. | Sequoia | 15.8.x | | Tahoe | 26.7 or newer | -Installer version ranges are not a guarantee of compatibility with future OS -updates. The current payloads target builds 20G1443, 21H1320, 22H730, 23J631, -24H32 and 25G241. Check the WEX documentation and release notes before updating -macOS. `amfi=0x80` and `ipc_control_port_options=0` are not required. +For other OCLP root patches, use the [custom OCLP build](https://github.com/b00t0x/OpenCore-Legacy-Patcher) with the matching Mod signing chain. + +## Install -## Relationship to WEX +1. Configure OpenCore as described in [WEX](https://github.com/b00t0x/WhateverXe#installation). Restore any older Xe System patch first. +2. Boot the target macOS and open `WhateverXe-Graphics-*.pkg` from [Releases](https://github.com/b00t0x/WhateverXe-Graphics/releases). +3. Restart after installation succeeds. Resolve any reported installation error before restarting. -WEX supplies the OS/GPU adaptations and display control. This package supplies -the graphics drivers, their compiler components and AppleIntelTGLCompat, which -provides shared driver services. The release numbers do not have to match. +The installer does not change EFI or SIP. The pkg is unsigned and not notarized; its modified graphics payloads carry the Mod code signature. -Use the latest releases of both components. GPU and display requirements are -described in the [WEX configuration guide](https://github.com/b00t0x/WhateverXe#configuration). +## Automatic installation before Setup Assistant -## Using other OCLP root patches +AutoPkg enables graphics acceleration during a **fresh macOS installation**. It has been tested on Sequoia and Tahoe. -If you also use OCLP for other root patches, use the -[custom OCLP build](https://github.com/b00t0x/OpenCore-Legacy-Patcher). -The upstream OCLP and Xe payloads require different AMFIPass trust anchors; -one AMFIPass cannot validate both sets. The custom OCLP build uses the matching -Mod signing chain. +1. Prepare a supported macOS USB installer and download [`AutoPkg-Assets.pkg`](https://github.com/b00t0x/WhateverXe-Graphics/releases/latest/download/AutoPkg-Assets.pkg) from Releases. +2. Copy it into `Library/Packages/` on that USB, keeping the filename. Create the `Packages` folder if it does not exist. To open the hidden `Library` folder, use the following command with your USB's volume name: -## Install + ```sh + open "/Volumes/Install macOS Tahoe/Library" + ``` -1. Configure WEX, Lilu and the linked **Mod** AMFIPass in OpenCore. If an older - Xe System patch is installed, restore it using its original recovery method. -2. Boot the macOS you want to install into. -3. Download the pkg from [Releases](https://github.com/b00t0x/WhateverXe-Graphics/releases), open it in Installer, and restart after installation succeeds. +3. Add upstream [AutoPkgInstaller 1.0.4](https://github.com/dortania/OpenCore-Legacy-Patcher/blob/main/payloads/Kexts/Acidanthera/AutoPkgInstaller-v1.0.4-RELEASE.zip) to OpenCore alongside Lilu, WEX and Mod AMFIPass. Set `csr-active-config=030A0000` (`0xA03`); also add `-autopkgbeta` for Tahoe. +4. Install macOS normally. An extra restart applies Graphics before Setup Assistant; the initial USB installer UI is not accelerated. -The pkg uses normal Installer payloads and receipts. It updates AuxKC, and on -Tahoe disables `CoreMedia / AllowOnePassMetalScaling`. It does not modify EFI, -boot arguments or SIP. The pkg container is unsigned and not notarized; the -modified payloads carry the Mod code signature. If installation reports an -error, resolve it and reinstall before restarting. +Do not open AutoPkg manually. Use the standard pkg for existing systems or updates, and do not combine WEX and OCLP AutoPkg assets on one USB. The OCLP application, KDK and MetallibSupportPkg are unnecessary. +`0xA03` allows unapproved kexts to load; removing its extra `0x200` bit later does not necessarily preserve approval. ## Uninstall -Download the current [`uninstall.sh`](uninstall.sh) from this repository, then run: +Download the latest [`uninstall.sh`](uninstall.sh), run it, then restart: ```sh sudo bash uninstall.sh ``` -Restart after successful removal. The script removes the graphics components -distributed by this project, removes the scaling override, rebuilds AuxKC and forgets -the graphics package receipts. Use the current script regardless of which pkg -version was installed. It leaves other CoreMedia settings intact. It does not remove WEX, -Lilu or AMFIPass from EFI, or restore an older graphics stack. - -AMFIPass and this cleanup script are maintained in the repository independently -of the graphics pkg. Releases contain the pkg and its checksum. +This removes Graphics installed by either method and rebuilds AuxKC. It leaves EFI components in place and does not restore an older graphics stack. Installation errors are recorded in `/var/log/install.log`. ## Build -On macOS with Xcode Command Line Tools and Python 3.10 or newer: +Requires macOS, Xcode command-line tools and Python 3.10+. Verification also needs Node.js and `rcodesign` 0.29.0. ```sh python3 tools/build.py -python3 tools/test.py dist/WhateverXe-Graphics-0.3.1.pkg +python3 tools/test.py dist/WhateverXe-Graphics-0.4.0.pkg ``` -The test also needs Node.js and `rcodesign` 0.29.0; CI supplies both. The builder -uses the checked-in signed `payloads/Common` and OS directories. It does not -fetch Apple originals, patch binaries or use signing keys. Output goes to -`dist/`. No Python, Node.js or rcodesign is needed on the target Mac. +For AutoPkg, add `--autopkg` to the build command and test `dist/autopkg/AutoPkg-Assets.pkg`. +The builder uses the checked-in signed payloads; it does not fetch Apple originals or require signing keys. -[Source and signing information](docs/SOURCES.md). The license for the packaging -tools does not relicense the third-party payloads; see [notices](THIRD_PARTY.md). +[Source and signing information](docs/SOURCES.md) · [Third-party notices](THIRD_PARTY.md) diff --git a/README_ja.md b/README_ja.md index 3473bdd..b0796f9 100644 --- a/README_ja.md +++ b/README_ja.md @@ -2,24 +2,13 @@ [English](README.md) -[WhateverXe](https://github.com/b00t0x/WhateverXe)用の署名済みグラフィックス資材と、 -通常のmacOSインストーラーです。1つのpkgが起動中macOS用のpayloadを選び、 -`/Library`へ配置してAuxKCを更新します。Systemファイルやsnapshotへのパッチは行いません。 -OpenCore・EFIの設定は別途必要です。 - -対応GPU・機能・設定・既知の問題は[WhateverXe](https://github.com/b00t0x/WhateverXe)を -参照してください。WEXと本pkgのリリース番号は独立しています。 -AppleIntelTGLCompatはpkgに含まれますが、ソースと共有ヘッダーはWEXリポジトリで管理します。 -全対応macOSで単一ビルドを使用し、Common payloadに収録しています。 - -各pkgバージョンの変更点は[CHANGELOG](CHANGELOG.md)を参照してください。 +[WhateverXe](https://github.com/b00t0x/WhateverXe)用の署名済みグラフィックスドライバーとmacOSインストーラーです。`/Library`への配置とAuxKC生成を行い、Systemファイルやsnapshotにはパッチしません。 +WEXとGraphicsは両方とも最新版を使用してください。対応GPU・設定・既知の問題は[WEX](https://github.com/b00t0x/WhateverXe/blob/main/README_ja.md)、pkgの変更点は[CHANGELOG](CHANGELOG.md)を参照してください。 ## 必要な構成 -- WEXのREADMEに記載されたWEX・OpenCore構成を使用するIntel macOS。 -- Liluと最新版のWhateverXe。 -- OpenCoreから読み込む[AMFIPass 1.4.1 Mod](extras/AMFIPass-v1.4.1-Mod-RELEASE.zip)。通常のupstream版AMFIPassでは、本資材の署名チェーンに対応できません。 -- SIP設定`csr-active-config=03080000`(値`0x803`)。本pkgはSIP全面有効化には対応していません。 +- Lilu・最新版WEX・[AMFIPass 1.4.1 Mod](extras/AMFIPass-v1.4.1-Mod-RELEASE.zip)を設定したOpenCore。本家AMFIPassでは代用できません。 +- SIP設定`csr-active-config=03080000`(`0x803`)。SIP全面有効には対応していません。 | macOS | 必要バージョン | | --- | --- | @@ -30,68 +19,53 @@ AppleIntelTGLCompatはpkgに含まれますが、ソースと共有ヘッダー | Sequoia | 15.8.x | | Tahoe | 26.7以上 | -受付範囲は将来のOS更新での動作保証ではありません。現在の資材の対象buildは -20G1443、21H1320、22H730、23J631、24H32、25G241です。 -macOS更新前にWEXの説明とリリースノートを確認してください。 -`amfi=0x80`と`ipc_control_port_options=0`は不要です。 +OCLPの他のroot patchを併用する場合は、同じMod署名に対応した[独自ビルド版OCLP](https://github.com/b00t0x/OpenCore-Legacy-Patcher)を使用してください。 + +## インストール -## WEXとの関係 +1. [WEXの手順](https://github.com/b00t0x/WhateverXe/blob/main/README_ja.md#インストール)に従ってOpenCoreを設定し、旧Xe System patchがあれば先に復元します。 +2. 対象macOSを起動し、[Releases](https://github.com/b00t0x/WhateverXe-Graphics/releases)の`WhateverXe-Graphics-*.pkg`を開きます。 +3. 導入成功後に再起動します。エラーが出た場合は解決してから再起動してください。 -WEXはOS・GPUへの適応処理と表示制御を担当します。本pkgはグラフィックスドライバー、 -コンパイラー関連部品、およびドライバー共通サービスを提供するAppleIntelTGLCompatを含みます。 -両者のリリース番号を揃える必要はありません。 +インストーラーはEFI・SIPを変更しません。pkg自体は未署名・未公証ですが、改変したグラフィックス資材にはMod署名が付いています。 -両方とも最新版を使用してください。GPU・表示に必要な設定は -[WEXの設定ガイド](https://github.com/b00t0x/WhateverXe/blob/main/README_ja.md#設定)を参照してください。 +## セットアップ前の自動インストール -## OCLPの他のroot patchとの併用 +AutoPkgは**新規macOSインストール中**にグラフィックス加速を有効にします。SequoiaとTahoeで実機確認済みです。 -他のroot patchのためにOCLPを併用する場合は、 -[独自ビルド版OCLP](https://github.com/b00t0x/OpenCore-Legacy-Patcher)を使用してください。 -通常版OCLPとXeの資材ではAMFIPassのtrust anchorが異なり、1つのAMFIPassで -両方の署名に対応できません。独自版OCLPは本資材と同じMod署名チェーンを使用します。 +1. 対応するmacOSのインストーラーUSBを作成し、Releasesから[`AutoPkg-Assets.pkg`](https://github.com/b00t0x/WhateverXe-Graphics/releases/latest/download/AutoPkg-Assets.pkg)をダウンロードします。 +2. ファイル名を変えず、USB内の`Library/Packages/`へコピーします。`Packages`がなければ作成してください。不可視の`Library`を開くには、USBのボリューム名に合わせて次を実行します。 -## インストール + ```sh + open "/Volumes/Install macOS Tahoe/Library" + ``` -1. OpenCoreにWEX・Liluとリンク先の**Mod版**AMFIPassを設定します。 - 旧Xe System patchが適用されている場合は、その復元手順で先に戻してください。 -2. 導入先のmacOSを起動します。 -3. [Releases](https://github.com/b00t0x/WhateverXe-Graphics/releases)からpkgをダウンロードし、Installerで開きます。導入成功後に再起動してください。 +3. Lilu・WEX・Mod AMFIPassに加え、本家[AutoPkgInstaller 1.0.4](https://github.com/dortania/OpenCore-Legacy-Patcher/blob/main/payloads/Kexts/Acidanthera/AutoPkgInstaller-v1.0.4-RELEASE.zip)をOpenCoreに追加します。`csr-active-config=030A0000`(`0xA03`)を設定し、Tahoeでは`-autopkgbeta`も追加します。 +4. 通常どおりmacOSをインストールします。追加再起動を経てセットアップアシスタントから加速が有効になります。最初のUSBインストーラー画面は加速されません。 -通常のInstaller payloadとreceiptを使用します。AuxKCを更新し、Tahoeでは -`CoreMedia / AllowOnePassMetalScaling`を無効化します。 -EFI・起動引数・SIPは変更しません。pkg自体は未署名・未公証ですが、改変したpayloadには -Mod署名が付いています。導入エラーが出た場合は、問題を解決して再導入してから再起動してください。 +AutoPkgを手動で開かないでください。既存環境・更新には通常pkgを使用し、同じUSBでWEXとOCLPのAutoPkgを併用しないでください。OCLPアプリ・KDK・MetallibSupportPkgは不要です。 +`0xA03`は未承認kextのロードを許可する設定で、追加の`0x200`を後から外しても承認が維持されるとは限りません。 ## アンインストール -このリポジトリの最新の[`uninstall.sh`](uninstall.sh)をダウンロードし、次を実行します。 +最新版の[`uninstall.sh`](uninstall.sh)をダウンロードし、実行後に再起動します。 ```sh sudo bash uninstall.sh ``` -削除成功後に再起動してください。本プロジェクトが配布するグラフィックス資材と -scalingの上書き設定を削除し、AuxKCを更新してグラフィックスpkgのreceiptを解除します。 -導入したpkgのバージョンによらず最新のスクリプトを使用します。他のCoreMedia設定は維持します。 -EFI内のWEX・Lilu・AMFIPassの削除や、以前のグラフィックス構成の復元は行いません。 - -AMFIPassと削除スクリプトは、グラフィックスpkgとは独立してリポジトリで管理します。 -Releaseに添付するのはpkgとそのチェックサムです。 +どちらの方法で導入したGraphicsも削除し、AuxKCを生成し直します。EFIの部品は削除せず、以前のグラフィックス構成も復元しません。導入エラーは`/var/log/install.log`で確認できます。 ## ビルド -Xcode Command Line ToolsとPython 3.10以上を用意したmacOSで実行します。 +macOS、Xcode Command Line Tools、Python 3.10以上が必要です。検査にはNode.jsと`rcodesign` 0.29.0も使用します。 ```sh python3 tools/build.py -python3 tools/test.py dist/WhateverXe-Graphics-0.3.1.pkg +python3 tools/test.py dist/WhateverXe-Graphics-0.4.0.pkg ``` -検証にはNode.jsと`rcodesign` 0.29.0も必要です。CIでは両方を用意します。 -ビルダーはGit内の署名済み`payloads/Common`とOS別ディレクトリを使用し、 -Apple原本の取得・バイナリ改変・署名鍵の使用は行いません。出力先は`dist/`です。 -導入先MacにPython・Node.js・rcodesignを用意する必要はありません。 +AutoPkgはビルド時に`--autopkg`を追加し、`dist/autopkg/AutoPkg-Assets.pkg`を検査します。 +Git内の署名済み資材を使用するため、Apple原本の取得や署名鍵は不要です。 -[ソース・署名情報](docs/SOURCES.md)。パッケージング用ツールのライセンスは第三者の -payloadには適用されません。[権利表記](THIRD_PARTY.md)を参照してください。 +[ソース・署名情報](docs/SOURCES.md) · [第三者の権利表記](THIRD_PARTY.md) diff --git a/docs/SOURCES.md b/docs/SOURCES.md index 49c2f8d..d0e7bb0 100644 --- a/docs/SOURCES.md +++ b/docs/SOURCES.md @@ -9,8 +9,8 @@ for this repository. Source and its shared headers remain in [WhateverXe](https://github.com/b00t0x/WhateverXe). All supported macOS versions -use one RELEASE build of AppleIntelTGLCompat 0.6.1 from WEX commit -[`eb3a2e2`](https://github.com/b00t0x/WhateverXe/tree/eb3a2e24cd55120a0aa3c1c650750bb9c09820c6/AppleIntelTGLCompat). +use one RELEASE build of AppleIntelTGLCompat 0.7.0 from WEX commit +[`2aa06ad`](https://github.com/b00t0x/WhateverXe/tree/2aa06ad013e08f7b79779d446cdd12084b4e3dfd/AppleIntelTGLCompat). Build that checkout with `python3 tools/build.py --release`, then sign the resulting kext with the Mod chain before importing the complete bundle into `payloads/Common/Library/Extensions/`. The package contains no per-OS provider @@ -18,6 +18,11 @@ copies. OS admission uses the shared WEX kernel-version selector; physical-devic and binding guards remain in the shared source. The provider also carries the source GraphicsPolicy.plist personality, restricted to admitted Display13 Intel framebuffer clients; it does not override policy for other GPUs. +The provider includes the USB-C DisplayPort Alt Mode capability required by +the corresponding WEX connector support, including admission when another +output such as HDMI is connected. It also recognizes the complete Linux i915 +Alder Lake-P and Raptor Lake-P/U PCI ID sets, including the single-DIMM +`4626` identity; WEX must use the same updated device table. [Machine-readable provenance](payload-provenance.json) records this single source revision, build configuration, source file hash and final signed executable hash. @@ -31,16 +36,39 @@ The provider release version is independent of this ABI compatibility floor. `payloads/Common` contains the shared TGLCompat kext, GL bundle and compiler adapter. OS-named directories contain complete signed graphics/framebuffer, Metal, VA and OpenCL -units. The same compiler adapter serves Monterey through Tahoe; its unchanged Apple +units. Framebuffer and accelerator PCI personalities use the supported IDs recorded +in `tools/policy.json`; build and extracted-package checks require both client +match sets to agree with that list. ID additions preserve driver code and +re-sign the complete bundles. The same compiler adapter serves Monterey through Tahoe; its unchanged Apple backend and runtime accompany those OS payloads. Big Sur uses its native compiler plugin. The common GL payload uses one set of exact-layout URB rules for four/six/eight-bank VS-only and six-bank VS/GS allocations. The four-bank VS allocation ends at 160 KiB; the other measured layouts end at 360 KiB. The signed executable and predecessor hashes are recorded in `payload-provenance.json`. +The GL, VA and OS-specific OpenCL dispatches admit the same physical IDs as +the supported device list. OpenCL uses exact vendor-checked bitmaps to fit +its existing code padding. Original compiler backends remain byte-identical; +these additions do not alter shader, URB or codec behavior. The signed file +hashes and accepted ID set are recorded under `userspace_admission` in the +provenance file and checked before package validation. + The imported assets preserve the established Data paths and OS-specific ABI adaptations. The builder never rewrites them or chooses hardware/connector paths. +The Sequoia/Tahoe `impostor.dylib` and `TGLVA` companions select the OS family +without a product-build allowlist. Metal checks the method types and descriptor +private-pointer contract; VA retains its donor vtable and SPS input checks. +`servicing_adapters` in `payload-provenance.json` records the companion source +hashes and signed outputs. `descriptor.dylib`, `libigdmd.dylib` and the donor +driver code/data are preserved; the enclosing bundles are sealed with the Mod chain. +Package build/test checks cover the servicing adapters in both normal payloads +and AutoPkg resources. Source-build labels remain provenance only. +The companion also replaces the imported bridge's numeric shared-cache threshold +with dyld's current cache range. Only its symbol-resolved, byte-verified predicate +entry is redirected in process memory; projection code and the signed on-disk +bridge are unchanged. The companion remains mapped for that redirect's lifetime. + On Sonoma–Tahoe the adapter uses the OS GPUCompiler's native AIR-v4 serializer. It checks the required APIs, System paths and shared LLVM image identity rather than pinning compiler UUIDs. Missing APIs or incompatible inputs produce an @@ -74,6 +102,29 @@ for CMS/signature checks, alongside Apple's `codesign`. The Mod chain need not be trusted by the build host. Signing happens before an asset is imported here; there are no signing secrets in Actions. +## Installer-time package chainloading + +The optional AutoPkg build uses the additional-package entry point described in +[OCLP PR #986](https://github.com/dortania/OpenCore-Legacy-Patcher/pull/986). +Upstream [AutoPkgInstaller 1.0.4](https://github.com/dortania/OpenCore-Legacy-Patcher/blob/main/payloads/Kexts/Acidanthera/AutoPkgInstaller-v1.0.4-RELEASE.zip) +registers the fixed `Library/Packages/AutoPkg-Assets.pkg` path during Installer +boot. The ZIP checked on 2026-10-27 has SHA-256 +`91368c6e37002d19f5b8f39a6746790b8f73fc17a80fb27ab78d9ae743725745`. +The kext is obtained separately; this repository does not redistribute it. +Its plugin accepts Darwin 20–24 by default and provides `-autopkgbeta`. + +The Graphics AutoPkg contains the existing signed payloads and native shell +scripts. It does not embed OCLP, its patch-selection engine or support DMGs. +A single script-only component selects Common and the running OS from private +script resources, then builds AuxKC. It uses the native package restart requirement, +including `postinstall-action="restart"` on that component. This component +metadata is also used by [Yubico's package builder](https://github.com/Yubico/ifd-yubico/blob/master/build-installer.sh). +The package scripts do not force a reboot or query in-progress receipts. +As documented by [munki-pkg](https://github.com/munki/munki-pkg#payload-free-packages), +`pkgbuild --nopayload` leaves no package receipt. AutoPkg success is recorded in +the install log and install history; its component identifier is not a receipt. +No OCLP application source is copied into this package. + ## Repository utilities and package releases The committed [`uninstall.sh`](../uninstall.sh) runs on its own and is maintained diff --git a/docs/payload-provenance.json b/docs/payload-provenance.json index 028b9b0..9f1abbd 100644 --- a/docs/payload-provenance.json +++ b/docs/payload-provenance.json @@ -2,28 +2,131 @@ "provider_source_repository": "https://github.com/b00t0x/WhateverXe", "providers": { "Common": { - "source_commit": "eb3a2e24cd55120a0aa3c1c650750bb9c09820c6", + "source_commit": "2aa06ad013e08f7b79779d446cdd12084b4e3dfd", "source_file": "AppleIntelTGLCompat/AppleIntelTGLCompat.cpp", - "source_file_sha256": "0098339f3fec98209769b4b9f28db5fff325b981dac2c7331693be30af652248", - "version": "0.6.1", + "source_file_sha256": "2a5f7622cbd35e222d1d0b1e3f78f421bd0a9f691fec51a7b18d3725ab61c445", + "version": "0.7.0", "configuration": "RELEASE", "build_command": "python3 tools/build.py --release", - "sha256": "dd2e222d47a857de809c6036316a0db07c257a67aea8ad54e47c09908f176b9c", + "sha256": "ea7d24b13c9554b361f82c714c4acc124cfa1f7155669e1b8663a1827630f1d0", "policy_source_file": "AppleIntelTGLCompat/GraphicsPolicy.plist", "policy_source_sha256": "dd9555491052208445abbd9daa96dd0a9dd4e5e71b1e6a14355224199cfb17eb", - "compatible_version": "0.5.0" + "compatible_version": "0.5.0", + "device_table_source_file": "WhateverXe/kern_xelp_devices.hpp", + "device_table_source_sha256": "7df149488e4a51066ca9953817c7e3529bc4a630e81442da83c116297d5dfad9" } }, "amfipass_sha256": "71f41de42e355d2a83e6f093ef34a5b24d0a9c9a9085830b2317f1b874f56250", "mod_leaf_sha1": "6de7fc5377deac4f5fe21194684f57f553c3592c", "compiler_adapter": { "sha256": "11609123ce5b930aee500736f8bd504cd0280c37654f8e9f353fcc9fc876aff0", - "modern_path": "OS-native AIR-v4 on Darwin 23–25; API and image checks without UUID pinning or translator fallback", - "legacy_path": "Direct compiler input on Darwin 21–22; not used on Darwin 20" + "modern_path": "OS-native AIR-v4 on Darwin 23\u201325; API and image checks without UUID pinning or translator fallback", + "legacy_path": "Direct compiler input on Darwin 21\u201322; not used on Darwin 20" }, "gl_driver": { - "sha256": "404b85e5b547fd9486bf8f10e8f55244708bff06d21d0a3091a0e159c74e63bb", - "predecessor_sha256": "a1d8cc1863a2813ab54f5db84c197a9a1c3bc80796d2402563b6aa3e159da5f6", + "sha256": "b0791039b77df44784b63ba36d37c266055092acbcc3b0c29ad1f9a5e8fb6008", + "predecessor_sha256": "03b0638678c9d0da63b41b5255eae20e27afa5bf820999391c406cde003944b9", "urb_corrections": "One exact-layout rule set for four/six/eight-bank VS-only and six-bank VS/GS allocations; no chained handlers." + }, + "userspace_admission": { + "device_ids": [ + "4626", + "4628", + "462a", + "4680", + "4682", + "4688", + "468a", + "468b", + "4690", + "4692", + "4693", + "46a0", + "46a1", + "46a2", + "46a3", + "46a6", + "46a8", + "46aa", + "46b0", + "46b1", + "46b2", + "46b3", + "46c0", + "46c1", + "46c2", + "46c3", + "46d0", + "46d1", + "46d2", + "46d3", + "46d4", + "9a40", + "9a49", + "9a59", + "9a60", + "9a68", + "9a70", + "9a78", + "9ac0", + "9ac9", + "9ad9", + "9af8", + "a720", + "a721", + "a780", + "a781", + "a782", + "a783", + "a788", + "a789", + "a78a", + "a78b", + "a7a0", + "a7a1", + "a7a8", + "a7a9", + "a7aa", + "a7ab", + "a7ac", + "a7ad" + ], + "files": { + "Common/Library/GPUBundles/AppleIntelTGLGraphicsGLDriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsGLDriver": "b0791039b77df44784b63ba36d37c266055092acbcc3b0c29ad1f9a5e8fb6008", + "Big Sur/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver": "5cbddcb193e9780fc3d482023ca0c3cbf5d80fc4c03e8146e13f15560cbdbc0e", + "Monterey/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver": "447574f51c0e2c2ffc1022b556effac81bb2325b5c5d6b2b53c483d5c790a049", + "Ventura/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver": "e69a79553a3f91e51359ff0e0f7850c91959c90461c158ea4c73e8207909717a", + "Sonoma/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver": "cff913f6bc113217ebeccba602ba4a54d8434919a6490aa24986c23afc9592c2", + "Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver": "1c860fc8aee1ad690f7bf7551132bae631f5bd563ccd8204acbdb2a949ac5dc9", + "Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver": "a972cdb7ddd56bcf38c3ab71e874b73efc34bc683d30e49f0a1a1919625a726d", + "Big Sur/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib": "6a4b9aaa34742ac8033b4ecce305825de01647e928464a3501c0b54455371347", + "Monterey/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib": "2f39439620f8ef81fd5dda7277e669f72b8597bc3ad41004fbea6a569ae92d7d", + "Ventura/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib": "912322c44c269db8a93db7a194e97215550b210f3a389f43a83765db66d72a48", + "Sonoma/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib": "8d06b528b454b6cb90295541650a7b3cd6be28a3ee54b2526588773b3df6fdcc", + "Sequoia/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib": "02da3606ae5419abe474eee1a348c1f19e6baa568d3851342554ca18367e4ae0", + "Tahoe/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib": "88cdf5bbc18137dc2f03e414aa3ca3a6d3e91e0cacdc162582d04de91808f9eb" + }, + "scope": "Exact physical-ID dispatch to existing GL USC, VA and OS-specific OpenCL IGC targets; original compiler backends and shader/URB/codec paths preserved." + }, + "servicing_adapters": { + "admission": "OS family and ABI contracts; no product-build allowlist", + "sources_sha256": { + "servicing-os.h": "0738aa64db22890b5059762946b75ef5f1bdfc0abca71c1aa7e684fdc95539e1", + "tahoe-mtl-descriptor.m": "a2ae2069753a31c95287d65595547af7195b0b13e12d8ec01d34879c370cfda5", + "tahoe-mtl-descriptor.h": "177fff11114c347393d18a3ddb4b06a5522ef4f2d1cb082e36cdf3cae14966dc", + "sequoia-mtl-archive.m": "0972f693fe62d8c4c92dc346093f9449b4ea9c0a68636dc4b2a1f9e082c9bc4e", + "va-vt-adapter.c": "e75875288584db70b1de574b2b89c106593b835a89d02b01b66581bef101cb01", + "va-vt-adapter.S": "f2dbaddc64555a2401856b9cf9688daa2573408d429d45cb396a9eea394212fe", + "va-monterey-sps.h": "b2e3ed6a00c1ab1a97984fdf9a1992d3ef7dc32c8aee7d91367cd277916b48b6", + "descriptor-cache-placement.m": "f678f1d30223e2806cb28df7adf8aa3d287d2bc0da2dd9120047e710d6fbfd14" + }, + "signed_sha256": { + "payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/MacOS/impostor.dylib": "1cc38c7941333d3f4b88316795c78ca0095addf945fa35b6ff8634ecc93a1060", + "payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA": "db879dbae1c708b5fcdb3c39e251e63e635016d19885e9186fdc6baca68414aa", + "payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/MacOS/impostor.dylib": "cd415a30e111d9ad48e6dd1936d848c1e809821aa3770c93ae7c759a4454567c", + "payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA": "cbf0a308a536d2d54565684025d32b200649681aa2fda45dd46bdfdb77b3da9e" + }, + "cache_classification": "dyld shared cache range; symbol-resolved imported predicate, full byte guard, pinned destination", + "descriptor_dependency": "@loader_path/descriptor.dylib; cold load without descriptor preload verified" } } diff --git a/payloads/Big Sur/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist b/payloads/Big Sur/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist index 14f4ebc..51c2363 100644 --- a/payloads/Big Sur/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist +++ b/payloads/Big Sur/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist @@ -313,7 +313,7 @@ IOPCIClassMatch 0x03000000&0xff000000 IOPCIPrimaryMatch - 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 + 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 0x46268086 0x46288086 0x462a8086 0x46a08086 0x46a18086 0x46a28086 0x46b08086 0x46b18086 0x46b28086 0x46c08086 0x46c18086 0x46c28086 0xa7208086 0xa7218086 0x9a598086 0x9ac08086 0x9ac98086 0x9ad98086 0x9af88086 IOProbeScore 1000 IOProviderClass diff --git a/payloads/Big Sur/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics b/payloads/Big Sur/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics index a1e8f98..83d99e8 100755 Binary files a/payloads/Big Sur/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics and b/payloads/Big Sur/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics differ diff --git a/payloads/Big Sur/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan b/payloads/Big Sur/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan index d145ab9..b39f3bd 100755 Binary files a/payloads/Big Sur/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan and b/payloads/Big Sur/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan differ diff --git a/payloads/Big Sur/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist b/payloads/Big Sur/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist index a3868c3..b457ee0 100644 --- a/payloads/Big Sur/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist +++ b/payloads/Big Sur/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist @@ -241,7 +241,7 @@ IOPCIClassMatch 0x03000000&0xff000000 IOPCIPrimaryMatch - 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 + 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 0x46268086 0x46288086 0x462a8086 0x46a08086 0x46a18086 0x46a28086 0x46b08086 0x46b18086 0x46b28086 0x46c08086 0x46c18086 0x46c28086 0xa7208086 0xa7218086 0x9a598086 0x9ac08086 0x9ac98086 0x9ad98086 0x9af88086 IOProbeScore 80000 IOProviderClass diff --git a/payloads/Big Sur/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer b/payloads/Big Sur/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer index 1e26436..e3ae57a 100755 Binary files a/payloads/Big Sur/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer and b/payloads/Big Sur/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer differ diff --git a/payloads/Big Sur/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver b/payloads/Big Sur/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver index 2061efb..8c216c4 100755 Binary files a/payloads/Big Sur/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver and b/payloads/Big Sur/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver differ diff --git a/payloads/Big Sur/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA b/payloads/Big Sur/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA index 254a31e..2b3d0cb 100755 Binary files a/payloads/Big Sur/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA and b/payloads/Big Sur/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA differ diff --git a/payloads/Big Sur/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib b/payloads/Big Sur/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib index 30567bd..5dff301 100755 Binary files a/payloads/Big Sur/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib and b/payloads/Big Sur/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib differ diff --git a/payloads/Common/Library/Extensions/AppleIntelTGLCompat.kext/Contents/Info.plist b/payloads/Common/Library/Extensions/AppleIntelTGLCompat.kext/Contents/Info.plist index 2fec8e2..882ae65 100644 --- a/payloads/Common/Library/Extensions/AppleIntelTGLCompat.kext/Contents/Info.plist +++ b/payloads/Common/Library/Extensions/AppleIntelTGLCompat.kext/Contents/Info.plist @@ -11,9 +11,9 @@ CFBundlePackageType KEXT CFBundleShortVersionString - 0.6.1 + 0.7.0 CFBundleVersion - 0.6.1 + 0.7.0 IOKitPersonalities WEX Display13 graphics policy diff --git a/payloads/Common/Library/Extensions/AppleIntelTGLCompat.kext/Contents/MacOS/AppleIntelTGLCompat b/payloads/Common/Library/Extensions/AppleIntelTGLCompat.kext/Contents/MacOS/AppleIntelTGLCompat index 625ffee..485c2b2 100755 Binary files a/payloads/Common/Library/Extensions/AppleIntelTGLCompat.kext/Contents/MacOS/AppleIntelTGLCompat and b/payloads/Common/Library/Extensions/AppleIntelTGLCompat.kext/Contents/MacOS/AppleIntelTGLCompat differ diff --git a/payloads/Common/Library/GPUBundles/AppleIntelTGLGraphicsGLDriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsGLDriver b/payloads/Common/Library/GPUBundles/AppleIntelTGLGraphicsGLDriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsGLDriver index aed6030..ab15014 100755 Binary files a/payloads/Common/Library/GPUBundles/AppleIntelTGLGraphicsGLDriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsGLDriver and b/payloads/Common/Library/GPUBundles/AppleIntelTGLGraphicsGLDriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsGLDriver differ diff --git a/payloads/Common/Library/GPUBundles/AppleIntelTGLGraphicsGLDriver.bundle/Contents/MacOS/libigdmd.dylib b/payloads/Common/Library/GPUBundles/AppleIntelTGLGraphicsGLDriver.bundle/Contents/MacOS/libigdmd.dylib index 5d3a6e1..d53d243 100755 Binary files a/payloads/Common/Library/GPUBundles/AppleIntelTGLGraphicsGLDriver.bundle/Contents/MacOS/libigdmd.dylib and b/payloads/Common/Library/GPUBundles/AppleIntelTGLGraphicsGLDriver.bundle/Contents/MacOS/libigdmd.dylib differ diff --git a/payloads/Monterey/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist b/payloads/Monterey/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist index 14f4ebc..51c2363 100644 --- a/payloads/Monterey/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist +++ b/payloads/Monterey/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist @@ -313,7 +313,7 @@ IOPCIClassMatch 0x03000000&0xff000000 IOPCIPrimaryMatch - 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 + 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 0x46268086 0x46288086 0x462a8086 0x46a08086 0x46a18086 0x46a28086 0x46b08086 0x46b18086 0x46b28086 0x46c08086 0x46c18086 0x46c28086 0xa7208086 0xa7218086 0x9a598086 0x9ac08086 0x9ac98086 0x9ad98086 0x9af88086 IOProbeScore 1000 IOProviderClass diff --git a/payloads/Monterey/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics b/payloads/Monterey/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics index 8a6f659..b886185 100755 Binary files a/payloads/Monterey/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics and b/payloads/Monterey/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics differ diff --git a/payloads/Monterey/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan b/payloads/Monterey/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan index fcc39e9..7dd9f43 100755 Binary files a/payloads/Monterey/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan and b/payloads/Monterey/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan differ diff --git a/payloads/Monterey/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist b/payloads/Monterey/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist index a3868c3..b457ee0 100644 --- a/payloads/Monterey/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist +++ b/payloads/Monterey/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist @@ -241,7 +241,7 @@ IOPCIClassMatch 0x03000000&0xff000000 IOPCIPrimaryMatch - 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 + 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 0x46268086 0x46288086 0x462a8086 0x46a08086 0x46a18086 0x46a28086 0x46b08086 0x46b18086 0x46b28086 0x46c08086 0x46c18086 0x46c28086 0xa7208086 0xa7218086 0x9a598086 0x9ac08086 0x9ac98086 0x9ad98086 0x9af88086 IOProbeScore 80000 IOProviderClass diff --git a/payloads/Monterey/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer b/payloads/Monterey/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer index 119431d..133c8be 100755 Binary files a/payloads/Monterey/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer and b/payloads/Monterey/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer differ diff --git a/payloads/Monterey/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver b/payloads/Monterey/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver index 07e5196..5e191f2 100755 Binary files a/payloads/Monterey/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver and b/payloads/Monterey/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver differ diff --git a/payloads/Monterey/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA b/payloads/Monterey/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA index e2ab495..1ca8f1b 100755 Binary files a/payloads/Monterey/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA and b/payloads/Monterey/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA differ diff --git a/payloads/Monterey/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib b/payloads/Monterey/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib index aceed93..a1ef3a3 100755 Binary files a/payloads/Monterey/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib and b/payloads/Monterey/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib differ diff --git a/payloads/Sequoia/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist b/payloads/Sequoia/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist index d870cca..721adc6 100644 --- a/payloads/Sequoia/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist +++ b/payloads/Sequoia/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist @@ -313,7 +313,7 @@ IOPCIClassMatch 0x03000000&0xff000000 IOPCIPrimaryMatch - 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 + 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 0x46268086 0x46288086 0x462a8086 0x46a08086 0x46a18086 0x46a28086 0x46b08086 0x46b18086 0x46b28086 0x46c08086 0x46c18086 0x46c28086 0xa7208086 0xa7218086 0x9a598086 0x9ac08086 0x9ac98086 0x9ad98086 0x9af88086 IOProbeScore 1000 IOProviderClass diff --git a/payloads/Sequoia/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics b/payloads/Sequoia/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics index c28a792..87f3ceb 100755 Binary files a/payloads/Sequoia/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics and b/payloads/Sequoia/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics differ diff --git a/payloads/Sequoia/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan b/payloads/Sequoia/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan index 534f5b4..de3384b 100755 Binary files a/payloads/Sequoia/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan and b/payloads/Sequoia/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan differ diff --git a/payloads/Sequoia/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist b/payloads/Sequoia/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist index 4188355..f8c2918 100644 --- a/payloads/Sequoia/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist +++ b/payloads/Sequoia/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist @@ -241,7 +241,7 @@ IOPCIClassMatch 0x03000000&0xff000000 IOPCIPrimaryMatch - 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 + 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 0x46268086 0x46288086 0x462a8086 0x46a08086 0x46a18086 0x46a28086 0x46b08086 0x46b18086 0x46b28086 0x46c08086 0x46c18086 0x46c28086 0xa7208086 0xa7218086 0x9a598086 0x9ac08086 0x9ac98086 0x9ad98086 0x9af88086 IOProbeScore 80000 IOProviderClass diff --git a/payloads/Sequoia/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer b/payloads/Sequoia/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer index 560d0bf..74baffa 100755 Binary files a/payloads/Sequoia/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer and b/payloads/Sequoia/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer differ diff --git a/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsMTLDriver b/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsMTLDriver index 4e0ff0a..8189be8 100755 Binary files a/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsMTLDriver and b/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsMTLDriver differ diff --git a/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/MacOS/impostor.dylib b/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/MacOS/impostor.dylib index 48da0e4..262dcbd 100755 Binary files a/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/MacOS/impostor.dylib and b/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/MacOS/impostor.dylib differ diff --git a/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/_CodeSignature/CodeResources b/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/_CodeSignature/CodeResources index c16a383..35c37dd 100644 --- a/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/_CodeSignature/CodeResources +++ b/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/_CodeSignature/CodeResources @@ -248,7 +248,7 @@ cdhash - FCEdA7wF+YDU22+UEXcBvfOAQGU= + u5LCkAh/hqTTm6LMjC0XMZSQfZw= requirement certificate leaf = H"6de7fc5377deac4f5fe21194684f57f553c3592c" diff --git a/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver b/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver index 6eafbb5..6289cd5 100755 Binary files a/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver and b/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver differ diff --git a/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA b/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA index e532204..1ec5695 100755 Binary files a/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA and b/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA differ diff --git a/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/_CodeSignature/CodeResources b/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/_CodeSignature/CodeResources index 1d38f1d..316fa41 100644 --- a/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/_CodeSignature/CodeResources +++ b/payloads/Sequoia/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/_CodeSignature/CodeResources @@ -15,7 +15,7 @@ cdhash - kL0rhdeEImeV9C7qEI0fyt6R5h4= + GUN0tH4TFQ4LuQneRLrno0ZaK0o= requirement certificate leaf = H"6de7fc5377deac4f5fe21194684f57f553c3592c" diff --git a/payloads/Sequoia/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib b/payloads/Sequoia/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib index 9e561de..2098eef 100755 Binary files a/payloads/Sequoia/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib and b/payloads/Sequoia/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib differ diff --git a/payloads/Sonoma/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist b/payloads/Sonoma/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist index d870cca..721adc6 100644 --- a/payloads/Sonoma/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist +++ b/payloads/Sonoma/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist @@ -313,7 +313,7 @@ IOPCIClassMatch 0x03000000&0xff000000 IOPCIPrimaryMatch - 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 + 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 0x46268086 0x46288086 0x462a8086 0x46a08086 0x46a18086 0x46a28086 0x46b08086 0x46b18086 0x46b28086 0x46c08086 0x46c18086 0x46c28086 0xa7208086 0xa7218086 0x9a598086 0x9ac08086 0x9ac98086 0x9ad98086 0x9af88086 IOProbeScore 1000 IOProviderClass diff --git a/payloads/Sonoma/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics b/payloads/Sonoma/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics index 8ca4cf8..ef68824 100755 Binary files a/payloads/Sonoma/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics and b/payloads/Sonoma/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics differ diff --git a/payloads/Sonoma/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan b/payloads/Sonoma/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan index 3972fb3..c55b6c8 100755 Binary files a/payloads/Sonoma/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan and b/payloads/Sonoma/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan differ diff --git a/payloads/Sonoma/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist b/payloads/Sonoma/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist index 4188355..f8c2918 100644 --- a/payloads/Sonoma/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist +++ b/payloads/Sonoma/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist @@ -241,7 +241,7 @@ IOPCIClassMatch 0x03000000&0xff000000 IOPCIPrimaryMatch - 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 + 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 0x46268086 0x46288086 0x462a8086 0x46a08086 0x46a18086 0x46a28086 0x46b08086 0x46b18086 0x46b28086 0x46c08086 0x46c18086 0x46c28086 0xa7208086 0xa7218086 0x9a598086 0x9ac08086 0x9ac98086 0x9ad98086 0x9af88086 IOProbeScore 80000 IOProviderClass diff --git a/payloads/Sonoma/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer b/payloads/Sonoma/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer index f029858..c826159 100755 Binary files a/payloads/Sonoma/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer and b/payloads/Sonoma/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer differ diff --git a/payloads/Sonoma/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver b/payloads/Sonoma/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver index 0324052..a3705ad 100755 Binary files a/payloads/Sonoma/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver and b/payloads/Sonoma/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver differ diff --git a/payloads/Sonoma/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA b/payloads/Sonoma/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA index 2afc5c1..565d364 100755 Binary files a/payloads/Sonoma/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA and b/payloads/Sonoma/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA differ diff --git a/payloads/Sonoma/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib b/payloads/Sonoma/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib index 9bc21fe..f4e918a 100755 Binary files a/payloads/Sonoma/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib and b/payloads/Sonoma/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib differ diff --git a/payloads/Tahoe/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist b/payloads/Tahoe/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist index d870cca..721adc6 100644 --- a/payloads/Tahoe/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist +++ b/payloads/Tahoe/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist @@ -313,7 +313,7 @@ IOPCIClassMatch 0x03000000&0xff000000 IOPCIPrimaryMatch - 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 + 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 0x46268086 0x46288086 0x462a8086 0x46a08086 0x46a18086 0x46a28086 0x46b08086 0x46b18086 0x46b28086 0x46c08086 0x46c18086 0x46c28086 0xa7208086 0xa7218086 0x9a598086 0x9ac08086 0x9ac98086 0x9ad98086 0x9af88086 IOProbeScore 1000 IOProviderClass diff --git a/payloads/Tahoe/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics b/payloads/Tahoe/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics index 4db30da..19aeba9 100755 Binary files a/payloads/Tahoe/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics and b/payloads/Tahoe/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics differ diff --git a/payloads/Tahoe/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan b/payloads/Tahoe/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan index 4e5c37b..e588fa2 100755 Binary files a/payloads/Tahoe/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan and b/payloads/Tahoe/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan differ diff --git a/payloads/Tahoe/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist b/payloads/Tahoe/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist index 4188355..f8c2918 100644 --- a/payloads/Tahoe/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist +++ b/payloads/Tahoe/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist @@ -241,7 +241,7 @@ IOPCIClassMatch 0x03000000&0xff000000 IOPCIPrimaryMatch - 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 + 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 0x46268086 0x46288086 0x462a8086 0x46a08086 0x46a18086 0x46a28086 0x46b08086 0x46b18086 0x46b28086 0x46c08086 0x46c18086 0x46c28086 0xa7208086 0xa7218086 0x9a598086 0x9ac08086 0x9ac98086 0x9ad98086 0x9af88086 IOProbeScore 80000 IOProviderClass diff --git a/payloads/Tahoe/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer b/payloads/Tahoe/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer index 6685c55..2fb32ce 100755 Binary files a/payloads/Tahoe/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer and b/payloads/Tahoe/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer differ diff --git a/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsMTLDriver b/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsMTLDriver index 72a7e2b..0ea0006 100755 Binary files a/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsMTLDriver and b/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsMTLDriver differ diff --git a/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/MacOS/impostor.dylib b/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/MacOS/impostor.dylib index b803d45..15bea1f 100755 Binary files a/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/MacOS/impostor.dylib and b/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/MacOS/impostor.dylib differ diff --git a/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/_CodeSignature/CodeResources b/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/_CodeSignature/CodeResources index 0036b8e..b7b4ebb 100644 --- a/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/_CodeSignature/CodeResources +++ b/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/_CodeSignature/CodeResources @@ -248,7 +248,7 @@ cdhash - 3klVi4f2YLL5DJdIxAnye0AH3u0= + SCeeGGp8yt8I9CzoyZteYpVaPqw= requirement certificate leaf = H"6de7fc5377deac4f5fe21194684f57f553c3592c" diff --git a/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver b/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver index 52acbc8..fb0c416 100755 Binary files a/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver and b/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver differ diff --git a/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA b/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA index 9f08954..0663dce 100755 Binary files a/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA and b/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA differ diff --git a/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/_CodeSignature/CodeResources b/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/_CodeSignature/CodeResources index fce94f0..4cfe5e6 100644 --- a/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/_CodeSignature/CodeResources +++ b/payloads/Tahoe/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/_CodeSignature/CodeResources @@ -15,7 +15,7 @@ cdhash - fCdDkbeNzDawwPfW+2fToFMnSKY= + w+Z5SNOmBB6LNalwj1I2qDRHorM= requirement certificate leaf = H"6de7fc5377deac4f5fe21194684f57f553c3592c" diff --git a/payloads/Tahoe/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib b/payloads/Tahoe/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib index dae7eda..116caa1 100755 Binary files a/payloads/Tahoe/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib and b/payloads/Tahoe/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib differ diff --git a/payloads/Ventura/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist b/payloads/Ventura/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist index d870cca..721adc6 100644 --- a/payloads/Ventura/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist +++ b/payloads/Ventura/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/Info.plist @@ -313,7 +313,7 @@ IOPCIClassMatch 0x03000000&0xff000000 IOPCIPrimaryMatch - 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 + 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 0x46268086 0x46288086 0x462a8086 0x46a08086 0x46a18086 0x46a28086 0x46b08086 0x46b18086 0x46b28086 0x46c08086 0x46c18086 0x46c28086 0xa7208086 0xa7218086 0x9a598086 0x9ac08086 0x9ac98086 0x9ad98086 0x9af88086 IOProbeScore 1000 IOProviderClass diff --git a/payloads/Ventura/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics b/payloads/Ventura/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics index 71f85f3..4dad817 100755 Binary files a/payloads/Ventura/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics and b/payloads/Ventura/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics differ diff --git a/payloads/Ventura/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan b/payloads/Ventura/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan index 11f2cd2..771244b 100755 Binary files a/payloads/Ventura/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan and b/payloads/Ventura/Library/Extensions/AppleIntelTGLGraphics.kext/Contents/MacOS/AppleIntelTGLGraphics_kasan differ diff --git a/payloads/Ventura/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist b/payloads/Ventura/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist index 4188355..f8c2918 100644 --- a/payloads/Ventura/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist +++ b/payloads/Ventura/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/Info.plist @@ -241,7 +241,7 @@ IOPCIClassMatch 0x03000000&0xff000000 IOPCIPrimaryMatch - 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 + 0x9a408086 0x9a498086 0x9a788086 0x9a608086 0x9a688086 0x9a708086 0x46808086 0x46828086 0x46888086 0x468a8086 0x468b8086 0x46908086 0x46928086 0x46938086 0xa7808086 0xa7818086 0xa7828086 0xa7838086 0xa7888086 0xa7898086 0xa78a8086 0xa78b8086 0x46a38086 0x46a68086 0x46a88086 0x46aa8086 0x46b38086 0x46c38086 0xa7a08086 0xa7a18086 0xa7a88086 0xa7a98086 0xa7aa8086 0xa7ab8086 0xa7ac8086 0xa7ad8086 0x46268086 0x46288086 0x462a8086 0x46a08086 0x46a18086 0x46a28086 0x46b08086 0x46b18086 0x46b28086 0x46c08086 0x46c18086 0x46c28086 0xa7208086 0xa7218086 0x9a598086 0x9ac08086 0x9ac98086 0x9ad98086 0x9af88086 IOProbeScore 80000 IOProviderClass diff --git a/payloads/Ventura/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer b/payloads/Ventura/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer index d35bd9f..f34a841 100755 Binary files a/payloads/Ventura/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer and b/payloads/Ventura/Library/Extensions/AppleIntelTGLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelTGLGraphicsFramebuffer differ diff --git a/payloads/Ventura/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver b/payloads/Ventura/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver index 85c5a10..8b3eaaf 100755 Binary files a/payloads/Ventura/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver and b/payloads/Ventura/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsVADriver differ diff --git a/payloads/Ventura/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA b/payloads/Ventura/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA index 908db40..dd52a47 100755 Binary files a/payloads/Ventura/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA and b/payloads/Ventura/Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA differ diff --git a/payloads/Ventura/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib b/payloads/Ventura/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib index a1451bf..b9e4f79 100755 Binary files a/payloads/Ventura/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib and b/payloads/Ventura/Library/GPUBundles/XeOpenCL/libCLVMIGCPlugin.dylib differ diff --git a/tools/autopkg-install.sh b/tools/autopkg-install.sh new file mode 100644 index 0000000..b339c45 --- /dev/null +++ b/tools/autopkg-install.sh @@ -0,0 +1,22 @@ +# Resources stay in Installer's temporary Scripts directory, not as installed payloads. +assets="$(/usr/bin/dirname "$0")/Assets" +for component in Common "$selected"; do + [ -d "$assets/$component/Library" ] || { + echo "AutoPkg resource missing: $component" >&2 + exit 1 + } +done +echo "WhateverXe AutoPkg: macOS $version, selected $selected" +for component in Common "$selected"; do + library="$assets/$component/Library" + for category in Extensions GPUBundles; do + source="$library/$category" + [ -d "$source" ] || continue + /bin/mkdir -p "/Library/$category" + for bundle in "$source"/*; do + target="/Library/$category/${bundle##*/}" + /usr/bin/ditto --norsrc --noextattr --noacl --noqtn "$bundle" "$target" + /usr/sbin/chown -R root:wheel "$target" + done + done +done diff --git a/tools/autopkg-preinstall.sh b/tools/autopkg-preinstall.sh new file mode 100644 index 0000000..3cd8b69 --- /dev/null +++ b/tools/autopkg-preinstall.sh @@ -0,0 +1,30 @@ +# Only the installed OS's first-boot package phase may run this package. +[ "${3:-}" = / ] || { echo 'AutoPkg requires the running target OS.' >&2; exit 1; } +[ ! -e /var/db/.AppleSetupDone ] || { + echo 'AutoPkg requires a fresh macOS installation before Setup Assistant.' >&2 + exit 1 +} +# Policy ranges are generated from the same source as the normal Installer UI. +version=$(/usr/bin/sw_vers -productVersion) +selected=$(/usr/bin/awk -v actual="$version" ' + function compare(a, b, aa, bb, na, nb, i) { + na = split(a, aa, "."); nb = split(b, bb, ".") + for (i = 1; i <= na || i <= nb; i++) { + if (aa[i] + 0 < bb[i] + 0) return -1 + if (aa[i] + 0 > bb[i] + 0) return 1 + } + return 0 + } + BEGIN { +@OS_RANGES@ + exit 1 + } +') || { echo "Unsupported AutoPkg macOS version: $version" >&2; exit 1; } +# Reject existing Graphics bundles, including files left by a failed attempt. +# A normal Graphics package is the supported route for an existing installation. +for path in @BUNDLE_PATHS@; do + [ ! -e "/$path" ] && [ ! -L "/$path" ] || { + echo "AutoPkg requires a clean installation; already present: /$path" >&2 + exit 1 + } +done diff --git a/tools/build.py b/tools/build.py index d007549..e065490 100644 --- a/tools/build.py +++ b/tools/build.py @@ -10,6 +10,7 @@ import xml.etree.ElementTree as ET from pathlib import Path from kext_dependencies import check_payload_sets +from servicing_policy import check_payloads HERE = Path(__file__).resolve().parent PREFIX = 'org.b00t0x.WhateverXe' @@ -27,13 +28,16 @@ def shell_script(path, body): def main(): parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument('--output', type=Path, default=ROOT / 'dist') + parser.add_argument('--output', type=Path) parser.add_argument('--tag', default='') + parser.add_argument('--autopkg', action='store_true', + help='build one AutoPkg-Assets.pkg for all supported fresh macOS installations') args = parser.parse_args() policy = json.loads((HERE / 'policy.json').read_text()) assert not args.tag or args.tag == 'v' + policy['package_version'], 'tag/version mismatch' # Reject incompatible payloads before creating any package or output directory. - check_payload_sets(ROOT / 'payloads', policy['systems']) + check_payload_sets(ROOT / 'payloads', policy['systems'], policy['device_ids']) + check_payloads(ROOT / 'payloads') components, sources = {}, {} for name in ['Common'] + [s['payload'] for s in policy['systems']]: directory = ROOT / 'payloads' / name @@ -56,9 +60,13 @@ def main(): name = system['payload'] assert not (components['Common'].keys() & components[name].keys()), name manifests[name] = components['Common'] | components[name] - output = args.output.resolve() + output = (args.output or (ROOT / 'dist' / 'autopkg' if args.autopkg else ROOT / 'dist')).resolve() output.mkdir(parents=True, exist_ok=True) version = policy['package_version'] + if args.autopkg: + from build_autopkg import build_autopkg + build_autopkg(output, policy, components, sources, manifests) + return with tempfile.TemporaryDirectory(prefix='xe-pkg-') as tmp: work = Path(tmp) for name, files in components.items(): @@ -109,8 +117,9 @@ def configure(items): f"system.compareVersions(system.version.ProductVersion, '{s['before']}') < 0") choice = ET.SubElement(dist, 'choice', id=component_id, title=name, visible='false', enabled='false', selected=selected) ET.SubElement(choice, 'pkg-ref', id=PREFIX + '.' + component_id) - ET.SubElement(dist, 'pkg-ref', id=PREFIX + '.' + component_id, version=version, - onConclusion='RequireRestart').text = component_id + '.pkg' + ref = ET.SubElement(dist, 'pkg-ref', id=PREFIX + '.' + component_id, version=version) + ref.set('onConclusion', 'RequireRestart') + ref.text = component_id + '.pkg' ET.indent(dist) distribution = work / 'Distribution' ET.ElementTree(dist).write(distribution, encoding='utf-8', xml_declaration=True) @@ -118,7 +127,8 @@ def configure(items): run('productbuild', '--distribution', str(distribution), '--package-path', str(work), str(package)) shutil.copyfile(distribution, output / 'Distribution.xml') # Development provenance stays outside the installer and installed system. - (output / 'manifest.json').write_text(json.dumps({'policy': policy, 'systems': manifests}, indent=2) + '\n') + manifest = {'policy': policy, 'systems': manifests} + (output / 'manifest.json').write_text(json.dumps(manifest, indent=2) + '\n') digest = hashlib.sha256(package.read_bytes()).hexdigest() (output / 'SHA256SUMS').write_text(digest + ' ' + package.name + '\n') print(json.dumps({'package': package.name, 'bytes': package.stat().st_size, diff --git a/tools/build_autopkg.py b/tools/build_autopkg.py new file mode 100644 index 0000000..3008f57 --- /dev/null +++ b/tools/build_autopkg.py @@ -0,0 +1,67 @@ +"""Build one boot-install component with private, OS-selected script resources.""" +import hashlib +import json +import tempfile +import xml.etree.ElementTree as ET +from pathlib import Path +from build import HERE, PREFIX, run, shell_script + + +def build_autopkg(output, policy, components, sources, manifests): + version = policy['package_version'] + guard = (HERE / 'autopkg-preinstall.sh').read_text() + ranges = '\n'.join( + f' if (compare(actual, "{s["minimum"]}") >= 0 && compare(actual, "{s["before"]}") < 0) ' + f'{{ print "{s["payload"]}"; exit 0 }}' for s in policy['systems']) + bundles = sorted({'/'.join(rel.split('/')[:3]) for files in components.values() for rel in files}) + assert all(' ' not in p and p.startswith(('Library/Extensions/', 'Library/GPUBundles/')) for p in bundles) + guard = guard.replace('@OS_RANGES@', ranges).replace('@BUNDLE_PATHS@', ' '.join(bundles)) + guard += '\n' + (HERE / 'preinstall.sh').read_text() + with tempfile.TemporaryDirectory(prefix='xe-autopkg-') as tmp: + work = Path(tmp) + scripts = work / 'scripts' + scripts.mkdir() + for name, files in components.items(): + for rel, info in files.items(): + target = scripts / 'Assets' / name / rel + target.parent.mkdir(parents=True, exist_ok=True) + target.write_bytes(sources[info['sha256']].read_bytes()) + target.chmod(info['mode']) + shell_script(scripts / 'preinstall', guard) + shell_script(scripts / 'postinstall', guard + '\n' + + (HERE / 'autopkg-install.sh').read_text() + '\n' + + (HERE / 'auxkc.sh').read_text() + '\n' + (HERE / 'postinstall.sh').read_text()) + component = work / 'AutoGraphics.pkg' + run('pkgbuild', '--nopayload', '--identifier', PREFIX + '.AutoGraphics', + '--version', version, '--scripts', str(scripts), str(component)) + expanded = work / 'metadata' + run('pkgutil', '--expand', str(component), str(expanded)) + info = ET.parse(expanded / 'PackageInfo') + info.getroot().set('postinstall-action', 'restart') + info.write(expanded / 'PackageInfo', encoding='utf-8', xml_declaration=True) + component.unlink() + run('pkgutil', '--flatten', str(expanded), str(component)) + dist = ET.Element('installer-gui-script', minSpecVersion='2') + ET.SubElement(dist, 'title').text = 'WhateverXe Graphics — Automatic Installation' + ET.SubElement(dist, 'options', customize='never', rootVolumeOnly='true', hostArchitectures='x86_64') + ET.SubElement(dist, 'domains', enable_anywhere='false', enable_currentUserHome='false', enable_localSystem='true') + allowed = ET.SubElement(ET.SubElement(dist, 'volume-check', script='true'), 'allowed-os-versions') + for s in policy['systems']: + ET.SubElement(allowed, 'os-version', min=s['minimum'], before=s['before']) + ET.SubElement(ET.SubElement(dist, 'choices-outline'), 'line', choice='AutoGraphics') + choice = ET.SubElement(dist, 'choice', id='AutoGraphics', title='AutoGraphics', visible='false', enabled='false', selected='true') + ET.SubElement(choice, 'pkg-ref', id=PREFIX + '.AutoGraphics') + ET.SubElement(dist, 'pkg-ref', id=PREFIX + '.AutoGraphics', version=version, + onConclusion='RequireRestart').text = component.name + ET.indent(dist) + distribution = work / 'Distribution' + ET.ElementTree(dist).write(distribution, encoding='utf-8', xml_declaration=True) + package = output / 'AutoPkg-Assets.pkg' + run('productbuild', '--distribution', str(distribution), '--package-path', str(work), str(package)) + (output / 'Distribution.xml').write_bytes(distribution.read_bytes()) + (output / 'manifest.json').write_text(json.dumps( + {'policy': policy, 'systems': manifests, 'autopkg': True}, indent=2) + '\n') + digest = hashlib.sha256(package.read_bytes()).hexdigest() + (output / 'SHA256SUMS').write_text(digest + ' ' + package.name + '\n') + print(json.dumps({'package': package.name, 'bytes': package.stat().st_size, + 'components': 1, 'sha256': digest})) diff --git a/tools/kext_dependencies.py b/tools/kext_dependencies.py index de78ef4..7aaf7bd 100644 --- a/tools/kext_dependencies.py +++ b/tools/kext_dependencies.py @@ -10,7 +10,7 @@ def version(value): return tuple(map(int, value.split('.'))) -def check_dependencies(plists, label): +def check_dependencies(plists, label, device_ids=None): providers = {} for path in plists: info = plistlib.loads(path.read_bytes()) @@ -32,12 +32,28 @@ def check_dependencies(plists, label): raise ValueError(f'{label}: {client} requires {dependency} {requested}, ' f'outside provider compatibility range {compatible}–{current}') checked += 1 + if device_ids is not None: + expected = {int(device, 16) << 16 | 0x8086 for device in device_ids} + for client in ('com.apple.driver.AppleIntelTGLGraphics', + 'com.apple.driver.AppleIntelTGLGraphicsFramebuffer'): + if client not in providers: + raise ValueError(f'{label}: missing device-match client {client}') + actual = set() + for personality in providers[client].get('IOKitPersonalities', {}).values(): + for match in personality.get('IOPCIPrimaryMatch', '').split(): + if not re.fullmatch(r'0x[0-9a-fA-F]{8}', match): + raise ValueError(f'{label}: unsupported device match {match}') + actual.add(int(match, 16)) + if actual != expected: + missing = sorted(f'{pci >> 16:04x}' for pci in expected - actual) + extra = sorted(f'{pci:08x}' for pci in actual - expected) + raise ValueError(f'{label}: {client} PCI match mismatch: missing={missing}, extra={extra}') return checked -def check_payload_sets(payloads, systems): +def check_payload_sets(payloads, systems, device_ids=None): common = list((payloads / 'Common/Library/Extensions').rglob('*.kext/Contents/Info.plist')) for system in systems: clients = list((payloads / system['payload'] / 'Library/Extensions').rglob('*.kext/Contents/Info.plist')) - if not check_dependencies(common + clients, system['name']): + if not check_dependencies(common + clients, system['name'], device_ids): raise ValueError(f"{system['name']}: no bundled kext dependencies checked") diff --git a/tools/policy.json b/tools/policy.json index d8d7278..dd68fd8 100644 --- a/tools/policy.json +++ b/tools/policy.json @@ -1,5 +1,5 @@ { - "package_version": "0.3.2", + "package_version": "0.4.0", "systems": [ { "name": "Big Sur", @@ -49,5 +49,67 @@ "payload": "Tahoe", "source_build": "25G241" } + ], + "device_ids": [ + "4626", + "4628", + "462a", + "4680", + "4682", + "4688", + "468a", + "468b", + "4690", + "4692", + "4693", + "46a0", + "46a1", + "46a2", + "46a3", + "46a6", + "46a8", + "46aa", + "46b0", + "46b1", + "46b2", + "46b3", + "46c0", + "46c1", + "46c2", + "46c3", + "46d0", + "46d1", + "46d2", + "46d3", + "46d4", + "9a40", + "9a49", + "9a59", + "9a60", + "9a68", + "9a70", + "9a78", + "9ac0", + "9ac9", + "9ad9", + "9af8", + "a720", + "a721", + "a780", + "a781", + "a782", + "a783", + "a788", + "a789", + "a78a", + "a78b", + "a7a0", + "a7a1", + "a7a8", + "a7a9", + "a7aa", + "a7ab", + "a7ac", + "a7ad" ] } diff --git a/tools/servicing_policy.py b/tools/servicing_policy.py new file mode 100644 index 0000000..db47a2d --- /dev/null +++ b/tools/servicing_policy.py @@ -0,0 +1,107 @@ +"""Reject build-identity gates in servicing adapters before and after packaging. + +This artifact regression check complements the source-level installer/ABI tests; +it is not proof of compatibility with an unknown future Apple ABI. Fixed Apple +donor binaries and their provenance hashes are intentionally outside its scope. +""" +import re +import posixpath +import struct + +ADAPTERS = ( + 'Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/MacOS/impostor.dylib', + 'Library/GPUBundles/AppleIntelTGLGraphicsMTLDriver.bundle/Contents/MacOS/descriptor.dylib', + 'Library/GPUBundles/AppleIntelTGLGraphicsVADriver.bundle/Contents/MacOS/TGLVA', + 'Library/GPUBundles/XeCompilerAdapter.bundle/Contents/MacOS/adapter.dylib', +) + + +def dylib_dependencies(data): + """Read load dependencies, excluding the image's own LC_ID_DYLIB.""" + assert data[:4] == bytes.fromhex('cffaedfe'), 'expected x86_64 Mach-O' + count, size = struct.unpack_from('= 8 and offset + length <= end + if command in (0xc, 0x80000018, 0x8000001f, 0x80000023): + name = struct.unpack_from(' 0 + assert check_dependencies(plists, build, manifest['policy']['device_ids']) > 0 for rel, p in actual.items(): data = p.read_bytes() assert hashlib.sha256(data).hexdigest() == expected[rel]['sha256'], rel @@ -87,4 +120,4 @@ assert p.stat().st_mode & 0o777 == expected[rel]['mode'], rel total += len(actual) subprocess.run(['bash', '-n', str(Path(__file__).resolve().parents[1] / 'uninstall.sh')], check=True) -print(f'PASS: {len(cases)} version boundaries, 7 standard payloads/BOMs, {total} reconstructed files, script syntax') +print(f'PASS: {len(cases)} version boundaries, {len(payload_choices)} standard payloads/BOMs, {total} reconstructed files, script syntax; autopkg={autopkg}') diff --git a/tools/test_autopkg.py b/tools/test_autopkg.py new file mode 100644 index 0000000..8a1926b --- /dev/null +++ b/tools/test_autopkg.py @@ -0,0 +1,161 @@ +#!/usr/bin/env python3 +"""Run the universal AutoPkg scripts with real resource copies in temporary roots.""" +import hashlib +import json +import os +from pathlib import Path +import plistlib +import subprocess +import sys +import tempfile +import xml.etree.ElementTree as ET +from kext_dependencies import check_dependencies +from servicing_policy import check_files as check_servicing_files + + +def files_at(root): + return {p.relative_to(root).as_posix(): p for p in root.rglob('*') if p.is_file()} + + +def check_files(actual, expected): + assert actual.keys() == expected.keys(), (actual.keys() - expected.keys(), expected.keys() - actual.keys()) + for rel, path in actual.items(): + data = path.read_bytes() + assert hashlib.sha256(data).hexdigest() == expected[rel]['sha256'], rel + assert len(data) == expected[rel]['size'], rel + assert path.stat().st_mode & 0o777 == expected[rel]['mode'], rel + + +def check_autopkg(expanded, manifest, boundaries): + policy = manifest['policy'] + assert [p.name for p in expanded.glob('*.pkg')] == ['AutoGraphics.pkg'] + component = expanded / 'AutoGraphics.pkg' + info = ET.parse(component / 'PackageInfo').getroot() + assert info.attrib['identifier'] == 'org.b00t0x.WhateverXe.AutoGraphics' + assert info.attrib['version'] == policy['package_version'] + assert info.attrib['postinstall-action'] == 'restart' + assert not (component / 'Payload').exists() + distribution = ET.parse(expanded / 'Distribution').getroot() + assert [c.attrib['id'] for c in distribution.findall('choice')] == ['AutoGraphics'] + refs = [r for r in distribution.findall('pkg-ref') if (r.text or '').strip().startswith('#')] + assert len(refs) == 1 and refs[0].attrib['onConclusion'] == 'RequireRestart' + scripts = component / 'Scripts' + assert {p.name for p in scripts.iterdir()} == {'preinstall', 'postinstall', 'Assets'} + for phase in ('preinstall', 'postinstall'): + body = (scripts / phase).read_text() + assert all(x not in body for x in ('/sbin/reboot', '/usr/sbin/pkgutil', '/bin/launchctl', '@OS_RANGES@', '@BUNDLE_PATHS@')) + subprocess.run(['bash', '-n', str(scripts / phase)], check=True) + assets = scripts / 'Assets' + assert {p.name for p in assets.iterdir()} == {'Common'} | {s['payload'] for s in policy['systems']} + common = files_at(assets / 'Common') + for system in policy['systems']: + name = system['payload'] + selected = files_at(assets / name) + assert not common.keys() & selected.keys() + actual = common | selected + check_servicing_files(actual, name) + check_files(actual, manifest['systems'][name]) + plists = [p for r, p in actual.items() if r.startswith('Library/Extensions/') and r.endswith('.kext/Contents/Info.plist')] + assert check_dependencies(plists, name, policy['device_ids']) > 0 + + cases = [(v, name, 'success' if name else 'unsupported') for v, name in boundaries.items()] + cases += [('15.8.1', 'Sequoia', failure) for failure in ( + 'configured', 'existing-payload', 'other-volume', 'no-target', + 'old-system-patch', 'aux-failed', 'missing-kc', 'copy-failed', 'missing-resource')] + for version, selected, failure in cases: + with tempfile.TemporaryDirectory(prefix='xe-autopkg-test-') as tmp: + root = Path(tmp) + library = root / 'Library' + kc = library / 'KernelCollections/AuxiliaryKernelExtensions.kc' + kc.parent.mkdir(parents=True) + kc.write_bytes(b'previous-kc') + (library / 'Extensions/Other.kext').mkdir(parents=True) + setup = root / 'AppleSetupDone' + if failure == 'configured': + setup.touch() + if failure == 'existing-payload': + p = library / 'GPUBundles/XeMetalCompiler.bundle' + p.mkdir(parents=True) + (p / 'previous').write_bytes(b'preserve') + system_library = root / 'System/Library' + if failure == 'old-system-patch': + (system_library / 'Extensions/AppleIntelTGLCompat.kext').mkdir(parents=True) + if failure == 'missing-resource': + (root / 'Assets').mkdir() + (root / 'Assets/Common').symlink_to(assets / 'Common') + else: + (root / 'Assets').symlink_to(assets) + log = root / 'calls.jsonl' + mock = root / 'mock.py' + mock.write_text('#!' + sys.executable + '\n' + '''import json, os, subprocess, sys +from pathlib import Path +name = Path(sys.argv[0]).name +args = sys.argv[1:] +with open(os.environ['XE_TEST_LOG'], 'a') as f: f.write(json.dumps([name, args]) + '\\n') +failure = os.environ['XE_TEST_FAILURE'] +if name == 'sw_vers': print(os.environ['XE_TEST_VERSION']) +elif name == 'chown': pass +elif name == 'ditto': + if failure == 'copy-failed': sys.exit(28) + sys.exit(subprocess.call(['/usr/bin/ditto', *args])) +elif name == 'kmutil': + if failure == 'aux-failed': sys.exit(27) + if failure != 'missing-kc': Path(args[args.index('-A') + 1]).write_bytes(b'new-kc') +else: sys.exit(99) +''') + mock.chmod(0o755) + replacements = {} + for tool in ('/usr/bin/sw_vers', '/usr/sbin/chown', '/usr/bin/ditto', '/usr/bin/kmutil'): + link = root / Path(tool).name + link.symlink_to(mock) + replacements[tool] = str(link) + env = dict(os.environ, XE_TEST_LOG=str(log), XE_TEST_FAILURE=failure, XE_TEST_VERSION=version) + target = '/Volumes/Other' if failure == 'other-volume' else '/' + + def execute(phase): + body = (scripts / phase).read_text() + body = body.replace('/System/Library/', '/__SYSTEM__/') + body = body.replace('/Library/', str(library) + '/') + body = body.replace('/__SYSTEM__/', str(system_library) + '/') + body = body.replace('"/$path"', '"' + str(root) + '/$path"') + body = body.replace('/var/db/.AppleSetupDone', str(setup)) + for src, dst in replacements.items(): + body = body.replace(src, dst) + script = root / phase + script.write_text(body) + argv = [] if failure == 'no-target' else ['fixture.pkg', '/', target, '/'] + return subprocess.run(['bash', str(script), *argv], env=env, capture_output=True, text=True) + + before = {r: p.read_bytes() for r, p in files_at(library).items()} + results = [execute('preinstall')] + # Also validate postinstall's own guards, even when preinstall fails. + results.append(execute('postinstall')) + calls = [json.loads(x) for x in log.read_text().splitlines()] if log.exists() else [] + kmutil = [x for x in calls if x[0] == 'kmutil'] + copied = [x for x in calls if x[0] == 'ditto'] + if failure == 'success': + assert all(r.returncode == 0 for r in results), (version, results[-1].stderr) + assert len(kmutil) == 1 and kc.read_bytes() == b'new-kc' + actual = {r: p for r, p in files_at(root).items() if r.startswith(('Library/Extensions/', 'Library/GPUBundles/'))} + check_files(actual, manifest['systems'][selected]) + check_servicing_files(actual, selected) + assert len([x for x in calls if x[0] == 'chown']) == len(copied) > 0 + assert all(x[1][:2] == ['-R', 'root:wheel'] for x in calls if x[0] == 'chown') + assert all('/Common/' in x[1][-2] or '/' + selected + '/' in x[1][-2] for x in copied) + if selected == 'Tahoe': + flag = plistlib.loads((library / 'Preferences/FeatureFlags/Domain/CoreMedia.plist').read_bytes()) + assert flag['AllowOnePassMetalScaling']['Enabled'] is False + else: + assert not (library / 'Preferences/FeatureFlags/Domain/CoreMedia.plist').exists() + else: + assert results[-1].returncode != 0, (failure, version, results[-1].stderr) + assert kc.read_bytes() == b'previous-kc', failure + if failure not in ('aux-failed', 'missing-kc', 'copy-failed', 'missing-resource'): + assert results[0].returncode != 0 and not copied and not kmutil, failure + assert {r: p.read_bytes() for r, p in files_at(library).items()} == before + if failure == 'missing-resource': + assert not copied and not kmutil + if failure == 'copy-failed': + assert not kmutil + assert not list(kc.parent.glob('.WhateverXe.*')) + print(f'PASS: 6 OS resource sets; {len(cases)} universal AutoPkg cases with real file copies, no receipt mocks') diff --git a/tools/test_dependencies.py b/tools/test_dependencies.py index 61bc9ba..a124218 100644 --- a/tools/test_dependencies.py +++ b/tools/test_dependencies.py @@ -47,6 +47,36 @@ def test_missing_provider(self): self.check(include_provider=False) +class DeviceMatchTests(unittest.TestCase): + def check(self, framebuffer, accelerator='0x46a68086 0x46268086'): + with tempfile.TemporaryDirectory() as tmp: + paths = [] + for name, matches in [('AppleIntelTGLGraphics', accelerator), + ('AppleIntelTGLGraphicsFramebuffer', framebuffer)]: + path = Path(tmp) / (name + '.plist') + path.write_bytes(plistlib.dumps({'CFBundleIdentifier': 'com.apple.driver.' + name, + 'IOKitPersonalities': {'GPU': {'IOPCIPrimaryMatch': matches}}})) + paths.append(path) + check_dependencies(paths, 'test', ['46a6', '4626']) + + def test_single_and_dual_dimm(self): + self.check('0x46a68086 0x46268086') + + def test_missing_framebuffer_identity(self): + with self.assertRaisesRegex(ValueError, "missing=.*4626"): + self.check('0x46a68086') + + def test_missing_accelerator_identity(self): + with self.assertRaisesRegex(ValueError, "missing=.*4626"): + self.check('0x46a68086 0x46268086', '0x46a68086') + + def test_unknown_or_masked_identity(self): + with self.assertRaisesRegex(ValueError, 'extra=.*12348086'): + self.check('0x46a68086 0x46268086 0x12348086') + with self.assertRaisesRegex(ValueError, 'unsupported device match'): + self.check('0x46008086&0xff00ffff') + + class BuildPreflightTests(unittest.TestCase): def setUp(self): temporary = tempfile.TemporaryDirectory() @@ -55,13 +85,20 @@ def setUp(self): # Use the real supported OS list so newly added payloads are covered. policy = json.loads((build.HERE / 'policy.json').read_text()) self.systems = policy['systems'] + self.device_ids = policy['device_ids'] + personalities = {'GPU': {'IOPCIPrimaryMatch': ' '.join('0x' + device + '8086' for device in self.device_ids)}} self.provider = self.write('Common', 'Compat', { 'CFBundleIdentifier': 'org.b00t0x.AppleIntelTGLCompat', 'CFBundleVersion': '0.6.0', 'OSBundleCompatibleVersion': '0.5.0'}) self.clients = [self.write(s['payload'], 'Framebuffer', { 'CFBundleIdentifier': 'com.apple.driver.AppleIntelTGLGraphicsFramebuffer', - 'OSBundleLibraries': {'org.b00t0x.AppleIntelTGLCompat': '0.5.0'}}) + 'OSBundleLibraries': {'org.b00t0x.AppleIntelTGLCompat': '0.5.0'}, + 'IOKitPersonalities': personalities}) for s in self.systems] + for system in self.systems: + self.write(system['payload'], 'Graphics', { + 'CFBundleIdentifier': 'com.apple.driver.AppleIntelTGLGraphics', + 'IOKitPersonalities': personalities}) def write(self, component, name, info): path = self.root / 'payloads' / component / 'Library/Extensions' / (name + '.kext') / 'Contents/Info.plist' @@ -79,7 +116,7 @@ def assert_build_rejected(self): self.assertFalse(output.exists()) def test_current_payload_sets(self): - check_payload_sets(self.root / 'payloads', self.systems) + check_payload_sets(self.root / 'payloads', self.systems, self.device_ids) def test_released_mismatch_stops_build(self): info = plistlib.loads(self.provider.read_bytes()) diff --git a/tools/test_uninstall.py b/tools/test_uninstall.py index 7bf700b..eb8a9f2 100644 --- a/tools/test_uninstall.py +++ b/tools/test_uninstall.py @@ -52,7 +52,7 @@ if os.environ['XE_TEST_FAIL'] == '1': sys.exit(27) Path(args[args.index('-A') + 1]).write_text('rebuilt') elif name == 'pkgutil' and args[0] == '--pkg-info': - sys.exit(0 if args[1] in ['org.b00t0x.WhateverXe.Common', 'org.b00t0x.WhateverXe.Tahoe'] else 1) + sys.exit(0 if args[1] in ['org.b00t0x.WhateverXe.Common', 'org.b00t0x.WhateverXe.Tahoe', 'org.b00t0x.WhateverXe.AutoGraphics'] else 1) ''') mock.chmod(0o755) body = source.replace(guard, ': # Root guard checked above; test uses a temporary tree.') @@ -79,6 +79,7 @@ expected = [] if fail else [ "pkgutil ['--forget', 'org.b00t0x.WhateverXe.Common']", "pkgutil ['--forget', 'org.b00t0x.WhateverXe.Tahoe']", + "pkgutil ['--forget', 'org.b00t0x.WhateverXe.AutoGraphics']", ] assert forgotten == expected assert not list(kc.parent.glob('.WhateverXe.*')) diff --git a/tools/verify.py b/tools/verify.py index ba45649..0ec042e 100644 --- a/tools/verify.py +++ b/tools/verify.py @@ -7,6 +7,7 @@ import subprocess from pathlib import Path from kext_dependencies import check_payload_sets +from servicing_policy import check_payloads ROOT = Path(__file__).resolve().parents[1] MOD_LEAF = '6de7fc5377deac4f5fe21194684f57f553c3592c' @@ -23,7 +24,8 @@ def main(): parser.add_argument('--rcodesign', default='rcodesign') args = parser.parse_args() policy = json.loads((ROOT / 'tools/policy.json').read_text()) - check_payload_sets(ROOT / 'payloads', policy['systems']) + check_payload_sets(ROOT / 'payloads', policy['systems'], policy['device_ids']) + check_payloads(ROOT / 'payloads') seen = set() for path in sorted((ROOT / 'payloads').rglob('*')): assert not path.is_symlink(), path @@ -56,6 +58,8 @@ def main(): result = subprocess.run(['codesign', '--verify', '--deep', '--strict', str(bundle)], capture_output=True) assert result.returncode == 0 or b'CSSMERR_TP_NOT_TRUSTED' in result.stderr, result.stderr expected = json.loads((ROOT / 'docs/payload-provenance.json').read_text()) + for name, digest in expected['servicing_adapters']['signed_sha256'].items(): + assert hashlib.sha256((ROOT / name).read_bytes()).hexdigest() == digest, name # One build supplies every OS. Reject accidentally reintroduced per-OS copies. provider = ROOT / 'payloads/Common/Library/Extensions/AppleIntelTGLCompat.kext' assert list((ROOT / 'payloads').rglob('AppleIntelTGLCompat.kext')) == [provider] @@ -67,6 +71,10 @@ def main(): assert info['CFBundleVersion'] == entry['version'] assert info['OSBundleCompatibleVersion'] == entry['compatible_version'] assert hashlib.sha256(plistlib.dumps(info['IOKitPersonalities'])).hexdigest() == entry['policy_source_sha256'], os + admission = expected['userspace_admission'] + assert set(admission['device_ids']) == set(policy['device_ids']) + for relative, sha in admission['files'].items(): + assert hashlib.sha256((ROOT / 'payloads' / relative).read_bytes()).hexdigest() == sha, relative adapter = ROOT / 'payloads/Common/Library/GPUBundles/XeCompilerAdapter.bundle/Contents/MacOS/adapter.dylib' assert hashlib.sha256(adapter.read_bytes()).hexdigest() == expected['compiler_adapter']['sha256'] gl = ROOT / 'payloads/Common/Library/GPUBundles/AppleIntelTGLGraphicsGLDriver.bundle/Contents/MacOS/AppleIntelTGLGraphicsGLDriver' diff --git a/uninstall.sh b/uninstall.sh index 03e5171..ca6a7ea 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -40,7 +40,7 @@ if [ -f "$feature" ] && /usr/libexec/PlistBuddy -c 'Print :AllowOnePassMetalScal /usr/libexec/PlistBuddy -c 'Delete :AllowOnePassMetalScaling:Enabled' "$feature" fi update_auxkc -for component in Common BigSur Monterey Ventura Sonoma Sequoia Tahoe; do +for component in Common BigSur Monterey Ventura Sonoma Sequoia Tahoe AutoGraphics; do id="org.b00t0x.WhateverXe.$component" if /usr/sbin/pkgutil --pkg-info "$id" >/dev/null 2>&1; then /usr/sbin/pkgutil --forget "$id"