Installing SystemWebView

Carl edited this page Aug 2, 2018 · 14 revisions

The idea of installing Bromite's WebView is to have all apps (and Android itself) use Bromite's features as well.

BEWARE: this is not an officially supported procedure, it may or may not work. Be prepared to restore original SystemWebView if something goes wrong.

Latest version of Bromite SystemWebView can be found here, other versions are in Releases.

About the package name

Once installed Bromite's SystemWebView you can select it as a WebView provider (on rooted devices). Changing the package name does not make installation easier/possible; see bug 492514 for details.

The default package name is com.android.webview.

Installation with root or TWRP

  • go to the webview folder /system/app/webview
  • cut the webview.apk file and store it on your SD card for backup purposes
  • copy the Bromite SystemWebview apk there
  • reboot phone
  • install Bromite webview apk (no conflicts will be shown now)

The apps that need the webview will crash if you do not install the apk after rebooting.

Installation without root

Quoting this 25 Jan 2018 post from a Chromium dev:

if you find a way to replace the WebView on a real device without root and without reflashing it with a custom system image, that would be a serious security bug that we would need to fix. There's intentionally no way to do this: on a regular "user" build of android (as opposed to the userdebug/eng variants) all WebView implementation packages must be listed in the system image's configuration and each one must either be preinstalled in the system image, or signed with a specifically designated key, to be permitted.

Current suggested approach:

  • on Windows you can use Debloater to freeze Google's WebView on a non-rooted device, then install Bromite's WebView.

Verifying installation

You can verify that Bromite's SystemWebView is being used with an app like WebView Test

Troubleshooting

If you get an error couldn't find "libwebviewchromium.so":

06-21 22:15:19.531 E/WebViewFactory(9456): Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/app/webview/webview.apk"],nativeLibraryDirectories=[/system/app/webview/lib/arm64, /system/app/webview/webview.apk!/lib/arm64-v8a, /system/lib64, /system/vendor/lib64, /system/lib64, /system/vendor/lib64]]] couldn't find "libwebviewchromium.so"

Then you can follow these steps to fix it:

  • using apktool open the SystemWebView apk and extract libwebviewchromium.so from /lib/arm64-v8a (for 64-bit devices only)
  • using a file explorer with root access make sure the directory /system/app/webview/lib/arm64/ exists
  • place the copied libwebviewchromium.so inside such directory
  • finally, delete the stock SystemWebView of your ROM (some devices besides having the apk may contain a directory called oat, which also needs to be deleted)
  • paste the new Bromite SystemWebView in place
  • reboot and verify that installation was successful

Chromium related pages

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.