Browser Kernel
Manage the browser engines available to your apps. Open it from ⋮ → Browser Kernel.
Features
- Current WebView info — inspect the system WebView version on this device.
- Embedded engine — download, manage, and delete the optional GeckoView (Firefox) runtime. Shows download size and progress; the heavy native artifacts are fetched on first use.
- Change WebView provider — switch the system WebView provider (with developer-options steps guidance).
- Engine descriptions — reference info for Chrome, Edge, Brave, Firefox, and Via.
Notes
- Per-app engine selection happens in the Build APK dialog; this screen manages the engines themselves.
- ECH works on both engines; GeckoView is one option, not a requirement.
GeckoView (Firefox engine) feature support
GeckoView is a complete second engine independent of the system WebView, not a WebView skin: its network-layer capabilities are implemented natively by the engine, while a set of features that rely on WebView-only mechanisms (request interception, addJavascriptInterface, JS injection) are unavailable on GeckoView. Read this section before picking a kernel in the Build APK dialog.
Fully supported (native implementations, on par with the system WebView)
- ECH (encrypted SNI) — available on both engines; GeckoView implements it natively via TRR + its ECH prefs, the system WebView via the MITM bridge's Chromium upstream (auto-downloaded on first use, embedded in exported APKs)
- DoH, static / PAC / SOCKS5 proxy, anti-capture (force direct connection, ignore system proxies)
- UA modes and custom User-Agent, desktop mode
- JavaScript toggle, autoplay policy, viewport mode (fit screen / desktop), clear browsing data on launch, download toggle
- HTTP downloads, fullscreen video, file upload (incl. camera capture), automatic crash recovery
- Camera / microphone and geolocation permission policies (deny all / remember per host)
- mTLS client certificates, HTTP Basic / proxy auth dialogs
- JS dialogs (alert / confirm / prompt)
- Page-load error UI, back / forward history navigation, auto-refresh, find-in-page, console script execution
- Media session / lock-screen playback controls (native Gecko implementation)
Not available yet (choose the system WebView kernel if you need these)
- Ad blocking — neither network-rule filtering nor cosmetic hiding takes effect
- Userscripts (GM_* APIs) and Chrome MV3 extensions (incl. declarativeNetRequest / webRequest rules)
- The full NativeBridge JS API — clipboard, notifications, vibration, printing, sharing, screen wake, orientation, Google sign-in, etc.; on GeckoView only the CORS-bypass / private-network
httpRequestentry point is available - JS-injection features — browser fingerprint disguise, device disguise, kernel disguise & flavors, page translation, audio unlock, clipboard / notification / orientation polyfills, Cloudflare compatibility helpers, custom injected scripts, popup blocking, scroll-position memory, image repair, hide-link-preview
- PWA offline (service-worker injection), static asset packs, encrypted asset loading — therefore HTML / front-end offline-package apps with resource encryption enabled must use the system WebView kernel
- blob / data: download interception
- The long-press menu (save image/video, copy link, etc.)
- Status-bar auto color sampling (follow page-top color; solid-color / theme modes are unaffected)
- Page zoom settings (zoom percent / initial scale / text zoom; GeckoView keeps only its built-in pinch zoom)
- Follow-system dark mode
- Cookie policy (GeckoView always accepts all cookies)
- Hosts mapping (domain → IP)
- Console message capture and eval result return (scripts do run, but the panel receives no messages or return values)
- New-window policy (GeckoView popups always load in the current window)
- Proxy username / password authentication
- WebView state save / restore (session restore after process death)
Unsupported by design (trade-offs, not defects)
- TLS fingerprint spoofing (MITM bridge) and forced HTTP/3 (QUIC) — both ride the MITM bridge, which is a system-WebView-kernel feature; GeckoView natively presents a genuine Firefox TLS / JA3 fingerprint, which is the strongest "disguise" in itself, and the MITM bridge would terminate TLS and directly conflict with GeckoView's native ECH. On GeckoView, the target site sees a real Firefox.
- "Proceed anyway" on SSL certificate errors — GeckoView cannot ignore certificate errors, and editor-imported custom CAs are not trusted by GeckoView (only user CAs installed into the Android system, via the trust-user-certificates toggle).
- DOM storage / database cannot be disabled (always on in GeckoView).
- Floating-window mode always uses the system WebView regardless of the per-app engine choice.
Choosing an engine
- Apps that rely on ad blocking, userscripts, Chrome extensions, the NativeBridge API, or encrypted resource packaging → choose the system WebView.
- Apps that want a genuine Firefox fingerprint or Gecko engine behavior → choose GeckoView and accept the gaps listed above.
- ECH / SNI encryption works on both engines; if you also need TLS fingerprint spoofing or forced HTTP/3, choose the system WebView.
- Download the GeckoView runtime on this page first: the Build APK dialog will not offer the engine until it is installed, and host previews silently fall back to the system WebView when the runtime is missing.
