使用 AOSP 项目编译的 Android 系统,会发现在部分 APP 使用系统自带的浏览器内核来加载网页时会出现报错,加载不出网页的情况,其实这是由于 WebView 自带的 浏览器内核版本太旧 所导致的,只要更新成比较新的浏览器内核版本就行了。

一、环境准备

(1) Android系统源码编译环境(Android9.0)

二、下载新版的WebView浏览器

(1). 注意网络访问 ,这里下载非beta版本,beta版本有可能会不稳定,这里我下载的是 101.0.4951.61 版本的 WebView 下载地址

(2). 下载的过程比较麻烦,还要进行 Google账号的登录 ,和 浏览器插件的安装 ,在文章后面会附上已经下载好了的较为新的 WebView (下载下来后其实是一个apk文件),我要编译的是 arm64 架构的 Android 系统,故下载对应版本的 apk 文件

三、替换WebView浏览器内核

(1). 在路径 \aosp\external\chromium-webview\prebuilt\ 下替换 arm arm64 架构的 apk 文件,至于 x86 x86_64 要不要替换就要取决于你是否要编译 x86 架构的 Android 系统,这里我不需要编译 x86 架构的 Android 系统故不用理会
(2). 修改配置文件 \aosp\frameworks\base\core\res\res\xml\config_webview_packages.xml ,由于高版本的 WebView 的包名发生了变化,故需要修改,将 com.android.webview 修改为 com.google.android.webview

<webviewproviders>
    <!-- The default WebView implementation --> 
    <!-- <webviewprovider description="Android WebView" packageName="com.android.webview" availableByDefault="true"> -->
    <webviewprovider description="Android WebView" packageName="com.google.android.webview" availableByDefault="true">
    </webviewprovider>
</webviewproviders>

四、重新编译

(1). 执行命令重新编译Android系统

source build/envsetup.sh
lunch 22 
make -j32

(2). 刷入手机

./fastboot flashall

打开手机的设置进入到开发者模式,查看WebView的实现是否为101.0.4951.61版本的WebView

六、相关文件下载

WebView浏览器内核apk文件_0积分下载

asjhan for Android reverse