Reynard: iOS 13以降向けのGeckoベースのWebブラウザ
Reynard: iOS 13以降向けのGeckoベースのWebブラウザ
Reynardは、Appleが義務付けているWebKitの代わりに、デスクトップやAndroid版Firefoxを動かしているものと同じGeckoエンジンを利用する、iOS 13以降向けの実験的なWebブラウザです。これにより、古いiOSバージョンのユーザーが、OSにバンドルされている古いWebKitバージョンのために読み込みに失敗してしまうような、最新のWebサイトにアクセスできるようになります。
レガシーデバイスのサポートに向けたWebKitの回避
Appleは、すべてのiOSブラウザにWebKitエンジンを使用することを義務付けています。WebKitはOSと一体となってバンドルされているため、古いiOSバージョンを実行しているデバイスは、OSのアップデートとは別にエンジンをアップデートすることができません。これにより、レガシーデバイスは、最新のECMAScript機能のサポートが欠如し、未修正の脆弱性を含む、非常に古いバージョンのWebKitの使用を余儀なくされる状況が生じています。
インストールおよびサイドロード方法
Reynardは非標準のエンジンを使用しているため、公式のApp Storeを通じて配布することはできず、サイドロードする必要があります。インストール方法は、iOSのバージョンとデバイスの状態によって異なります:
TrollStore (iOS 14 - 16.6.1, 17.0)
最高の体験を得るための推奨方法は、Reynard-TrollStore.tipaビルドを使用することです。この方法では、自動的なJIT (Just-In-Time) 有効化、優れたパフォーマンス、およびアプリの自動アップデートが提供されます。
AltStore または SideStore (iOS 17..0.1+)
TrollStoreが利用できない新しいiOSバージョンでは、Reynard.ipaビルドをサイドロードできます。インストール時にKeep App Extensionsオプションを選択することが非常に重要です。ブラウザは機能するためにこれらの拡張機能に依存しているためです。
脱獄(Jailbroken)デバイス (iOS 13)
iOS 13を実行している脱獄済みデバイスでは、Filza File ManagerとAppSync Unifiedを使用して、Reynard-Jailbroken.ipaビルドをサイドロードできます。これにより、自動的なJITの有効化とパフォーマンスの向上も実現されます。
サポートされていない方法: LiveContainerおよび、署名用の配布証明書を使用したサイドロード方法は、明示的にサポートされていません。
技術的な実装と開発
プロジェクトの作成者であるAbuAssarは、BrowserEngineKitフレームワークなしでGeckoがiOS上で動作するかをテストするためにReynardを開発しました。これにより、古いiOSバージョンのサポートが可能になります。このプロジェクトは、メモリ管理やJITの有効化のために、いくつかのコミュニティツールやプライベートAPIを利用しています:
- JITとメモリ管理: プライベートAPIの使用とJITメモリ管理に関して、Amethyst-iOS、dolphin-ios、およびMeloNXといったプロジェクトから知見を得ています。
- App Extensions: アプリ拡張機能の処理とNSExtensionの使用に、LiveContainerを利用しています。
- JITの有効化: ペアリングベースのJIT有効化のために、StikDebug、idevice、およびTrollStoreを活用しています。
- Engine Integration: iOS上でのGeckoの統合に関するMozillaのBugzilla (Bug 1882872) に見られる既存の成果に基づいています。
コミュニティの洞察と規制の背景
ユーザー間の議論では、サードパーティ製ブラウザエンジンとAppleのエコシステムとの間のより広範な闘争が浮き彫りになっています。EU、UK、および日本などの管轄区域は、Appleにサードパーティ製エンジンの使用を許可することを強制していますが、ユーザーは、Appleのコンプライアンス(法令遵守)がしばしば「悪意のある遵守(maliciously compliant)」であり、配布に障害を設けていると指摘しています。
"Appleは、異なる管轄区域(EU、UK、日本)によって、サードパーティ製ブラウザエンジンの使用を許可することを強制されています... Appleは、悪意のある遵守を行い、テストや配布に障害を設けています。"
批判的な意見を持つ人々や愛好家たちは、、レガシーデバイスにおいては、Reynardのようなプロジェクトが不可欠であると指摘しています。なぜなら、それはAppleによってパッチが当てられなくなった古いレンダリングエンジンによって、デバイスが時代遅れになってしまうのを防ぐことができるからです。