AnyWebView by neoblackxt is an LSPosed module that finds the WebView apps on your phone and adds them to Developer options > WebView implementation. That lets you pick a WebView such as Bromite, Vanadium, Mulch or Cromite, even when your ROM doesn't list it. It needs Android 7.0 or newer and a framework with libxposed API 101 or newer.
How it works
Android only offers the WebView providers your ROM declares. AnyWebView extends that list.
Finds installed WebViews
It looks through installed packages for the com.android.webview.WebViewLibrary meta-data, which marks an app as a WebView provider.
Adds them to the list
It hooks the system's getWebViewPackages() and returns the stock list with the new providers appended. This runs in the Android framework, which is why that's the module's scope.
Uses each app's own signature
Each added provider is registered with its own signature, so it passes Android's validation. The WebView can be a normal install, and doesn't need to be a system app.
Handles reused package names
Some builds, like Cromite's SystemWebView.apk, install as com.android.webview. Since 1.4.3, the module rewrites the stock entry with the installed APK's signature, so you don't need a Magisk module.
Requirements
- Android 7.0 or newer. WebView provider selection arrived in Android 7, so there's nothing to hook on older versions.
- A framework with libxposed API 101 or newer, such as Vector-SR or LSPosed 1.11+. Vector 2.0 only has API 100 and can't load v1.4, but newer Vector canary builds can. A legacy
de.robventry point is still included for older frameworks. - Android Framework (
system) selected as the scope in LSPosed.
Reported Android versions
These are from real-device reports on the latest release:
| Android | Status | Reported on |
|---|---|---|
| 7 to 9 | Not established | The hooked code has been stable since Android 7, but there are no reports yet |
| 10 to 12 | Working | Vector-SR with AOSmium or Cromite |
| 13 to 14 | Working | Vector-SR with AOSmium on an SM-G780G |
| 15 | Working | Vector-SR with AOSmium on an SM-G780G |
| 16 | Working | LineageOS with Vector canary and KowSU, and stock Pixel with Cromite |
| 17 | Working | PixelOS with Vector-SR and AOSmium |
Setup
- Install the module and enable it in LSPosed with Android Framework as the scope.
- Install your WebView for all users on the device.
- Reboot, then choose the WebView in Developer options.
If it isn't selectable, these ADB commands can help. The first one may not work, and the developer says that's fine:
adb shell cmd webviewupdate enable-redundant-packages
adb shell pm list users
adb install --user USER_ID PATH/TO/APK/ON/COMPUTER
adb shell pm install-existing --user USER_ID PACKAGE.NAMEEach entry from pm list users looks like UserInfo{USER_ID:USERNAME:INT}, and 0 is the main user. In a root terminal on the phone, you can run the pm commands without adb shell. Removing a user with pm remove-user also works, but the developer doesn't recommend it because you can lose data.
Limits and OEM ROMs
- Chrome: only works as the WebView on Android 8 and 9. On Android 10 and newer it may appear in the list, but it won't work, because Google stopped using Chrome as a WebView provider.
- Samsung One UI on Android 16: some OEM builds remove
getWebViewPackages(). Since 1.4.5, the module sets the provider field directly in that case. If a build has renamed the field and it can't be identified safely, the module gives up and logs a message rather than risk writing the wrong one.
Source and license
AnyWebView is licensed under MIT, and it's very small: the APK is about 60 KB. The repo's discussions and issues hold the device reports mentioned above, which is the best place to check your own ROM.