Reynard: iOS 13+용 Gecko 기반 웹 브라우저

Reynard: iOS 13+용 Gecko 기반 웹 브라우저

Reynard는 iOS 13 이상을 위한 실험적인 웹 브라우저로, Apple이 강제하는 WebKit 대신 Firefox 데스크톱 및 Android에서 사용하는 Gecko 엔진을 활용합니다. 이를 통해 구형 iOS 버전을 사용하는 사용자는 OS에 번들된 오래된 WebKit 버전 때문에 로드되지 못하던 최신 웹사이트에 접근할 수 있습니다.

레거시 기기 지원을 위한 WebKit 우회

Apple은 모든 iOS 브라우저가 WebKit 엔진을 사용하도록 요구합니다. WebKit은 운영 체제와 함께 번들되기 때문에, 구형 iOS 버전을 실행하는 기기는 OS 업데이트 없이 엔진 업데이트를 받을 수 없습니다. 이로 인해 레거시 기기는 현대 ECMAScript 기능을 지원하지 못하고 패치되지 않은 취약점을 포함한 오래된 WebKit 버전을 강제로 사용하게 됩니다.

Gecko를 구현함으로써 Reynard는 OS와 독립적으로 동작하는 최신 렌더링 엔진을 제공하여 레거시 기기에서도 현대 웹 페이지를 올바르게 렌더링할 수 있게 합니다. GitHub, ChatGPT, Apple.com 등과 같은 사이트도 iOS 14 Safari에서 종종 깨지거나 잘못 표시되는 경우가 많은데, 이를 정상적으로 표시할 수 있습니다.

설치 및 사이드로드 방법

Reynard는 비표준 엔진을 사용하므로 공식 App Store를 통해 배포될 수 없으며 사이드로드가 필요합니다. 설치 방법은 iOS 버전 및 기기 상태에 따라 다릅니다:

TrollStore (iOS 14 - 16.6.1, 17.0)

TrollStore는 최상의 경험을 제공하는 권장 방법이며 Reynard-TrollStore.tipa 빌드를 사용합니다. 이 방법은 자동 JIT(Just-In-Time) 활성화, 우수한 성능 및 자동 앱 업데이트를 제공합니다.

AltStore 또는 SideStore (iOS 17.0.1+)

TrollStore를 사용할 수 없는 최신 iOS 버전에서는 Reynard.ipa 빌드를 사이드로드합니다. 설치 시 Keep App Extensions 옵션을 반드시 선택해야 하는데, 브라우저가 정상 동작하려면 이 확장 기능이 필요합니다.

탈옥된 기기 (iOS 13)

iOS 13을 실행 중인 탈옥된 기기에서는 Filza File Manager와 AppSync Unified를 사용해 Reynard-Jailbroken.ipa 빌드를 사이드로드할 수 있으며, 이 또한 자동 JIT와 향상된 성능을 제공합니다.

지원되지 않는 방법: LiveContainer 및 배포 인증서를 이용한 사이드로드 방식은 명시적으로 지원되지 않습니다.

기술 구현 및 개발

프로젝트 제작자 AbuAssar는 BrowserEngineKit 프레임워크 없이도 Gecko가 iOS에서 실행될 수 있는지를 테스트하기 위해 Reynard를 개발했으며, 이를 통해 구형 iOS 버전을 지원하게 되었습니다. 프로젝트는 메모리 처리와 JIT 활성화를 위해 여러 커뮤니티 도구와 비공개 API를 활용합니다:

  • JIT 및 메모리 처리: Amethyst-iOS, dolphin-ios, MeloNX와 같은 프로젝트에서 비공개 API 사용 및 JIT 메모리 관리를 차용.
  • 앱 확장: LiveContainer를 이용한 앱 확장 처리 및 NSExtension 활용.
  • JIT 활성화: StikDebug, idevice, TrollStore를 이용한 페어링 기반 JIT 활성화.
  • 엔진 통합: Mozilla Bugzilla(Bug 1882872)에서 찾을 수 있는 기존 작업을 기반으로 Gecko를 iOS에 통합.

커뮤니티 인사이트 및 규제 상황

사용자들 사이의 논의는 서드파티 브라우저 엔진과 Apple 생태계 간의 광범위한 갈등을 강조합니다. EU, 영국, 일본 등 여러 관할권이 Apple에 서드파티 엔진을 허용하도록 압박하고 있지만, 사용자는 Apple의 대응이 종종 "악의적으로 순응"하고 있어 배포와 테스트에 장애물을 만든다고 지적합니다.

"Apple은 다양한 관할권(EU, UK, Japan)으로부터 서드파티 브라우저 엔진을 허용하도록 강제받고 있습니다... Apple은 악의적으로 순응하며 테스트와 배포에 장애물을 놓고 있습니다."

비평가와 열성 팬들은 구형 기기에게 Reynard와 같은 프로젝트가 필수적이라고 강조합니다. 이는 Apple이 더 이상 패치하지 않는 구식 렌더링 엔진 때문에 기기가 구식화되는 것을 방지해 줍니다.

Sources