Apple bremst Retro-Spiel-Emulatoren – aus Willkür oder Sicherheitsbedenken?
Kürzlich entschloss sich Apple zu einer Kehrtwende und gab Emulationen historischer Spielekonsolen im iOS sowie iPadOS App Store frei. In direkter Folge wuchsen die Angebote – und zugleich entstanden Begehrlichkeiten: Um anspruchsvollere Spiele zu emulieren, wünschten sich Entwickler Zugriff auf Just-in-Time-Kompilierung. Die Entwickler des plattformübergreifenden Emulators Dolphin
führten jüngst vor, welchen Unterschied dies macht – N64-Spiele liefen tadellos mit aktivierter JIT, ohne diese verwandelten sie sich in eine (unspielbare) Diashow. Auf eigenen Geräten düren Entwickler JIT nutzen, Apple verweigere Emulatoren jedoch das JIT-Privileg für App Stores (und alternative App-Marktplätze). Dass dies nicht unbedingt ein Versuch ist, die Konkurrenz kleinzuhalten, sondern auch auf Sicherheitsbedenken zurückzuführen ist, zeigt eine zusätzliche Einschränkung: Im Blockierungsmodus deaktiviert Apple JIT – auch für den eigenen Browser.
Mac-Blogger John Gruber zeigt auf, wie streng Apple den Zugriff auf JIT-Kompilierung
reglementiere. Bis vor Kurzem durfte nur Safari (und deren Engine WebKit) JIT verwenden. Damit nicht genug: Um besonders exponierte Personen, beispielsweise Journalisten oder Menschenrechtler, vor gezielten Angriffen zu schützen, deaktiviere Apple JIT im hauseigenen Browser, sobald der Blockierungsmodus aktiv ist.
Sicherheit vor GeschwindigkeitDen extrastark abgesicherten Modus empfiehlt Apple nur in absoluten Ausnahmefällen – er resultiert im Verlust einiger Komfort-Features. Vorschauen von per iMessage zugesandten Links verschwindet, Button-Icons auf vielen Websites werden durch leere Kästen ersetzt. Zudem browst es sich wie mit angezogener Handbremse: iPhones wie iPads zeigen beim Speedometer-Test eine halbierte Punktzahl. Beim Surfen schlägt die Limitierung glücklicherweise nicht allzu sehr ins Gewicht, da zusätzliche Faktoren wie beispielsweise Datenrate eine ebenso große Rolle spielen wie JavaScript-Leistung.
Wer den Blockierungsmodus einschaltet, verringert damit deutlich die Verarbeitungsgeschwindigkeit des Safari-Browsers.
Sollten Emulatoren JIT nutzen dürfen?Gruber argumentiert, dass Apple hier den richtigen Weg gehe: Konsolenemulationen sind dafür gedacht, Softwaretitel auszuführen, die nicht dem App Store entstammen. Dabei kommen nicht immer nur legitime Homebrew-Titel zur Anwendung; einige Anwender beziehen ihre Images aus nichtoffiziellen Quellen. Über ein kostenlos in Tauschbörsen offeriertes Spiel könnten böswillige Entwickler auf diese Weise Code auf iPhones und iPads mit hoher Leistung zum Laufen bringen, Daten abgreifen und das gesamte System kompromittieren. Deshalb sei eine unregulierte Vergabe des JIT-Privilegs an Entwickler für Emulatoren ein zu großes Risiko für die gesamte iOS- und iPadOS-Plattform. Apple habe mit
BrowserEngineKit ein für alternative Browser prädestiniertes Framework entwickelt und knüpfe deren Verwendung an bestimmte sicherheitsbezogene Bedingungen. Das sei der korrekte Weg, um Systemsicherheit zu gewährleisten – und gleichzeitig alternative Browser-Engines zuzulassen.