Kernel-Erweiterungen
KEXTs (Kernel Extensions) sind Module, die tief in das macOS-Betriebssystem integriert werden, um dessen Funktionalität zu erweitern oder spezielle Hardware- und Systemanforderungen zu unterstützen. Sie agieren auf Kernel-Ebene – dem „Nervensystem“ des Betriebssystems – und ermöglichen dadurch den Zugriff auf Ressourcen und Funktionen, die auf Benutzerebene (Userspace) nicht direkt erreichbar sind.
Wofür benötigt man KEXTs?
- Unterstützung für nicht-native Hardware, z. B. spezielle Grafikkarten, Netzwerkkarten oder externe Speichergeräte.
- Implementierung von Dateisystemen (z. B. NTFS, FUSE), die standardmäßig in macOS nicht verfügbar sind.
- Erweiterung der Netzwerkfunktionen, etwa für VPN-Protokolle oder virtuelle Netzwerkschnittstellen.
- Integration von Sicherheitslösungen und -prüfungen auf Kernel-Ebene.
- Entwicklung von Virtualisierungsplattformen und deren Interaktion mit dem Kernel.
Vorteile von KEXTs
- Tiefer Systemzugriff: Ermöglicht Funktionen, die ohne direkten Kernel-Zugriff nicht realisierbar wären.
- Hardware-Kompatibilität: Geräte und Funktionen, die von macOS nicht standardmäßig unterstützt werden, können durch KEXTs vollständig integriert werden.
- Flexible Erweiterbarkeit: Entwickler können maßgeschneiderte Lösungen für spezifische Anforderungen erstellen.
Allgemein
Die Konfiguration Kernel-Erweiterungen wird unter Geräte → Richtlinien in einer macOS-Richtlinie über Hinzufügen angelegt. Pro Richtlinie ist eine Konfiguration dieses Typs möglich. Sie steht nur für Geräte zur Verfügung, die über eine Geräteregistrierung eingeschrieben sind, nicht für Benutzerregistrierungen.
Folgende Konfigurationsoptionen stehen im Abschnitt Allgemein zur Verfügung:
- Benutzern ohne Administratorrechte erlauben, Kernel-Erweiterungen in den Einstellungen für Sicherheit und Datenschutz zu genehmigen: Schalter, standardmäßig deaktiviert. Ist er aktiviert, können auch Benutzer ohne Administratorrechte zusätzliche Kernel-Erweiterungen genehmigen. Wirksam ab macOS 11.
- Benutzer kann zusätzliche Kernel-Erweiterungen genehmigen: Schalter, standardmäßig deaktiviert. Ist er aktiviert, können Benutzer Kernel-Erweiterungen genehmigen, die nicht ausdrücklich über die Konfiguration erlaubt sind.
- Alle Kernel-Erweiterungen erlauben, die mit diesen Teamkennungen signiert sind: Listenfeld für Teamkennungen. Gültig signierte Kernel-Erweiterungen dieser Teamkennungen dürfen geladen werden. Bleibt die Liste leer, wird keine Teamkennung übertragen.
Grundsätzlich können alle KEXTs mit derselben Teamkennung erlaubt werden. Alternativ können im nächsten Abschnitt einzelne Erweiterungen explizit mit einer bestimmten Teamkennung freigegeben werden.
Erlaubte Kernelerweiterungen
Über Hinzufügen öffnet sich der Dialog Neue Zuordnung der Team-Kennung hinzufügen. Darin wird die Team Kennung (Pflichtfeld) eingetragen und unter Bundle IDs eine Liste der zugehörigen Bundle-IDs erfasst.
| Team Kennung | Bundle IDs |
|---|---|
| 3T5GSNBU6W | io.macfuse.filesystems.macfuse.25 |

Teamkennung und Bundle-ID auslesen
Die Teamkennung kann im folgenden Beispiel aus der heruntergeladenen Datei macfuse-5.1.1.dmg ausgelesen werden:
codesign -d --verbose=2 macfuse-5.1.1.dmg 2>&1 | grep -i teamidentifier
Ausgabe:
TeamIdentifier=3T5GSNBU6W
Die Bundle-ID kann bei einer manuell installierten KEXT (z. B. macFUSE) wie folgt ermittelt werden:
kextstat | grep -i fuse
Ausgabe:
Executing: /usr/bin/kmutil showloaded
No variant specified, falling back to release
265 0 0 0x1830 0x1830 io.macfuse.filesystems.macfuse.25 (5.1.1) 67A4F7E1-82FE-30A4-A3B3-B6E8722C287A <9 7 6 5 3>
Damit ist io.macfuse.filesystems.macfuse.25 die benötigte Bundle-ID.
Hinweis
Unter Erlaubte Kernelerweiterungen können einer Teamkennung mehrere Bundle-IDs zugeordnet werden – entweder beim Anlegen eines neuen Eintrags über Hinzufügen oder beim Bearbeiten eines bestehenden Eintrags über das Dreipunkte-Menü und Bearbeiten.
Jede Teamkennung kann nur einmal angelegt werden. Ein zweiter Eintrag mit derselben Teamkennung wird mit dem Hinweis Die Team-Kennung existiert bereits abgelehnt; weitere Bundle-IDs werden deshalb im bestehenden Eintrag ergänzt.